ソースを参照

Merge pull request #1125 from pixelfed/frontend-ui-refactor

Frontend ui refactor
daniel 6 年 前
コミット
5971a4144e
2 ファイル変更27 行追加35 行削除
  1. 19 16
      app/Util/ActivityPub/Helpers.php
  2. 8 19
      app/Util/ActivityPub/Inbox.php

+ 19 - 16
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();
-
-			self::importNoteAttachment($res, $status);
+			$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;
+			});
+
 
 			return $status;
 		}

+ 8 - 19
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()