mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-12-23 01:35:28 +00:00
Merge branch 'rename_emoji_reactios' into 'develop'
EmojiReactions: Rename to EmojiReacts See merge request pleroma/pleroma!2181
This commit is contained in:
commit
f13b7878b4
|
@ -101,7 +101,7 @@ The `type` value is `move`. Has an additional field:
|
||||||
|
|
||||||
- `target`: new account
|
- `target`: new account
|
||||||
|
|
||||||
### EmojiReaction Notification
|
### EmojiReact Notification
|
||||||
|
|
||||||
The `type` value is `pleroma:emoji_reaction`. Has these fields:
|
The `type` value is `pleroma:emoji_reaction`. Has these fields:
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ defmodule Pleroma.Activity do
|
||||||
"Announce" => "reblog",
|
"Announce" => "reblog",
|
||||||
"Like" => "favourite",
|
"Like" => "favourite",
|
||||||
"Move" => "move",
|
"Move" => "move",
|
||||||
"EmojiReaction" => "pleroma:emoji_reaction"
|
"EmojiReact" => "pleroma:emoji_reaction"
|
||||||
}
|
}
|
||||||
|
|
||||||
@mastodon_to_ap_notification_types for {k, v} <- @mastodon_notification_types,
|
@mastodon_to_ap_notification_types for {k, v} <- @mastodon_notification_types,
|
||||||
|
|
|
@ -294,7 +294,7 @@ defmodule Pleroma.Notification do
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_notifications(%Activity{data: %{"type" => type}} = activity)
|
def create_notifications(%Activity{data: %{"type" => type}} = activity)
|
||||||
when type in ["Like", "Announce", "Follow", "Move", "EmojiReaction"] do
|
when type in ["Like", "Announce", "Follow", "Move", "EmojiReact"] do
|
||||||
notifications =
|
notifications =
|
||||||
activity
|
activity
|
||||||
|> get_notified_from_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, local_only \\ true)
|
||||||
|
|
||||||
def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only)
|
def get_notified_from_activity(%Activity{data: %{"type" => type}} = activity, local_only)
|
||||||
when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReaction"] do
|
when type in ["Create", "Like", "Announce", "Follow", "Move", "EmojiReact"] do
|
||||||
[]
|
[]
|
||||||
|> Utils.maybe_notify_to_recipients(activity)
|
|> Utils.maybe_notify_to_recipients(activity)
|
||||||
|> Utils.maybe_notify_mentioned_recipients(activity)
|
|> Utils.maybe_notify_mentioned_recipients(activity)
|
||||||
|
|
|
@ -580,7 +580,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
||||||
"star" => "⭐"
|
"star" => "⭐"
|
||||||
}
|
}
|
||||||
|
|
||||||
@doc "Rewrite misskey likes into EmojiReactions"
|
@doc "Rewrite misskey likes into EmojiReacts"
|
||||||
def handle_incoming(
|
def handle_incoming(
|
||||||
%{
|
%{
|
||||||
"type" => "Like",
|
"type" => "Like",
|
||||||
|
@ -589,7 +589,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
||||||
options
|
options
|
||||||
) do
|
) do
|
||||||
data
|
data
|
||||||
|> Map.put("type", "EmojiReaction")
|
|> Map.put("type", "EmojiReact")
|
||||||
|> Map.put("content", @misskey_reactions[reaction] || reaction)
|
|> Map.put("content", @misskey_reactions[reaction] || reaction)
|
||||||
|> handle_incoming(options)
|
|> handle_incoming(options)
|
||||||
end
|
end
|
||||||
|
@ -610,7 +610,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
||||||
|
|
||||||
def handle_incoming(
|
def handle_incoming(
|
||||||
%{
|
%{
|
||||||
"type" => "EmojiReaction",
|
"type" => "EmojiReact",
|
||||||
"object" => object_id,
|
"object" => object_id,
|
||||||
"actor" => _actor,
|
"actor" => _actor,
|
||||||
"id" => id,
|
"id" => id,
|
||||||
|
@ -751,7 +751,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
|
||||||
def handle_incoming(
|
def handle_incoming(
|
||||||
%{
|
%{
|
||||||
"type" => "Undo",
|
"type" => "Undo",
|
||||||
"object" => %{"type" => "EmojiReaction", "id" => reaction_activity_id},
|
"object" => %{"type" => "EmojiReact", "id" => reaction_activity_id},
|
||||||
"actor" => _actor,
|
"actor" => _actor,
|
||||||
"id" => id
|
"id" => id
|
||||||
} = data,
|
} = data,
|
||||||
|
|
|
@ -308,7 +308,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do
|
||||||
|
|
||||||
def make_emoji_reaction_data(user, object, emoji, activity_id) do
|
def make_emoji_reaction_data(user, object, emoji, activity_id) do
|
||||||
make_like_data(user, object, activity_id)
|
make_like_data(user, object, activity_id)
|
||||||
|> Map.put("type", "EmojiReaction")
|
|> Map.put("type", "EmojiReact")
|
||||||
|> Map.put("content", emoji)
|
|> Map.put("content", emoji)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -493,7 +493,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do
|
||||||
def get_latest_reaction(internal_activity_id, %{ap_id: ap_id}, emoji) do
|
def get_latest_reaction(internal_activity_id, %{ap_id: ap_id}, emoji) do
|
||||||
%{data: %{"object" => object_ap_id}} = Activity.get_by_id(internal_activity_id)
|
%{data: %{"object" => object_ap_id}} = Activity.get_by_id(internal_activity_id)
|
||||||
|
|
||||||
"EmojiReaction"
|
"EmojiReact"
|
||||||
|> Activity.Queries.by_type()
|
|> Activity.Queries.by_type()
|
||||||
|> where(actor: ^ap_id)
|
|> where(actor: ^ap_id)
|
||||||
|> where([activity], fragment("?->>'content' = ?", activity.data, ^emoji))
|
|> where([activity], fragment("?->>'content' = ?", activity.data, ^emoji))
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"@id": "litepub:oauthRegistrationEndpoint",
|
"@id": "litepub:oauthRegistrationEndpoint",
|
||||||
"@type": "@id"
|
"@type": "@id"
|
||||||
},
|
},
|
||||||
"EmojiReaction": "litepub:EmojiReaction",
|
"EmojiReact": "litepub:EmojiReact",
|
||||||
"alsoKnownAs": {
|
"alsoKnownAs": {
|
||||||
"@id": "as:alsoKnownAs",
|
"@id": "as:alsoKnownAs",
|
||||||
"@type": "@id"
|
"@type": "@id"
|
||||||
|
|
2
test/fixtures/emoji-reaction-no-emoji.json
vendored
2
test/fixtures/emoji-reaction-no-emoji.json
vendored
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"type": "EmojiReaction",
|
"type": "EmojiReact",
|
||||||
"signature": {
|
"signature": {
|
||||||
"type": "RsaSignature2017",
|
"type": "RsaSignature2017",
|
||||||
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
||||||
|
|
2
test/fixtures/emoji-reaction-too-long.json
vendored
2
test/fixtures/emoji-reaction-too-long.json
vendored
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"type": "EmojiReaction",
|
"type": "EmojiReact",
|
||||||
"signature": {
|
"signature": {
|
||||||
"type": "RsaSignature2017",
|
"type": "RsaSignature2017",
|
||||||
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
||||||
|
|
2
test/fixtures/emoji-reaction.json
vendored
2
test/fixtures/emoji-reaction.json
vendored
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"type": "EmojiReaction",
|
"type": "EmojiReact",
|
||||||
"signature": {
|
"signature": {
|
||||||
"type": "RsaSignature2017",
|
"type": "RsaSignature2017",
|
||||||
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
"signatureValue": "fdxMfQSMwbC6wP6sh6neS/vM5879K67yQkHTbiT5Npr5wAac0y6+o3Ij+41tN3rL6wfuGTosSBTHOtta6R4GCOOhCaCSLMZKypnp1VltCzLDoyrZELnYQIC8gpUXVmIycZbREk22qWUe/w7DAFaKK4UscBlHDzeDVcA0K3Se5Sluqi9/Zh+ldAnEzj/rSEPDjrtvf5wGNf3fHxbKSRKFt90JvKK6hS+vxKUhlRFDf6/SMETw+EhwJSNW4d10yMUakqUWsFv4Acq5LW7l+HpYMvlYY1FZhNde1+uonnCyuQDyvzkff8zwtEJmAXC4RivO/VVLa17SmqheJZfI8oluVg==",
|
||||||
|
|
|
@ -877,7 +877,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
||||||
assert reaction_activity
|
assert reaction_activity
|
||||||
|
|
||||||
assert reaction_activity.data["actor"] == reactor.ap_id
|
assert reaction_activity.data["actor"] == reactor.ap_id
|
||||||
assert reaction_activity.data["type"] == "EmojiReaction"
|
assert reaction_activity.data["type"] == "EmojiReact"
|
||||||
assert reaction_activity.data["content"] == "🔥"
|
assert reaction_activity.data["content"] == "🔥"
|
||||||
assert reaction_activity.data["object"] == object.data["id"]
|
assert reaction_activity.data["object"] == object.data["id"]
|
||||||
assert reaction_activity.data["to"] == [User.ap_followers(reactor), activity.data["actor"]]
|
assert reaction_activity.data["to"] == [User.ap_followers(reactor), activity.data["actor"]]
|
||||||
|
|
|
@ -340,7 +340,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
||||||
assert data["object"] == activity.data["object"]
|
assert data["object"] == activity.data["object"]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "it works for incoming misskey likes, turning them into EmojiReactions" do
|
test "it works for incoming misskey likes, turning them into EmojiReacts" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})
|
||||||
|
|
||||||
|
@ -352,13 +352,13 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
||||||
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
||||||
|
|
||||||
assert data["actor"] == data["actor"]
|
assert data["actor"] == data["actor"]
|
||||||
assert data["type"] == "EmojiReaction"
|
assert data["type"] == "EmojiReact"
|
||||||
assert data["id"] == data["id"]
|
assert data["id"] == data["id"]
|
||||||
assert data["object"] == activity.data["object"]
|
assert data["object"] == activity.data["object"]
|
||||||
assert data["content"] == "🍮"
|
assert data["content"] == "🍮"
|
||||||
end
|
end
|
||||||
|
|
||||||
test "it works for incoming misskey likes that contain unicode emojis, turning them into EmojiReactions" do
|
test "it works for incoming misskey likes that contain unicode emojis, turning them into EmojiReacts" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "hello"})
|
||||||
|
|
||||||
|
@ -371,7 +371,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
||||||
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
||||||
|
|
||||||
assert data["actor"] == data["actor"]
|
assert data["actor"] == data["actor"]
|
||||||
assert data["type"] == "EmojiReaction"
|
assert data["type"] == "EmojiReact"
|
||||||
assert data["id"] == data["id"]
|
assert data["id"] == data["id"]
|
||||||
assert data["object"] == activity.data["object"]
|
assert data["object"] == activity.data["object"]
|
||||||
assert data["content"] == "⭐"
|
assert data["content"] == "⭐"
|
||||||
|
@ -389,7 +389,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
||||||
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
{:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data)
|
||||||
|
|
||||||
assert data["actor"] == "http://mastodon.example.org/users/admin"
|
assert data["actor"] == "http://mastodon.example.org/users/admin"
|
||||||
assert data["type"] == "EmojiReaction"
|
assert data["type"] == "EmojiReact"
|
||||||
assert data["id"] == "http://mastodon.example.org/users/admin#reactions/2"
|
assert data["id"] == "http://mastodon.example.org/users/admin#reactions/2"
|
||||||
assert data["object"] == activity.data["object"]
|
assert data["object"] == activity.data["object"]
|
||||||
assert data["content"] == "👌"
|
assert data["content"] == "👌"
|
||||||
|
|
|
@ -135,7 +135,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do
|
||||||
NotificationView.render("index.json", %{notifications: [notification], for: follower})
|
NotificationView.render("index.json", %{notifications: [notification], for: follower})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "EmojiReaction notification" do
|
test "EmojiReact notification" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user)
|
other_user = insert(:user)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue