Fix improperly checking for blocked domain on followed hashtags (#19472)
Fix #19469
This commit is contained in:
		
							parent
							
								
									2277913f3f
								
							
						
					
					
						commit
						1546538de9
					
				| 
						 | 
				
			
			@ -253,7 +253,7 @@ class FeedManager
 | 
			
		|||
        next if last_status_score < oldest_home_score
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, reblog: :account).limit(limit)
 | 
			
		||||
      statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit)
 | 
			
		||||
      crutches = build_crutches(account.id, statuses)
 | 
			
		||||
 | 
			
		||||
      statuses.each do |status|
 | 
			
		||||
| 
						 | 
				
			
			@ -426,7 +426,7 @@ class FeedManager
 | 
			
		|||
  # @param [Hash] crutches
 | 
			
		||||
  # @return [Boolean]
 | 
			
		||||
  def filter_from_tags?(status, receiver_id, crutches)
 | 
			
		||||
    receiver_id != status.account_id && (((crutches[:active_mentions][status.id] || []) + [status.account_id]).any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } || crutches[:blocked_by][status.account_id] || crutches[:domain_blocking][status.account.domain])
 | 
			
		||||
    receiver_id == status.account_id || ((crutches[:active_mentions][status.id] || []) + [status.account_id]).any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } || crutches[:blocked_by][status.account_id] || crutches[:domain_blocking][status.account.domain]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # Adds a status to an account's feed, returning true if a status was
 | 
			
		||||
| 
						 | 
				
			
			@ -547,7 +547,7 @@ class FeedManager
 | 
			
		|||
    crutches[:hiding_reblogs]  = Follow.where(account_id: receiver_id, target_account_id: statuses.map { |s| s.account_id if s.reblog? }.compact, show_reblogs: false).pluck(:target_account_id).index_with(true)
 | 
			
		||||
    crutches[:blocking]        = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
 | 
			
		||||
    crutches[:muting]          = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
 | 
			
		||||
    crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.map { |s| s.reblog&.account&.domain }.compact).pluck(:domain).index_with(true)
 | 
			
		||||
    crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true)
 | 
			
		||||
    crutches[:blocked_by]      = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| s.reblog&.account_id }.compact).pluck(:account_id).index_with(true)
 | 
			
		||||
 | 
			
		||||
    crutches
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue