Fix: 他のサーバーの同じ絵文字を複数つけられる問題 (#141)
* スタンプ機能のリファクタリング、投稿の反応者へも配送 * Fix: 他のサーバーの絵文字を複数つけられる問題
This commit is contained in:
parent
b73eb1b847
commit
1d9c77063e
2 changed files with 34 additions and 12 deletions
|
@ -17,14 +17,14 @@ class EmojiReactService < BaseService
|
|||
@status = status
|
||||
|
||||
with_redis_lock("emoji_reaction:#{status.id}") do
|
||||
@emoji_reaction = EmojiReaction.find_by(account: account, status: status, name: name)
|
||||
raise Mastodon::ValidationError, I18n.t('reactions.errors.duplication') unless @emoji_reaction.nil?
|
||||
|
||||
shortcode, domain = name.split('@')
|
||||
domain = nil if TagManager.instance.local_domain?(domain)
|
||||
custom_emoji = CustomEmoji.find_by(shortcode: shortcode, domain: domain)
|
||||
return if domain.present? && !EmojiReaction.exists?(status: status, custom_emoji: custom_emoji)
|
||||
|
||||
@emoji_reaction = EmojiReaction.find_by(account: account, status: status, name: shortcode, custom_emoji: custom_emoji)
|
||||
raise Mastodon::ValidationError, I18n.t('reactions.errors.duplication') unless @emoji_reaction.nil?
|
||||
|
||||
@emoji_reaction = EmojiReaction.create!(account: account, status: status, name: shortcode, custom_emoji: custom_emoji)
|
||||
|
||||
status.touch # rubocop:disable Rails/SkipsModelValidations
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue