forked from AkkomaGang/akkoma
Do not stream out poll replies
This commit is contained in:
parent
d7c4d029c8
commit
ee68244141
1 changed files with 28 additions and 26 deletions
|
@ -192,40 +192,42 @@ def stream_out(activity) do
|
||||||
public = "https://www.w3.org/ns/activitystreams#Public"
|
public = "https://www.w3.org/ns/activitystreams#Public"
|
||||||
|
|
||||||
if activity.data["type"] in ["Create", "Announce", "Delete"] do
|
if activity.data["type"] in ["Create", "Announce", "Delete"] do
|
||||||
Pleroma.Web.Streamer.stream("user", activity)
|
object = Object.normalize(activity)
|
||||||
Pleroma.Web.Streamer.stream("list", activity)
|
# Do not stream out poll replies
|
||||||
|
unless object.data["name"] do
|
||||||
|
Pleroma.Web.Streamer.stream("user", activity)
|
||||||
|
Pleroma.Web.Streamer.stream("list", activity)
|
||||||
|
|
||||||
if Enum.member?(activity.data["to"], public) do
|
if Enum.member?(activity.data["to"], public) do
|
||||||
Pleroma.Web.Streamer.stream("public", activity)
|
Pleroma.Web.Streamer.stream("public", activity)
|
||||||
|
|
||||||
if activity.local do
|
if activity.local do
|
||||||
Pleroma.Web.Streamer.stream("public:local", activity)
|
Pleroma.Web.Streamer.stream("public:local", activity)
|
||||||
end
|
end
|
||||||
|
|
||||||
if activity.data["type"] in ["Create"] do
|
if activity.data["type"] in ["Create"] do
|
||||||
object = Object.normalize(activity)
|
object.data
|
||||||
|
|> Map.get("tag", [])
|
||||||
|
|> Enum.filter(fn tag -> is_bitstring(tag) end)
|
||||||
|
|> Enum.each(fn tag -> Pleroma.Web.Streamer.stream("hashtag:" <> tag, activity) end)
|
||||||
|
|
||||||
object.data
|
if object.data["attachment"] != [] do
|
||||||
|> Map.get("tag", [])
|
Pleroma.Web.Streamer.stream("public:media", activity)
|
||||||
|> Enum.filter(fn tag -> is_bitstring(tag) end)
|
|
||||||
|> Enum.each(fn tag -> Pleroma.Web.Streamer.stream("hashtag:" <> tag, activity) end)
|
|
||||||
|
|
||||||
if object.data["attachment"] != [] do
|
if activity.local do
|
||||||
Pleroma.Web.Streamer.stream("public:media", activity)
|
Pleroma.Web.Streamer.stream("public:local:media", activity)
|
||||||
|
end
|
||||||
if activity.local do
|
|
||||||
Pleroma.Web.Streamer.stream("public:local:media", activity)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
# TODO: Write test, replace with visibility test
|
||||||
|
if !Enum.member?(activity.data["cc"] || [], public) &&
|
||||||
|
!Enum.member?(
|
||||||
|
activity.data["to"],
|
||||||
|
User.get_cached_by_ap_id(activity.data["actor"]).follower_address
|
||||||
|
),
|
||||||
|
do: Pleroma.Web.Streamer.stream("direct", activity)
|
||||||
end
|
end
|
||||||
else
|
|
||||||
# TODO: Write test, replace with visibility test
|
|
||||||
if !Enum.member?(activity.data["cc"] || [], public) &&
|
|
||||||
!Enum.member?(
|
|
||||||
activity.data["to"],
|
|
||||||
User.get_cached_by_ap_id(activity.data["actor"]).follower_address
|
|
||||||
),
|
|
||||||
do: Pleroma.Web.Streamer.stream("direct", activity)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue