Restrict public by recipients.
This is much faster than going through the json. This does break unlisted, for which we'll probably have to add another table field.
This commit is contained in:
parent
a17ba0ee0d
commit
1377b2e569
@ -155,11 +155,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
||||
Repo.all(query)
|
||||
end
|
||||
|
||||
# TODO: Make this work properly with unlisted.
|
||||
def fetch_public_activities(opts \\ %{}) do
|
||||
public = %{to: ["https://www.w3.org/ns/activitystreams#Public"]}
|
||||
q = fetch_activities_query([], opts)
|
||||
q = from activity in q,
|
||||
where: fragment(~s(? @> ?), activity.data, ^public)
|
||||
q = fetch_activities_query(["https://www.w3.org/ns/activitystreams#Public"], opts)
|
||||
q
|
||||
|> Repo.all
|
||||
|> Enum.reverse
|
||||
|
Loading…
Reference in New Issue
Block a user