diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/activity.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/notification_view.ex | 9 | ||||
| -rw-r--r-- | lib/pleroma/web/push/impl.ex | 25 | 
3 files changed, 21 insertions, 21 deletions
| diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 3803d8e50..6213d0eb7 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -300,6 +300,8 @@ defmodule Pleroma.Activity do    def follow_accepted?(_), do: false +  @spec mastodon_notification_type(Activity.t()) :: String.t() | nil +    for {ap_type, type} <- @mastodon_notification_types, not is_list(type) do      def mastodon_notification_type(%Activity{data: %{"type" => unquote(ap_type)}}),        do: unquote(type) @@ -315,11 +317,11 @@ defmodule Pleroma.Activity do    def mastodon_notification_type(%Activity{}), do: nil +  @spec from_mastodon_notification_type(String.t()) :: String.t() | nil +  @doc "Converts Mastodon notification type to AR activity type"    def from_mastodon_notification_type(type) do      with {k, _v} <- -           Enum.find(@mastodon_notification_types, fn {_k, v} -> -             v == type or (is_list(v) and type in v) -           end) do +           Enum.find(@mastodon_notification_types, fn {_k, v} -> type in List.wrap(v) end) do        k      end    end diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index feed47129..7001fd7b9 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -113,17 +113,14 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do          "move" ->            put_target(response, activity, reading_user, render_opts) -        "follow" -> -          response - -        "follow_request" -> -          response -          "pleroma:emoji_reaction" ->            response            |> put_status(parent_activity_fn.(), reading_user, render_opts)            |> put_emoji(activity) +        type when type in ["follow", "follow_request"] -> +          response +          _ ->            nil        end diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index 89d45b2e1..f1740a6e0 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -153,10 +153,10 @@ defmodule Pleroma.Web.Push.Impl do        when type in ["Follow", "Like"] do      mastodon_type = mastodon_type || mastodon_notification_type(notification.activity) -    case {type, mastodon_type} do -      {"Follow", "follow"} -> "@#{actor.nickname} has followed you" -      {"Follow", "follow_request"} -> "@#{actor.nickname} has requested to follow you" -      {"Like", _} -> "@#{actor.nickname} has favorited your post" +    case mastodon_type do +      "follow" -> "@#{actor.nickname} has followed you" +      "follow_request" -> "@#{actor.nickname} has requested to follow you" +      "favourite" -> "@#{actor.nickname} has favorited your post"      end    end @@ -166,15 +166,16 @@ defmodule Pleroma.Web.Push.Impl do      "New Direct Message"    end -  def format_title(%{activity: %{data: %{"type" => type}}} = notification, mastodon_type) do -    mastodon_type = mastodon_type || mastodon_notification_type(notification.activity) +  def format_title(%{activity: activity}, mastodon_type) do +    mastodon_type = mastodon_type || mastodon_notification_type(activity) -    case {type, mastodon_type} do -      {"Create", _} -> "New Mention" -      {"Follow", "follow"} -> "New Follower" -      {"Follow", "follow_request"} -> "New Follow Request" -      {"Announce", _} -> "New Repeat" -      {"Like", _} -> "New Favorite" +    case mastodon_type do +      "mention" -> "New Mention" +      "follow" -> "New Follower" +      "follow_request" -> "New Follow Request" +      "reblog" -> "New Repeat" +      "favourite" -> "New Favorite" +      type -> "New #{String.capitalize(type || "event")}"      end    end  end | 
