mastodon/app/lib/tag_manager.rb

40 lines
910 B
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
require 'singleton'
class TagManager
include Singleton
include RoutingHelper
def web_domain?(domain)
domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.web_domain).zero?
end
2016-10-06 16:36:16 +02:00
def local_domain?(domain)
domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.local_domain).zero?
2016-10-06 16:36:16 +02:00
end
def normalize_domain(domain)
return if domain.nil?
uri = Addressable::URI.new
uri.host = domain.gsub(/[\/]/, '')
uri.normalized_host
end
2017-03-28 14:16:08 +02:00
def same_acct?(canonical, needle)
return true if canonical.casecmp(needle).zero?
2019-07-09 03:27:35 +02:00
2017-03-28 14:16:08 +02:00
username, domain = needle.split('@')
2019-07-09 03:27:35 +02:00
2017-03-28 14:16:08 +02:00
local_domain?(domain) && canonical.casecmp(username).zero?
end
def local_url?(url)
uri = Addressable::URI.parse(url).normalize
domain = uri.host + (uri.port ? ":#{uri.port}" : '')
2019-07-09 03:27:35 +02:00
TagManager.instance.web_domain?(domain)
end
end