|
@@ -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;
|