forked from cybrespace/mastodon
		
	Do not filter statuses with unknown languages (#5045)
This commit is contained in:
		
							parent
							
								
									dcfc9b2204
								
							
						
					
					
						commit
						0de82dd316
					
				
					 2 changed files with 17 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -146,7 +146,7 @@ class Status < ApplicationRecord
 | 
			
		|||
 | 
			
		||||
  class << self
 | 
			
		||||
    def not_in_filtered_languages(account)
 | 
			
		||||
      where.not(language: account.filtered_languages)
 | 
			
		||||
      where(language: nil).or where.not(language: account.filtered_languages)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def as_home_timeline(account)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -173,6 +173,22 @@ RSpec.describe Status, type: :model do
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe '.not_in_filtered_languages' do
 | 
			
		||||
    context 'for accounts with language filters' do
 | 
			
		||||
      let(:user) { Fabricate(:user, filtered_languages: ['en']) }
 | 
			
		||||
 | 
			
		||||
      it 'does not include statuses in filtered languages' do
 | 
			
		||||
        status = Fabricate(:status, language: 'en')
 | 
			
		||||
        expect(Status.not_in_filtered_languages(user.account)).not_to include status
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'includes status with unknown language' do
 | 
			
		||||
        status = Fabricate(:status, language: nil)
 | 
			
		||||
        expect(Status.not_in_filtered_languages(user.account)).to include status
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe '.as_home_timeline' do
 | 
			
		||||
    let(:account) { Fabricate(:account) }
 | 
			
		||||
    let(:followed) { Fabricate(:account) }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue