Update StatusActivityPubDeliver, fix addressing

This commit is contained in:
Daniel Supernault 2023-05-25 04:57:17 -06:00
parent 52d076a6bd
commit 1f2183ee67
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -3,6 +3,7 @@
namespace App\Jobs\StatusPipeline; namespace App\Jobs\StatusPipeline;
use Cache, Log; use Cache, Log;
use App\Profile;
use App\Status; use App\Status;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
@ -52,12 +53,36 @@ class StatusActivityPubDeliver implements ShouldQueue
$status = $this->status; $status = $this->status;
$profile = $status->profile; $profile = $status->profile;
// ignore group posts
// if($status->group_id != null) {
// return;
// }
if($status->local == false || $status->url || $status->uri) { if($status->local == false || $status->url || $status->uri) {
return; return;
} }
$audience = $status->profile->getAudienceInbox(); $audience = $status->profile->getAudienceInbox();
$parentInbox = [];
$mentions = $status->mentions
->filter(function($f) { return $f->domain !== null;})
->values()
->map(function($m) { return $m->sharedInbox ?? $m->inbox_url; })
->toArray();
if($status->in_reply_to_profile_id) {
$parent = Profile::find($status->in_reply_to_profile_id);
if($parent && $parent->domain !== null) {
$parentInbox = [
$parent->sharedInbox ?? $parent->inbox_url
];
}
}
$audience = array_values(array_unique(array_merge($audience, $mentions, $parentInbox)));
if(empty($audience) || !in_array($status->scope, ['public', 'unlisted', 'private'])) { if(empty($audience) || !in_array($status->scope, ['public', 'unlisted', 'private'])) {
// Return on profiles with no remote followers // Return on profiles with no remote followers
return; return;