diff options
author | lain <lain@soykaf.club> | 2020-07-06 12:15:59 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-07-06 12:15:59 +0200 |
commit | 1963e143c5feace9eb9a3be29b0eeba2ad88751a (patch) | |
tree | 9a7ae160dd452db000e33af62f61057667c5953f /lib/pleroma/web/streamer/streamer.ex | |
parent | 67d92ac7b7b977debac8f8e580db1f0e1ef3ed52 (diff) | |
parent | 69f0b286f7b3e0518ac7ae54dfb06539dc179698 (diff) | |
download | pleroma-1963e143c5feace9eb9a3be29b0eeba2ad88751a.tar.gz |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remove-twitter-api
Diffstat (limited to 'lib/pleroma/web/streamer/streamer.ex')
-rw-r--r-- | lib/pleroma/web/streamer/streamer.ex | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/pleroma/web/streamer/streamer.ex b/lib/pleroma/web/streamer/streamer.ex index d1d2c9b9c..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,6 +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 <- + !(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), @@ -130,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 |