aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/streamer
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-07-04 17:11:37 +0200
committerlain <lain@soykaf.club>2020-07-04 17:11:37 +0200
commitcf566556147975d45958d2d87a5ce23831eb91df (patch)
tree1876f7352480065565b3062b06ed00be07f02744 /lib/pleroma/web/streamer
parentc2a052a346d5104c3657343a885255d4d7179c75 (diff)
downloadpleroma-cf566556147975d45958d2d87a5ce23831eb91df.tar.gz
Streamer: Don't filter out announce notifications.
Diffstat (limited to 'lib/pleroma/web/streamer')
-rw-r--r--lib/pleroma/web/streamer/streamer.ex12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/pleroma/web/streamer/streamer.ex b/lib/pleroma/web/streamer/streamer.ex
index 73ee3e1e1..d1d70e556 100644
--- a/lib/pleroma/web/streamer/streamer.ex
+++ b/lib/pleroma/web/streamer/streamer.ex
@@ -104,7 +104,9 @@ defmodule Pleroma.Web.Streamer do
:ok
end
- def filtered_by_user?(%User{} = user, %Activity{} = item) do
+ def filtered_by_user?(user, item, streamed_type \\ :activity)
+
+ def filtered_by_user?(%User{} = user, %Activity{} = item, streamed_type) do
%{block: blocked_ap_ids, mute: muted_ap_ids, reblog_mute: reblog_muted_ap_ids} =
User.outgoing_relationships_ap_ids(user, [:block, :mute, :reblog_mute])
@@ -116,7 +118,9 @@ defmodule Pleroma.Web.Streamer do
true <-
Enum.all?([blocked_ap_ids, muted_ap_ids], &(item.actor not in &1)),
true <- item.data["type"] != "Announce" || item.actor not in reblog_muted_ap_ids,
- true <- !(item.data["type"] == "Announce" && parent.data["actor"] == user.ap_id),
+ true <-
+ !(streamed_type == :activity && item.data["type"] == "Announce" &&
+ parent.data["actor"] == user.ap_id),
true <- Enum.all?([blocked_ap_ids, muted_ap_ids], &(parent.data["actor"] not in &1)),
true <- MapSet.disjoint?(recipients, recipient_blocks),
%{host: item_host} <- URI.parse(item.actor),
@@ -131,8 +135,8 @@ defmodule Pleroma.Web.Streamer do
end
end
- def filtered_by_user?(%User{} = user, %Notification{activity: activity}) do
- filtered_by_user?(user, activity)
+ def filtered_by_user?(%User{} = user, %Notification{activity: activity}, _) do
+ filtered_by_user?(user, activity, :notification)
end
defp do_stream("direct", item) do