aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-06-19 05:15:11 +0000
committerlambda <pleromagit@rogerbraun.net>2018-06-19 05:15:11 +0000
commitdb0731b6ac077c341f6e6779af2c2d5a94d3d14a (patch)
tree2fc2c5d1bb7bf04aec2d864900b0b08f5d7df330 /lib
parentde80363518d7f5118cef6528e64fd12a574707a6 (diff)
parent4f589998ee2500504de1fcd3c1b5c00a12f6253d (diff)
downloadpleroma-db0731b6ac077c341f6e6779af2c2d5a94d3d14a.tar.gz
Merge branch 'feature/exclude-replies-filter' into 'develop'
activitypub: support filtering activities by whether or not they are a reply (closes #109) Closes #109 See merge request pleroma/pleroma!226
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 267427a23..567ee3115 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -430,6 +430,15 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
defp restrict_media(query, _), do: query
+ defp restrict_replies(query, %{"exclude_replies" => val}) when val == "true" or val == "1" do
+ from(
+ activity in query,
+ where: fragment("?->'object'->>'inReplyTo' is null", activity.data)
+ )
+ end
+
+ defp restrict_replies(query, _), do: query
+
# Only search through last 100_000 activities by default
defp restrict_recent(query, %{"whole_db" => true}), do: query
@@ -487,6 +496,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
|> restrict_blocked(opts)
|> restrict_media(opts)
|> restrict_visibility(opts)
+ |> restrict_replies(opts)
end
def fetch_activities(recipients, opts \\ %{}) do