From e3af1b4a26d7a0c34069529975fbf6394cc3d73d Mon Sep 17 00:00:00 2001 From: mgabdev <> Date: Thu, 11 Feb 2021 00:01:45 -0500 Subject: [PATCH] Updated LinkBlock checks for if status text contains blocked domain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Updated: - LinkBlock checks for if status text contains blocked domain - normalize_link to use domain instead of normalized_host • Added: - normalize_link_domain to check for if entire domains are blocked or not for spam --- app/lib/tag_manager.rb | 8 +++++++- app/models/link_block.rb | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb index fe051d87..aaee7ef5 100644 --- a/app/lib/tag_manager.rb +++ b/app/lib/tag_manager.rb @@ -25,7 +25,13 @@ class TagManager def normalize_link(link) return if link.nil? uri = Addressable::URI.parse(link) - return "#{uri.normalized_host}#{uri.normalized_path}".strip + return "#{uri.domain}#{uri.normalized_path}".strip + end + + def normalize_link_domain(link) + return if link.nil? + uri = Addressable::URI.parse(link) + return "#{uri.domain}".strip end def same_acct?(canonical, needle) diff --git a/app/models/link_block.rb b/app/models/link_block.rb index ad00966c..7304c9fb 100644 --- a/app/models/link_block.rb +++ b/app/models/link_block.rb @@ -32,6 +32,10 @@ class LinkBlock < ApplicationRecord link_for_fetch = TagManager.instance.normalize_link(url) link_for_fetch = link_for_fetch.chomp("/") - where("LOWER(link) LIKE LOWER(?)", "%#{link_for_fetch}%").exists? + domain_for_fetch = TagManager.instance.normalize_link_domain(url) + + where("LOWER(link) LIKE LOWER(?)", "%#{link_for_fetch}").or( + where("LOWER(link) LIKE LOWER(?)", "#{domain_for_fetch}") + ).exists? end end