diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2020-06-15 16:03:40 +0400 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2020-06-15 16:03:40 +0400 |
commit | 58e4e3db8b04933129303d0ad9da74b43cbb4003 (patch) | |
tree | 28cc28e116b8a8091e686ebc7a17f3c783d7ad04 /lib/pleroma/notification.ex | |
parent | 09d31d24de568aac06fe203beeb8bb2a9de8f602 (diff) | |
parent | 448e93ce2c1eab9eb91118b90f661c31056e4781 (diff) | |
download | pleroma-58e4e3db8b04933129303d0ad9da74b43cbb4003.tar.gz |
Merge remote-tracking branch 'origin/develop' into merge-ogp-twitter-parsers
Diffstat (limited to 'lib/pleroma/notification.ex')
-rw-r--r-- | lib/pleroma/notification.ex | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 3386a1933..9ee9606be 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -166,8 +166,16 @@ defmodule Pleroma.Notification do query |> join(:left, [n, a], mutated_activity in Pleroma.Activity, on: - fragment("?->>'context'", a.data) == - fragment("?->>'context'", mutated_activity.data) and + fragment( + "COALESCE((?->'object')->>'id', ?->>'object')", + a.data, + a.data + ) == + fragment( + "COALESCE((?->'object')->>'id', ?->>'object')", + mutated_activity.data, + mutated_activity.data + ) and fragment("(?->>'type' = 'Like' or ?->>'type' = 'Announce')", a.data, a.data) and fragment("?->>'type'", mutated_activity.data) == "Create", as: :mutated_activity @@ -541,6 +549,7 @@ defmodule Pleroma.Notification do def skip?(%Activity{} = activity, %User{} = user) do [ :self, + :invisible, :followers, :follows, :non_followers, @@ -557,6 +566,12 @@ defmodule Pleroma.Notification do activity.data["actor"] == user.ap_id end + def skip?(:invisible, %Activity{} = activity, _) do + actor = activity.data["actor"] + user = User.get_cached_by_ap_id(actor) + User.invisible?(user) + end + def skip?( :followers, %Activity{} = activity, |