Add a notification for Move activities

This commit is contained in:
Egor Kislitsyn 2019-11-12 18:48:14 +07:00
commit 27cd1374e3
No known key found for this signature in database
GPG key ID: 1B49CB15B71E7805
3 changed files with 40 additions and 23 deletions

View file

@ -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)