mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-16 23:22:01 +00:00
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…
Reference in a new issue