From a22f2e683b5e77eb563f0ca05a2160578ed2ac82 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 9 Sep 2017 12:05:17 +0200 Subject: [PATCH] Add type restriction to activitypub fetcher Mainly because Mastodon only returns notes, not the other activities. --- lib/pleroma/web/activity_pub/activity_pub.ex | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index db1302738..8ae321658 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -133,6 +133,12 @@ defp restrict_actor(query, %{"actor_id" => actor_id}) do end defp restrict_actor(query, _), do: query + defp restrict_type(query, %{"type" => type}) do + from activity in query, + where: fragment("?->>'type' = ?", activity.data, ^type) + end + defp restrict_type(query, _), do: query + def fetch_activities(recipients, opts \\ %{}) do base_query = from activity in Activity, limit: 20, @@ -144,6 +150,7 @@ def fetch_activities(recipients, opts \\ %{}) do |> restrict_local(opts) |> restrict_max(opts) |> restrict_actor(opts) + |> restrict_type(opts) |> Repo.all |> Enum.reverse end