Strip HTML from keyword mute input. #234.

This commit is contained in:
David Yip 2017-12-03 17:28:30 -06:00
parent 3405ea6dd9
commit 29b5b46c87
No known key found for this signature in database
GPG key ID: 7DA0036508FCC0CC
2 changed files with 24 additions and 16 deletions

View file

@ -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)

View 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