Add ActivityPub.contain_activity checks to streamer
authorKaren Konou <konoukaren@gmail.com>
Sat, 9 Mar 2019 15:24:32 +0000 (16:24 +0100)
committerKaren Konou <konoukaren@gmail.com>
Fri, 15 Mar 2019 13:18:53 +0000 (14:18 +0100)
lib/pleroma/web/streamer.ex

index 5850a9579decd78bba61b9d92b0e43f01215d27a..bd91e1f50d9737533bd32593d70d16ef3ffd8a5d 100644 (file)
@@ -12,6 +12,7 @@ defmodule Pleroma.Web.Streamer do
   alias Pleroma.User
   alias Pleroma.Web.ActivityPub.Visibility
   alias Pleroma.Web.MastodonAPI.NotificationView
+  alias Pleroma.Web.ActivityPub.ActivityPub
 
   @keepalive_interval :timer.seconds(30)
 
@@ -203,7 +204,9 @@ defmodule Pleroma.Web.Streamer do
         parent = Object.normalize(item.data["object"])
 
         unless is_nil(parent) or item.actor in blocks or item.actor in mutes or
-                 parent.data["actor"] in blocks or parent.data["actor"] in mutes do
+                 not ActivityPub.contain_activity(item, user) or
+                 parent.data["actor"] in blocks or
+                 parent.data["actor"] in mutes do
           send(socket.transport_pid, {:text, represent_update(item, user)})
         end
       else
@@ -233,7 +236,8 @@ defmodule Pleroma.Web.Streamer do
         blocks = user.info.blocks || []
         mutes = user.info.mutes || []
 
-        unless item.actor in blocks or item.actor in mutes do
+        unless item.actor in blocks or item.actor in mutes or
+                 not ActivityPub.contain_activity(item, user) do
           send(socket.transport_pid, {:text, represent_update(item, user)})
         end
       else