support reacting with foreign custom emojis

This commit is contained in:
fef 2022-12-07 12:19:36 +00:00 committed by Jeremy Kescher
parent 0b6cb441ad
commit 3540af41db
No known key found for this signature in database
GPG key ID: 80A419A7A613DFA4
3 changed files with 12 additions and 15 deletions

View file

@ -24,11 +24,6 @@ class StatusReaction < ApplicationRecord
private
def set_custom_emoji
return if name.blank?
self.custom_emoji = if account.local?
CustomEmoji.local.find_by(disabled: false, shortcode: name)
else
CustomEmoji.find_by(shortcode: name, domain: account.domain)
end
self.custom_emoji = CustomEmoji.find_by(shortcode: name, domain: account.domain) if name.blank?
end
end

View file

@ -3,7 +3,7 @@
class REST::ReactionSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :name, :count, :extern
attributes :name, :count
attribute :me, if: :current_user?
attribute :url, if: :custom_emoji?
@ -21,11 +21,11 @@ class REST::ReactionSerializer < ActiveModel::Serializer
object.custom_emoji.present?
end
def extern
if custom_emoji?
object.custom_emoji.domain.present?
def name
if extern?
[object.name, '@', object.custom_emoji.domain].join
else
false
object.name
end
end
@ -36,4 +36,10 @@ class REST::ReactionSerializer < ActiveModel::Serializer
def static_url
full_asset_url(object.custom_emoji.image.url(:static))
end
private
def extern?
custom_emoji? && object.custom_emoji.domain.present?
end
end

View file

@ -18,10 +18,6 @@ class StatusReactionValidator < ActiveModel::Validator
SUPPORTED_EMOJIS.include?(name)
end
def new_reaction?(reaction)
!reaction.status.status_reactions.where(name: reaction.name).exists?
end
def limit_reached?(reaction)
reaction.status.status_reactions.where(status: reaction.status, account: reaction.account).count >= LIMIT
end