support Undo action for EmojiReaction

This commit is contained in:
fef 2022-12-03 08:24:23 +00:00
parent 8dcf7b224c
commit e0607e36a9
No known key found for this signature in database
GPG key ID: EC22E476DC2D3D84

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)