summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-10-06 18:11:34 +0000
committerrinpatch <rinpatch@sdf.org>2020-10-06 18:11:34 +0000
commit2698bbc9f63d0bfd59de182d361db03d54aa2a68 (patch)
tree6b882c9189ead8228c246c9453ab77ea4fc1128c /lib
parent0a69dbc97ccd2c5f1abf4aeb1e4b8fe40cb3bea4 (diff)
parentee3052a2d8fda37e27f31c8d824ce7ac174b993c (diff)
downloadpleroma-2698bbc9f63d0bfd59de182d361db03d54aa2a68.tar.gz
pleroma-2698bbc9f63d0bfd59de182d361db03d54aa2a68.zip
Merge branch 'filtering-following' into 'develop'
ActivityPub: Return Announces when filtering by `following`. See merge request pleroma/pleroma!3022
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index aacd58d03..eb44cffec 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -790,7 +790,17 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
[activity, object] in query,
where:
fragment(
- "?->>'inReplyTo' is null OR ? && array_remove(?, ?) OR ? = ?",
+ """
+ ?->>'type' != 'Create' -- This isn't a Create
+ OR ?->>'inReplyTo' is null -- this isn't a reply
+ OR ? && array_remove(?, ?) -- The recipient is us or one of our friends,
+ -- unless they are the author (because authors
+ -- are also part of the recipients). This leads
+ -- to a bug that self-replies by friends won't
+ -- show up.
+ OR ? = ? -- The actor is us
+ """,
+ activity.data,
object.data,
^[user.ap_id | User.get_cached_user_friends_ap_ids(user)],
activity.recipients,