aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/common_api
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-11-12 18:48:14 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-11-12 18:48:14 +0700
commit27cd1374e3c1768a1a0b8abb40d5b56e6e021d2d (patch)
treed172ba429ddcc87bab9219bf941b2fd9f2828434 /lib/pleroma/web/common_api
parente6d7e27bd603806e96dfc2774f90cadb3cf73a8c (diff)
downloadpleroma-27cd1374e3c1768a1a0b8abb40d5b56e6e021d2d.tar.gz
Add a notification for Move activities
Diffstat (limited to 'lib/pleroma/web/common_api')
-rw-r--r--lib/pleroma/web/common_api/utils.ex21
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index 88a5f434a..43b67d0f0 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -451,6 +451,8 @@ defmodule Pleroma.Web.CommonAPI.Utils do
recipients ++ to
end
+ def maybe_notify_to_recipients(recipients, _), do: recipients
+
def maybe_notify_mentioned_recipients(
recipients,
%Activity{data: %{"to" => _to, "type" => type} = data} = activity
@@ -484,12 +486,8 @@ defmodule Pleroma.Web.CommonAPI.Utils do
recipients
end
- def maybe_notify_subscribers(
- recipients,
- %Activity{data: %{"actor" => actor, "type" => type}} = activity
- )
- when type == "Create" do
- with %User{} = user <- User.get_cached_by_ap_id(actor) do
+ def maybe_notify_subscribers(recipients, %Activity{data: %{"type" => "Create"}} = activity) do
+ with %User{} = user <- User.get_cached_by_ap_id(activity.actor) do
subscriber_ids =
user
|> User.subscribers()
@@ -502,6 +500,17 @@ defmodule Pleroma.Web.CommonAPI.Utils do
def maybe_notify_subscribers(recipients, _), do: recipients
+ def maybe_notify_followers(recipients, %Activity{data: %{"type" => "Move"}} = activity) do
+ with %User{} = user <- User.get_cached_by_ap_id(activity.actor) do
+ user
+ |> User.get_followers()
+ |> Enum.map(& &1.ap_id)
+ |> Enum.concat(recipients)
+ end
+ end
+
+ def maybe_notify_followers(recipients, _), do: recipients
+
def maybe_extract_mentions(%{"tag" => tag}) do
tag
|> Enum.filter(fn x -> is_map(x) && x["type"] == "Mention" end)