mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-26 00:03:16 +00:00
Update StatusActivityPubDeliver, fix addressing
This commit is contained in:
parent
52d076a6bd
commit
1f2183ee67
1 changed files with 25 additions and 0 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue