diff options
| author | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-01-23 02:12:03 +0000 | 
|---|---|---|
| committer | Haelwenn <contact+git.pleroma.social@hacktivis.me> | 2020-01-23 02:12:03 +0000 | 
| commit | dddebee047efc4ab1dff6565bef32954695846a7 (patch) | |
| tree | 550cf393f8406919e70e1b3aa5fa67ff365b57b8 /lib | |
| parent | 73e6bbbe8973d81688e0916e616cd4726ad659c2 (diff) | |
| parent | 002146d2979afcebe1b3d0c720eb011aa9dbebd0 (diff) | |
| download | pleroma-dddebee047efc4ab1dff6565bef32954695846a7.tar.gz pleroma-dddebee047efc4ab1dff6565bef32954695846a7.zip  | |
Merge branch 'emoji-notifications' into 'develop'
Emoji notifications
See merge request pleroma/pleroma!2130
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/activity.ex | 3 | ||||
| -rw-r--r-- | lib/pleroma/notification.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/notification_view.ex | 31 | 
3 files changed, 29 insertions, 9 deletions
diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 896cbb3c5..0f8fce774 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -30,7 +30,8 @@ defmodule Pleroma.Activity do      "Follow" => "follow",      "Announce" => "reblog",      "Like" => "favourite", -    "Move" => "move" +    "Move" => "move", +    "EmojiReaction" => "pleroma:emoji_reaction"    }    @mastodon_to_ap_notification_types for {k, v} <- @mastodon_notification_types, diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 8f3e46af9..d04a65a1e 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -294,7 +294,7 @@ defmodule Pleroma.Notification do    end    def create_notifications(%Activity{data: %{"type" => type}} = activity) -      when type in ["Like", "Announce", "Follow", "Move"] do +      when type in ["Like", "Announce", "Follow", "Move", "EmojiReaction"] do      notifications =        activity        |> get_notified_from_activity() @@ -322,7 +322,7 @@ defmodule Pleroma.Notification do    def get_notified_from_activity(activity, local_only \\ true)    def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only) -      when type in ["Create", "Like", "Announce", "Follow", "Move"] do +      when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReaction"] do      []      |> Utils.maybe_notify_to_recipients(activity)      |> Utils.maybe_notify_mentioned_recipients(activity) diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index ddd7f5318..360ec10f0 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -37,18 +37,37 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do        }        case mastodon_type do -        "mention" -> put_status(response, activity, user) -        "favourite" -> put_status(response, parent_activity, user) -        "reblog" -> put_status(response, parent_activity, user) -        "move" -> put_target(response, activity, user) -        "follow" -> response -        _ -> nil +        "mention" -> +          put_status(response, activity, user) + +        "favourite" -> +          put_status(response, parent_activity, user) + +        "reblog" -> +          put_status(response, parent_activity, user) + +        "move" -> +          put_target(response, activity, user) + +        "follow" -> +          response + +        "pleroma:emoji_reaction" -> +          put_status(response, parent_activity, user) |> put_emoji(activity) + +        _ -> +          nil        end      else        _ -> nil      end    end +  defp put_emoji(response, activity) do +    response +    |> Map.put(:emoji, activity.data["content"]) +  end +    defp put_status(response, activity, user) do      Map.put(response, :status, StatusView.render("show.json", %{activity: activity, for: user}))    end  | 
