Strip HTML from keyword mute input. #234.
This commit is contained in:
		
							parent
							
								
									3405ea6dd9
								
							
						
					
					
						commit
						29b5b46c87
					
				@ -178,22 +178,7 @@ class FeedManager
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def keyword_filter?(status, receiver_id)
 | 
					  def keyword_filter?(status, receiver_id)
 | 
				
			||||||
    text_matcher = Glitch::KeywordMute.text_matcher_for(receiver_id)
 | 
					    Glitch::FilterHelper.new(receiver_id).matches?(status)
 | 
				
			||||||
    tag_matcher  = Glitch::KeywordMute.tag_matcher_for(receiver_id)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    should_filter   = text_matcher.matches?(status.text)
 | 
					 | 
				
			||||||
    should_filter ||= text_matcher.matches?(status.spoiler_text)
 | 
					 | 
				
			||||||
    should_filter ||= tag_matcher.matches?(status.tags)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if status.reblog?
 | 
					 | 
				
			||||||
      reblog = status.reblog
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      should_filter ||= text_matcher.matches?(reblog.text)
 | 
					 | 
				
			||||||
      should_filter ||= text_matcher.matches?(reblog.spoiler_text)
 | 
					 | 
				
			||||||
      should_filter ||= tag_matcher.matches?(status.tags)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    should_filter
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def filter_from_mentions?(status, receiver_id)
 | 
					  def filter_from_mentions?(status, receiver_id)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										23
									
								
								app/models/glitch/filter_helper.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/models/glitch/filter_helper.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					class Glitch::FilterHelper
 | 
				
			||||||
 | 
					  include ActionView::Helpers::SanitizeHelper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  attr_reader :text_matcher
 | 
				
			||||||
 | 
					  attr_reader :tag_matcher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def initialize(receiver_id)
 | 
				
			||||||
 | 
					    @text_matcher = Glitch::KeywordMute.text_matcher_for(receiver_id)
 | 
				
			||||||
 | 
					    @tag_matcher  = Glitch::KeywordMute.tag_matcher_for(receiver_id)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def matches?(status)
 | 
				
			||||||
 | 
					    matchers_match?(status) || (status.reblog? && matchers_match?(status.reblog))
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def matchers_match?(status)
 | 
				
			||||||
 | 
					    text_matcher.matches?(strip_tags(status.text)) ||
 | 
				
			||||||
 | 
					      text_matcher.matches?(strip_tags(status.spoiler_text)) ||
 | 
				
			||||||
 | 
					      tag_matcher.matches?(status.tags)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user