diff --git a/app/Jobs/InboxPipeline/InboxValidator.php b/app/Jobs/InboxPipeline/InboxValidator.php index c983519d3..8b4d018a4 100644 --- a/app/Jobs/InboxPipeline/InboxValidator.php +++ b/app/Jobs/InboxPipeline/InboxValidator.php @@ -60,7 +60,7 @@ class InboxValidator implements ShouldQueue $payload = json_decode($this->payload, true, 8); if(isset($payload['id'])) { - $lockKey = 'ap:icid:' . hash('sha256', $payload['id']); + $lockKey = 'pf:ap:user-inbox:activity:' . hash('sha256', $payload['id']); if(Cache::get($lockKey) !== null) { // Job processed already return 1; diff --git a/app/Jobs/InboxPipeline/InboxWorker.php b/app/Jobs/InboxPipeline/InboxWorker.php index 9ce14bd94..305430085 100644 --- a/app/Jobs/InboxPipeline/InboxWorker.php +++ b/app/Jobs/InboxPipeline/InboxWorker.php @@ -57,7 +57,7 @@ class InboxWorker implements ShouldQueue $payload = json_decode($this->payload, true, 8); if(isset($payload['id'])) { - $lockKey = 'ap:icid:' . hash('sha256', $payload['id']); + $lockKey = 'pf:ap:user-inbox:activity:' . hash('sha256', $payload['id']); if(Cache::get($lockKey) !== null) { // Job processed already return 1; diff --git a/app/Util/ActivityPub/Helpers.php b/app/Util/ActivityPub/Helpers.php index cf354eded..b66fb20d0 100644 --- a/app/Util/ActivityPub/Helpers.php +++ b/app/Util/ActivityPub/Helpers.php @@ -373,6 +373,10 @@ class Helpers { return; } + if(!isset($activity['object']['attributedTo'])) { + return; + } + $attributedTo = is_string($activity['object']['attributedTo']) ? $activity['object']['attributedTo'] : (is_array($activity['object']['attributedTo']) ? diff --git a/app/Util/ActivityPub/Inbox.php b/app/Util/ActivityPub/Inbox.php index 2848aebbc..0040908d2 100644 --- a/app/Util/ActivityPub/Inbox.php +++ b/app/Util/ActivityPub/Inbox.php @@ -180,6 +180,8 @@ class Inbox StoryFetch::dispatchNow($this->payload); break; } + + return; } public function handleCreateActivity() @@ -267,14 +269,23 @@ class Inbox return; } - if($actor->followers()->count() == 0) { - return; + if($actor->followers_count == 0) { + if(FollowerService::followerCount($actor->id, true) == 0) { + return; + } } + $hasUrl = isset($activity['url']); $url = isset($activity['url']) ? $activity['url'] : $activity['id']; - if(Status::whereUrl($url)->exists()) { - return; + if($hasUrl) { + if(Status::whereUri($url)->exists()) { + return; + } + } else { + if(Status::whereObjectUrl($url)->exists()) { + return; + } } Helpers::storeStatus(