diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-11-06 18:49:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-06 18:49:46 +0100 |
commit | 54101563bbadbfafd9291a867d7fbea6df3a8b7b (patch) | |
tree | fcf9a125f6ebc3ad4182fa0edcbd7101b33aebb0 /app/services/process_mentions_service.rb | |
parent | 2f8fb49d1314db931385089bc9004a48700161ad (diff) | |
parent | 21d6bc16893a9dd24c5ef54cf2f554846c8eca5b (diff) |
Merge pull request #1892 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services/process_mentions_service.rb')
-rw-r--r-- | app/services/process_mentions_service.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index c9c158af1..b117db8c2 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -66,6 +66,16 @@ class ProcessMentionsService < BaseService end def assign_mentions! + # Make sure we never mention blocked accounts + unless @current_mentions.empty? + mentioned_domains = @current_mentions.map { |m| m.account.domain }.compact.uniq + blocked_domains = Set.new(mentioned_domains.empty? ? [] : AccountDomainBlock.where(account_id: @status.account_id, domain: mentioned_domains)) + mentioned_account_ids = @current_mentions.map(&:account_id) + blocked_account_ids = Set.new(@status.account.block_relationships.where(target_account_id: mentioned_account_ids).pluck(:target_account_id)) + + @current_mentions.select! { |mention| !(blocked_account_ids.include?(mention.account_id) || blocked_domains.include?(mention.account.domain)) } + end + @current_mentions.each do |mention| mention.save if mention.new_record? end |