diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-08-04 23:57:30 -0500 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-08-05 00:00:31 -0500 |
commit | 879166633c3e2d8df656c678349a71e86c647b5d (patch) | |
tree | 62eea800f570abd53c60da9f17501a9d51724487 | |
parent | f86a3314f78e86f5313c884e3ae5a2c3e140ab04 (diff) |
rewrite repeated domain maps to use a helper function & make vulpine.club yaml url a variable
-rw-r--r-- | app/helpers/blocklist_helper.rb | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/app/helpers/blocklist_helper.rb b/app/helpers/blocklist_helper.rb index 6c98b6d8a..7437ccf37 100644 --- a/app/helpers/blocklist_helper.rb +++ b/app/helpers/blocklist_helper.rb @@ -1,7 +1,6 @@ module BlocklistHelper - FEDIVERSE_SPACE_URLS = [ - "https://fediverse.network/mastodon?build=gab", - ] + FEDIVERSE_SPACE_URLS = ["https://fediverse.network/mastodon?build=gab"] + VULPINE_CLUB_URL = "https://raw.githubusercontent.com/vulpineclub/vulpineclub.github.io/master/_data/blocks.yml" def merged_blocklist # ordered by preference @@ -10,15 +9,19 @@ module BlocklistHelper blocklist.uniq { |entry| entry[:domain] } end + def domain_map(domains, reason) + domains.map! do |domain| + {domain: domain, severity: :suspend, reason: reason} + end + end + def dialup_express_blocks admin_id = Account.find_remote('xenon', 'sleeping.town')&.id return [] if admin_id.nil? domains = ActiveRecord::Base.connection.select_values("SELECT unnest(regexp_matches(text, '\\m[\\w\\-]+\\.[\\w\-]+(?:\\.[\\w\\-]+)*', 'g')) FROM statuses WHERE account_id = #{admin_id.to_i} AND NOT reply AND created_at >= (NOW() - INTERVAL '2 days') AND tsv @@ to_tsquery('new <-> dialup <-> express <2> block') EXCEPT SELECT domain FROM domain_blocks") - domains.map! do |domain| - {domain: domain, severity: :suspend, reason: '(imported from dialup.express)'} - end + domain_map(domains, "Imported from <https://dialup.express>.") end def ten_forward_blocks @@ -27,15 +30,11 @@ module BlocklistHelper domains = ActiveRecord::Base.connection.select_values("SELECT unnest(regexp_matches(text, '\\m[\\w\\-]+\\.[\\w\-]+(?:\\.[\\w\\-]+)*', 'g')) FROM statuses WHERE account_id = #{admin_id.to_i} AND NOT reply AND created_at >= (NOW() - INTERVAL '2 days') AND tsv @@ to_tsquery('ten <-> forward <-> moderation <-> announcement') EXCEPT SELECT domain FROM domain_blocks") - domains.map! do |domain| - {domain: domain, severity: :suspend, reason: '(imported from ten.forward)'} - end + domain_map(domains, "Imported from <https://ten.forward>.") end def vulpine_club_blocks - url = "https://raw.githubusercontent.com/vulpineclub/vulpineclub.github.io/master/_data/blocks.yml" - - body = Request.new(:get, url).perform do |response| + body = Request.new(:get, VULPINE_CLUB_URL).perform do |response| response.code != 200 ? nil : response.body_with_limit(66.kilobytes) end @@ -49,7 +48,7 @@ module BlocklistHelper reject_media = 'nomedia'.in?(severity) severity = (severity[0].nil? || severity[0] == 'nomedia') ? 'noop' : severity[0] - reason = "(imported from vulpine.club) #{entry['reason']}#{entry['link'].present? ? " (#{entry['link']})" : ''}".rstrip + reason = "Imported from <https://vulpine.club>: \"#{entry['reason']}\"#{entry['link'].present? ? " (#{entry['link']})" : ''}".rstrip {domain: domain, severity: severity.to_sym, reject_media: reject_media, reason: reason} end end @@ -72,8 +71,6 @@ module BlocklistHelper domains = FEDIVERSE_SPACE_URLS.flat_map { |url| fediverse_space_fetch_domains(url) } domains.uniq! - domains.map! do |domain| - {domain: domain, severity: :suspend, reason: '(imported from fediverse.space)'} - end + domain_map(domains, "Imported from <https://fediverse.space>.") end end |