Strip HTML from keyword mute input. #234.

th-downstream
David Yip 7 years ago
parent 98c57e4d92
commit e365675e0a

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

@ -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…
Cancel
Save