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