- defp reply_recipients(user, "following") do
- [user.ap_id | User.get_cached_user_friends_ap_ids(user)]
- end
-
- defp reply_recipients(user, "self"), do: [user.ap_id]
-
- defp restrict_recipients(query, [], _opts), do: query
-
- defp restrict_recipients(
- query,
- recipients,
- %{"user" => nil, "reply_user" => user, "reply_visibility" => visibility}
- )
- when not is_nil(user) and visibility in ["following", "self"] do
- reply_recipients = reply_recipients(user, visibility)
-
- from([activity, object] in query,
- where:
- fragment(
- "? && ? AND (?->>'inReplyTo' IS NULL OR array_remove(?, ?) && ? OR ? = ?)",
- ^recipients,
- activity.recipients,
- object.data,
- activity.recipients,
- activity.actor,
- ^reply_recipients,
- activity.actor,
- ^user.ap_id
- )
- )
- end
+ defp restrict_recipients(query, [], _user), do: query