# frozen_string_literal: true # == Schema Information # # Table name: link_blocks # # id :bigint(8) not null, primary key # link :string default(""), not null # created_at :datetime not null # updated_at :datetime not null # class LinkBlock < ApplicationRecord include LinkNormalizable validates :link, presence: true, uniqueness: true def self.block?(text) return false if text.nil? return false if text.length < 1 urls = text.scan(FetchLinkCardService::URL_PATTERN).map {|array| Addressable::URI.parse(array[0]).normalize } url = urls.first return false if url.nil? link_for_fetch = TagManager.instance.normalize_link(url) link_for_fetch = link_for_fetch.chomp("/") where("LOWER(link) LIKE LOWER(?)", "%#{link_for_fetch}%").exists? end end