def stream_out(activity) do
if activity.data["type"] in ["Create", "Announce"] do
Pleroma.Web.Streamer.stream("user", activity)
+ direct? = activity.data["object"]["visibility"] == "direct"
- if Enum.member?(activity.data["to"], "https://www.w3.org/ns/activitystreams#Public") do
- Pleroma.Web.Streamer.stream("public", activity)
+ cond do
+ direct? ->
+ Pleroma.Web.Streamer.stream("direct", activity)
- if activity.local do
- Pleroma.Web.Streamer.stream("public:local", activity)
- end
+ Enum.member?(activity.data["to"], "https://www.w3.org/ns/activitystreams#Public") ->
+ Pleroma.Web.Streamer.stream("public", activity)
+
+ if activity.local do
+ Pleroma.Web.Streamer.stream("public:local", activity)
+ end
end
end
end
with token when not is_nil(token) <- params["access_token"],
%Token{user_id: user_id} <- Repo.get_by(Token, token: token),
%User{} = user <- Repo.get(User, user_id),
- stream when stream in ["public", "public:local", "user"] <- params["stream"] do
+ stream when stream in ["public", "public:local", "user", "direct"] <- params["stream"] do
socket =
socket
|> assign(:topic, params["stream"])