Browse Source

Strip HTML from keyword mute input. #234.

closed-social-glitch-2
David Yip 7 years ago
parent
commit
29b5b46c87
No known key found for this signature in database GPG Key ID: 7DA0036508FCC0CC
2 changed files with 24 additions and 16 deletions
  1. +1
    -16
      app/lib/feed_manager.rb
  2. +23
    -0
      app/models/glitch/filter_helper.rb

+ 1
- 16
app/lib/feed_manager.rb View File

@ -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
- 0
app/models/glitch/filter_helper.rb 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

Loading…
Cancel
Save