Hide blocking domains/suspended/silenced emoji reactions and streaming

This commit is contained in:
KMY 2023-09-12 13:54:24 +09:00
parent cd252a6062
commit 477d427f1d
8 changed files with 28 additions and 10 deletions

View file

@ -6,12 +6,18 @@ class DeliveryEmojiReactionWorker
include Lockable
include AccountScope
def perform(payload_json, status_id, _my_account_id = nil)
status = Status.find(status_id.to_i)
def perform(payload_json, emoji_reaction_id, _status_id, _my_account_id = nil)
emoji_reaction = EmojiReaction.find(emoji_reaction_id)
status = emoji_reaction&.status
if status.present?
return if status.account.excluded_from_timeline_domains.include?(emoji_reaction.account.domain)
scope_status(status).includes(:user).find_each do |account|
redis.publish("timeline:#{account.id}", payload_json) if (account.user.nil? || (!account.user&.setting_stop_emoji_reaction_streaming && !account.user&.setting_enable_emoji_reaction)) && redis.exists?("subscribed:timeline:#{account.id}")
next unless (account.user.nil? || (!account.user&.setting_stop_emoji_reaction_streaming && !account.user&.setting_enable_emoji_reaction)) && redis.exists?("subscribed:timeline:#{account.id}")
next if account.excluded_from_timeline_domains.include?(emoji_reaction.account.domain)
redis.publish("timeline:#{account.id}", payload_json)
end
end