Show multibyte URI preview card (#2363)

signup-info-prompt
Yamagishi Kazutoshi 2017-04-24 02:08:59 +09:00 committed by Eugen
parent 57cd6546c3
commit d670f72830
1 changed files with 2 additions and 1 deletions

View File

@ -1,11 +1,12 @@
# frozen_string_literal: true # frozen_string_literal: true
class FetchLinkCardService < BaseService class FetchLinkCardService < BaseService
URL_PATTERN = %r{https?://\S+}
USER_AGENT = "#{HTTP::Request::USER_AGENT} (Mastodon/#{Mastodon::VERSION}; +http://#{Rails.configuration.x.local_domain}/)" USER_AGENT = "#{HTTP::Request::USER_AGENT} (Mastodon/#{Mastodon::VERSION}; +http://#{Rails.configuration.x.local_domain}/)"
def call(status) def call(status)
# Get first http/https URL that isn't local # Get first http/https URL that isn't local
url = URI.extract(status.text).reject { |uri| (uri =~ /\Ahttps?:\/\//).nil? || TagManager.instance.local_url?(uri) }.first url = status.text.match(URL_PATTERN).to_a.reject { |uri| TagManager.instance.local_url?(uri) }.first
return if url.nil? return if url.nil?