浏览代码

Update notification pipelines, fix non-local saving

Daniel Supernault 1 年之前
父节点
当前提交
fa97a1f38e

+ 15 - 13
app/Jobs/CommentPipeline/CommentPipeline.php

@@ -91,19 +91,21 @@ class CommentPipeline implements ShouldQueue
             return;
         }
 
-        DB::transaction(function() use($target, $actor, $comment) {
-            $notification = new Notification();
-            $notification->profile_id = $target->id;
-            $notification->actor_id = $actor->id;
-            $notification->action = 'comment';
-            $notification->item_id = $comment->id;
-            $notification->item_type = "App\Status";
-            $notification->save();
-
-            NotificationService::setNotification($notification);
-            NotificationService::set($notification->profile_id, $notification->id);
-            StatusService::del($comment->id);
-        });
+        if($target->user_id && $target->domain === null) {
+            DB::transaction(function() use($target, $actor, $comment) {
+                $notification = new Notification();
+                $notification->profile_id = $target->id;
+                $notification->actor_id = $actor->id;
+                $notification->action = 'comment';
+                $notification->item_id = $comment->id;
+                $notification->item_type = "App\Status";
+                $notification->save();
+
+                NotificationService::setNotification($notification);
+                NotificationService::set($notification->profile_id, $notification->id);
+                StatusService::del($comment->id);
+            });
+        }
 
         if($exists = Cache::get('status:replies:all:' . $status->id)) {
         	if($exists && $exists->count() == 3) {

+ 12 - 10
app/Jobs/FollowPipeline/FollowPipeline.php

@@ -72,16 +72,18 @@ class FollowPipeline implements ShouldQueue
         $target->save();
         AccountService::del($target->id);
 
-        try {
-            $notification = new Notification();
-            $notification->profile_id = $target->id;
-            $notification->actor_id = $actor->id;
-            $notification->action = 'follow';
-            $notification->item_id = $target->id;
-            $notification->item_type = "App\Profile";
-            $notification->save();
-        } catch (Exception $e) {
-            Log::error($e);
+        if($target->user_id && $target->domain === null) {
+            try {
+                $notification = new Notification();
+                $notification->profile_id = $target->id;
+                $notification->actor_id = $actor->id;
+                $notification->action = 'follow';
+                $notification->item_id = $target->id;
+                $notification->item_type = "App\Profile";
+                $notification->save();
+            } catch (Exception $e) {
+                Log::error($e);
+            }
         }
     }
 }

+ 12 - 10
app/Jobs/LikePipeline/LikePipeline.php

@@ -79,16 +79,18 @@ class LikePipeline implements ShouldQueue
             return true;
         }
 
-        try {
-            $notification = new Notification();
-            $notification->profile_id = $status->profile_id;
-            $notification->actor_id = $actor->id;
-            $notification->action = 'like';
-            $notification->item_id = $status->id;
-            $notification->item_type = "App\Status";
-            $notification->save();
-
-        } catch (Exception $e) {
+        if($status->uri === null && $status->object_url === null && $status->url === null) {
+            try {
+                $notification = new Notification();
+                $notification->profile_id = $status->profile_id;
+                $notification->actor_id = $actor->id;
+                $notification->action = 'like';
+                $notification->item_id = $status->id;
+                $notification->item_type = "App\Status";
+                $notification->save();
+
+            } catch (Exception $e) {
+            }
         }
     }
 

+ 14 - 12
app/Jobs/StatusPipeline/StatusReplyPipeline.php

@@ -87,18 +87,20 @@ class StatusReplyPipeline implements ShouldQueue
         Cache::forget('status:replies:all:' . $reply->id);
         Cache::forget('status:replies:all:' . $status->id);
 
-        DB::transaction(function() use($target, $actor, $status) {
-            $notification = new Notification();
-            $notification->profile_id = $target->id;
-            $notification->actor_id = $actor->id;
-            $notification->action = 'comment';
-            $notification->item_id = $status->id;
-            $notification->item_type = "App\Status";
-            $notification->save();
-
-            NotificationService::setNotification($notification);
-            NotificationService::set($notification->profile_id, $notification->id);
-        });
+        if($target->user_id && $target->domain === null) {
+            DB::transaction(function() use($target, $actor, $status) {
+                $notification = new Notification();
+                $notification->profile_id = $target->id;
+                $notification->actor_id = $actor->id;
+                $notification->action = 'comment';
+                $notification->item_id = $status->id;
+                $notification->item_type = "App\Status";
+                $notification->save();
+
+                NotificationService::setNotification($notification);
+                NotificationService::set($notification->profile_id, $notification->id);
+            });
+        }
 
         if($exists = Cache::get('status:replies:all:' . $reply->id)) {
         	if($exists && $exists->count() == 3) {