support Undo action for EmojiReaction

This commit is contained in:
fef 2022-12-03 08:24:23 +00:00 committed by Jeremy Kescher
parent 2cf232c1ac
commit 4026e40b32
No known key found for this signature in database
GPG Key ID: 80A419A7A613DFA4
1 changed files with 18 additions and 0 deletions

View File

@ -11,6 +11,8 @@ class ActivityPub::Activity::Undo < ActivityPub::Activity
undo_follow
when 'Like'
undo_like
when 'EmojiReact'
undo_emoji_react
when 'Block'
undo_block
when nil
@ -113,6 +115,22 @@ class ActivityPub::Activity::Undo < ActivityPub::Activity
end
end
def undo_emoji_react
name = @object['content']
return if name.nil?
status = status_from_uri(target_uri)
return if status.nil? || !status.account.local?
if @account.reacted?(status, name.delete(':'))
reaction = status.status_reactions.where(account: @account, name: name).first
reaction&.destroy
else
delete_later!(object_uri)
end
end
def undo_block
target_account = account_from_uri(target_uri)