diff --git a/app/lib/activitypub/activity/undo.rb b/app/lib/activitypub/activity/undo.rb index 973143d8d2..eac34efdc9 100644 --- a/app/lib/activitypub/activity/undo.rb +++ b/app/lib/activitypub/activity/undo.rb @@ -146,6 +146,7 @@ class ActivityPub::Activity::Undo < ActivityPub::Activity if @original_status.account.local? forward_for_undo_emoji_reaction relay_for_undo_emoji_reaction + relay_friend_for_undo_emoji_reaction end end else @@ -184,6 +185,14 @@ class ActivityPub::Activity::Undo < ActivityPub::Activity end end + def relay_friend_for_undo_emoji_reaction + return unless @json['signature'].present? && @original_status.distributable_friend? + + ActivityPub::DeliveryWorker.push_bulk(FriendDomain.distributables.pluck(:inbox_url)) do |inbox_url| + [Oj.dump(@json), @original_status.account.id, inbox_url] + end + end + def shortcode return @shortcode if defined?(@shortcode) diff --git a/app/services/un_emoji_react_service.rb b/app/services/un_emoji_react_service.rb index b473d43459..2f9fa169e3 100644 --- a/app/services/un_emoji_react_service.rb +++ b/app/services/un_emoji_react_service.rb @@ -52,7 +52,7 @@ class UnEmojiReactService < BaseService end def build_json(emoji_reaction) - Oj.dump(serialize_payload(emoji_reaction, ActivityPub::UndoEmojiReactionSerializer)) + Oj.dump(serialize_payload(emoji_reaction, ActivityPub::UndoEmojiReactionSerializer, signer: emoji_reaction.account)) end def render_emoji_reaction(emoji_group)