Update SharePipeline, fix ReblogService and undo handling

This commit is contained in:
Daniel Supernault 2023-01-31 03:18:25 -07:00
parent 222dc3a192
commit 016c6e4144
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7
3 changed files with 15 additions and 6 deletions

View file

@ -63,7 +63,7 @@ class SharePipeline implements ShouldQueue
return true;
}
ReblogService::addPostReblog($parent->id, $status->id);
ReblogService::addPostReblog($parent->profile_id, $status->id);
$parent->reblogs_count = $parent->reblogs_count + 1;
$parent->save();

View file

@ -37,7 +37,7 @@ class UndoSharePipeline implements ShouldQueue
if($parent) {
$target = $parent->profile_id;
ReblogService::removePostReblog($parent->id, $status->id);
ReblogService::removePostReblog($parent->profile_id, $status->id);
if($parent->reblogs_count > 0) {
$parent->reblogs_count = $parent->reblogs_count - 1;

View file

@ -37,6 +37,7 @@ use App\Util\ActivityPub\Validator\UndoFollow as UndoFollowValidator;
use App\Services\PollService;
use App\Services\FollowerService;
use App\Services\ReblogService;
use App\Services\StatusService;
use App\Services\UserFilterService;
use App\Services\NetworkTimelineService;
@ -602,6 +603,8 @@ class Inbox
$parent->reblogs_count = $parent->reblogs_count + 1;
$parent->save();
ReblogService::addPostReblog($parent->profile_id, $status->id);
return;
}
@ -789,17 +792,23 @@ class Inbox
if(is_array($obj) && isset($obj['object'])) {
$obj = $obj['object'];
}
if(!is_string($obj) || !Helpers::validateLocalUrl($obj)) {
if(!is_string($obj)) {
return;
}
$status = Status::whereUri($obj)->exists();
if(Helpers::validateLocalUrl($obj)) {
$parsedId = last(explode('/', $obj));
$status = Status::find($parsedId);
} else {
$status = Status::whereUri($obj)->first();
}
if(!$status) {
return;
}
Status::whereProfileId($profile->id)
->whereReblogOfId($status->id)
->forceDelete();
Notification::whereProfileId($status->profile->id)
->delete();
ReblogService::removePostReblog($profile->id, $status->id);
Notification::whereProfileId($status->profile_id)
->whereActorId($profile->id)
->whereAction('share')
->whereItemId($status->reblog_of_id)