|
|
@ -211,11 +211,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
Repo.all(query)
|
|
|
|
Repo.all(query)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: Make this work properly with unlisted.
|
|
|
|
|
|
|
|
def fetch_public_activities(opts \\ %{}) do
|
|
|
|
def fetch_public_activities(opts \\ %{}) do
|
|
|
|
q = fetch_activities_query(["https://www.w3.org/ns/activitystreams#Public"], opts)
|
|
|
|
q = fetch_activities_query(["https://www.w3.org/ns/activitystreams#Public"], opts)
|
|
|
|
|
|
|
|
|
|
|
|
q
|
|
|
|
q
|
|
|
|
|
|
|
|
|> restrict_unlisted()
|
|
|
|
|> Repo.all()
|
|
|
|
|> Repo.all()
|
|
|
|
|> Enum.reverse()
|
|
|
|
|> Enum.reverse()
|
|
|
|
end
|
|
|
|
end
|
|
|
@ -322,6 +322,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|
|
|
|
|
|
|
|
|
|
|
|
defp restrict_blocked(query, _), do: query
|
|
|
|
defp restrict_blocked(query, _), do: query
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
defp restrict_unlisted(query) do
|
|
|
|
|
|
|
|
from(
|
|
|
|
|
|
|
|
activity in query,
|
|
|
|
|
|
|
|
where:
|
|
|
|
|
|
|
|
fragment(
|
|
|
|
|
|
|
|
"(?->'to' \\?| ?)",
|
|
|
|
|
|
|
|
activity.data,
|
|
|
|
|
|
|
|
^["https://www.w3.org/ns/activitystreams#Public"]
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def fetch_activities_query(recipients, opts \\ %{}) do
|
|
|
|
def fetch_activities_query(recipients, opts \\ %{}) do
|
|
|
|
base_query =
|
|
|
|
base_query =
|
|
|
|
from(
|
|
|
|
from(
|
|
|
|