Commit cce9d008 authored by kaniini's avatar kaniini
Browse files

streamer: contain list updates in the same way as we do with the database query

parent ded90912
Pipeline #3394 passed with stages
in 5 minutes and 13 seconds
defmodule Pleroma.Web.Streamer do
use GenServer
require Logger
alias Pleroma.{User, Notification, Activity, Object}
alias Pleroma.{User, Notification, Activity, Object, Repo}
alias Pleroma.Web.ActivityPub.ActivityPub
def init(args) do
{:ok, args}
......@@ -60,8 +61,24 @@ def handle_cast(%{action: :stream, topic: "direct", item: item}, topics) do
def handle_cast(%{action: :stream, topic: "list", item: item}, topics) do
author = User.get_cached_by_ap_id(["actor"])
# filter the recipient list if the activity is not public, see #270.
recipient_lists =
case ActivityPub.is_public?(item) do
true ->
_ ->
|> Enum.filter(fn list ->
owner = Repo.get(User, list.user_id)
author.follower_address in owner.following
recipient_topics =
|> %{id: id} -> "list:#{id}" end)
Enum.each(recipient_topics || [], fn list_topic ->
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment