Strip HTML from keyword mute input. #234.
This commit is contained in:
		
							parent
							
								
									3405ea6dd9
								
							
						
					
					
						commit
						29b5b46c87
					
				
					 2 changed files with 24 additions and 16 deletions
				
			
		|  | @ -178,22 +178,7 @@ class FeedManager | |||
|   end | ||||
| 
 | ||||
|   def keyword_filter?(status, receiver_id) | ||||
|     text_matcher = Glitch::KeywordMute.text_matcher_for(receiver_id) | ||||
|     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 | ||||
|     Glitch::FilterHelper.new(receiver_id).matches?(status) | ||||
|   end | ||||
| 
 | ||||
|   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…
	
		Reference in a new issue