From 5d2f93bd6d5f9b658fc43fd61e9bcf73f9de60cf Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 4 Apr 2019 23:13:59 -0600 Subject: [PATCH 1/2] Update APHelpers --- app/Util/ActivityPub/Helpers.php | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/app/Util/ActivityPub/Helpers.php b/app/Util/ActivityPub/Helpers.php index aa9463953..42e69d718 100644 --- a/app/Util/ActivityPub/Helpers.php +++ b/app/Util/ActivityPub/Helpers.php @@ -2,7 +2,7 @@ namespace App\Util\ActivityPub; -use Cache, Purify, Storage, Request, Validator; +use DB, Cache, Purify, Storage, Request, Validator; use App\{ Activity, Follower, @@ -295,21 +295,24 @@ class Helpers { $reply_to = null; } $ts = is_array($res['published']) ? $res['published'][0] : $res['published']; - $status = new Status; - $status->profile_id = $profile->id; - $status->url = isset($res['url']) ? $res['url'] : $url; - $status->uri = isset($res['url']) ? $res['url'] : $url; - $status->caption = strip_tags($res['content']); - $status->rendered = Purify::clean($res['content']); - $status->created_at = Carbon::parse($ts); - $status->in_reply_to_id = $reply_to; - $status->local = false; - $status->is_nsfw = $cw; - $status->scope = $scope; - $status->visibility = $scope; - $status->save(); + $status = DB::transaction(function() use($profile, $res, $url, $ts, $reply_to, $cw, $scope) { + $status = new Status; + $status->profile_id = $profile->id; + $status->url = isset($res['url']) ? $res['url'] : $url; + $status->uri = isset($res['url']) ? $res['url'] : $url; + $status->caption = strip_tags($res['content']); + $status->rendered = Purify::clean($res['content']); + $status->created_at = Carbon::parse($ts); + $status->in_reply_to_id = $reply_to; + $status->local = false; + $status->is_nsfw = $cw; + $status->scope = $scope; + $status->visibility = $scope; + $status->save(); + self::importNoteAttachment($res, $status); + return $status; + }); - self::importNoteAttachment($res, $status); return $status; } From 8c230b27939dd53879b161be5d7ff22e3908c23e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 4 Apr 2019 23:19:56 -0600 Subject: [PATCH 2/2] Update Inbox --- app/Util/ActivityPub/Inbox.php | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/app/Util/ActivityPub/Inbox.php b/app/Util/ActivityPub/Inbox.php index 40b06be0a..46ba878fa 100644 --- a/app/Util/ActivityPub/Inbox.php +++ b/app/Util/ActivityPub/Inbox.php @@ -122,12 +122,15 @@ class Inbox { $activity = $this->payload['object']; $actor = $this->actorFirstOrCreate($this->payload['actor']); + if(!$actor || $actor->domain == null) { + return; + } + $inReplyTo = $activity['inReplyTo']; $url = $activity['id']; - if(!Helpers::statusFirstOrFetch($url, true)) { - return; - } + Helpers::statusFirstOrFetch($url, true); + return; } public function handleNoteCreate() @@ -139,7 +142,6 @@ class Inbox } if(Helpers::userInAudience($this->profile, $this->payload) == false) { - //Log::error('AP:inbox:userInAudience:false - Activity#'.$this->logger->id); return; } @@ -147,21 +149,8 @@ class Inbox if(Status::whereUrl($url)->exists()) { return; } - - $status = DB::transaction(function() use($activity, $actor, $url) { - $caption = str_limit(strip_tags($activity['content']), config('pixelfed.max_caption_length')); - $status = new Status; - $status->profile_id = $actor->id; - $status->caption = strip_tags($caption); - $status->rendered = Purify::clean($caption); - $status->visibility = $status->scope = 'public'; - $status->uri = $url; - $status->url = $url; - $status->save(); - return $status; - }); - - Helpers::importNoteAttachment($activity, $status); + Helpers::statusFirstOrFetch($url, false); + return; } public function handleFollowActivity()