From 1377b2e569e91b4f51ba4715b343e1a8a7feb8ba Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 26 Feb 2018 10:09:30 +0100 Subject: [PATCH] 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. --- lib/pleroma/web/activity_pub/activity_pub.ex | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 667f8fc15..965f2cc9b 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -155,11 +155,9 @@ def fetch_activities_for_context(context, opts \\ %{}) 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