Add capability for emoji reaction push notifications
This commit is contained in:
parent
d33b9e7b33
commit
3ce11b830e
2 changed files with 29 additions and 1 deletions
|
@ -16,7 +16,7 @@ defmodule Pleroma.Web.Push.Impl do
|
|||
require Logger
|
||||
import Ecto.Query
|
||||
|
||||
@types ["Create", "Follow", "Announce", "Like", "Move"]
|
||||
@types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact"]
|
||||
|
||||
@doc "Performs sending notifications for user subscriptions"
|
||||
@spec perform(Notification.t()) :: list(any) | :error | {:error, :unknown_type}
|
||||
|
@ -149,6 +149,15 @@ def format_body(
|
|||
"@#{actor.nickname} repeated: #{Utils.scrub_html_and_truncate(content, 80)}"
|
||||
end
|
||||
|
||||
def format_body(
|
||||
%{activity: %{data: %{"type" => "EmojiReact", "content" => content}}},
|
||||
actor,
|
||||
_object,
|
||||
_mastodon_type
|
||||
) do
|
||||
"@#{actor.nickname} has reacted with #{content}"
|
||||
end
|
||||
|
||||
def format_body(
|
||||
%{activity: %{data: %{"type" => type}}} = notification,
|
||||
actor,
|
||||
|
@ -179,6 +188,7 @@ def format_title(%{type: type}, mastodon_type) do
|
|||
"reblog" -> "New Repeat"
|
||||
"favourite" -> "New Favorite"
|
||||
"pleroma:chat_mention" -> "New Chat Message"
|
||||
"pleroma:emoji_reaction" -> "New Reaction"
|
||||
type -> "New #{String.capitalize(type || "event")}"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -184,6 +184,24 @@ test "renders title and body for like activity" do
|
|||
"New Favorite"
|
||||
end
|
||||
|
||||
test "renders title and body for pleroma:emoji_reaction activity" do
|
||||
user = insert(:user, nickname: "Bob")
|
||||
|
||||
{:ok, activity} =
|
||||
CommonAPI.post(user, %{
|
||||
status: "This post is a really good post!"
|
||||
})
|
||||
|
||||
{:ok, activity} = CommonAPI.react_with_emoji(activity.id, user, "👍")
|
||||
object = Object.normalize(activity)
|
||||
|
||||
assert Impl.format_body(%{activity: activity, type: "pleroma:emoji_reaction"}, user, object) ==
|
||||
"@Bob has reacted with 👍"
|
||||
|
||||
assert Impl.format_title(%{activity: activity, type: "pleroma:emoji_reaction"}) ==
|
||||
"New Reaction"
|
||||
end
|
||||
|
||||
test "renders title for create activity with direct visibility" do
|
||||
user = insert(:user, nickname: "Bob")
|
||||
|
||||
|
|
Loading…
Reference in a new issue