From 49197bf6c44d66196de56ed2879ed6fffd834049 Mon Sep 17 00:00:00 2001 From: KMY Date: Wed, 13 Sep 2023 13:23:36 +0900 Subject: [PATCH] Fix emoji reaction error --- app/lib/activitypub/activity/like.rb | 2 +- app/models/status.rb | 4 ++-- app/services/emoji_react_service.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/lib/activitypub/activity/like.rb b/app/lib/activitypub/activity/like.rb index 8a65ed0ada..b20581779e 100644 --- a/app/lib/activitypub/activity/like.rb +++ b/app/lib/activitypub/activity/like.rb @@ -108,7 +108,7 @@ class ActivityPub::Activity::Like < ActivityPub::Activity end def write_stream(emoji_reaction) - emoji_group = @original_status.emoji_reactions_grouped_by_name + emoji_group = @original_status.emoji_reactions_grouped_by_name(nil, force: true) .find { |reaction_group| reaction_group['name'] == emoji_reaction.name && (!reaction_group.key?(:domain) || reaction_group['domain'] == emoji_reaction.custom_emoji&.domain) } emoji_group['status_id'] = @original_status.id.to_s DeliveryEmojiReactionWorker.perform_async(render_emoji_reaction(emoji_group), @original_status.id, emoji_reaction.account_id) diff --git a/app/models/status.rb b/app/models/status.rb index 1863c7644f..1795b72ec5 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -349,9 +349,9 @@ class Status < ApplicationRecord update_status_stat!(status_referred_by_count: [public_send(:status_referred_by_count) + diff, 0].max) end - def emoji_reactions_grouped_by_name(account = nil) + def emoji_reactions_grouped_by_name(account = nil, **options) return [] if account.present? && !self.account.show_emoji_reaction?(account) - return [] if account.nil? && self.account.emoji_reaction_policy != :allow + return [] if account.nil? && !options[:force] && self.account.emoji_reaction_policy != :allow (Oj.load(status_stat&.emoji_reactions || '', mode: :strict) || []).tap do |emoji_reactions| if account.present? diff --git a/app/services/emoji_react_service.rb b/app/services/emoji_react_service.rb index 0dfefa6f0b..9a166a3413 100644 --- a/app/services/emoji_react_service.rb +++ b/app/services/emoji_react_service.rb @@ -65,7 +65,7 @@ class EmojiReactService < BaseService end def write_stream(emoji_reaction) - emoji_group = emoji_reaction.status.emoji_reactions_grouped_by_name + emoji_group = emoji_reaction.status.emoji_reactions_grouped_by_name(nil, force: true) .find { |reaction_group| reaction_group['name'] == emoji_reaction.name && (!reaction_group.key?(:domain) || reaction_group['domain'] == emoji_reaction.custom_emoji&.domain) } emoji_group['status_id'] = emoji_reaction.status_id.to_s DeliveryEmojiReactionWorker.perform_async(render_emoji_reaction(emoji_group), emoji_reaction.status_id, emoji_reaction.account_id)