autoreject check before fetching link preview cards & feeds
parent
2822fbc443
commit
c2e47f5871
|
@ -2,9 +2,11 @@
|
|||
|
||||
class FetchAtomService < BaseService
|
||||
include JsonLdHelper
|
||||
include AutorejectHelper
|
||||
|
||||
def call(url)
|
||||
return if url.blank?
|
||||
return if autoreject?(url)
|
||||
|
||||
result = process(url)
|
||||
rescue OpenSSL::SSL::SSLError => e
|
||||
|
@ -77,4 +79,8 @@ class FetchAtomService < BaseService
|
|||
def parse_link_header(response)
|
||||
LinkHeader.parse(response['Link'].is_a?(Array) ? response['Link'].first : response['Link'])
|
||||
end
|
||||
|
||||
def object_uri
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
class FetchLinkCardService < BaseService
|
||||
include UrlHelper
|
||||
include AutorejectHelper
|
||||
|
||||
URL_PATTERN = %r{
|
||||
( # $1 URL
|
||||
|
@ -21,6 +22,7 @@ class FetchLinkCardService < BaseService
|
|||
|
||||
@url = sanitize_query_string(@url.to_s)
|
||||
return if @url.nil?
|
||||
return if autoreject?(url)
|
||||
|
||||
RedisLock.acquire(lock_options) do |lock|
|
||||
if lock.acquired?
|
||||
|
@ -174,4 +176,8 @@ class FetchLinkCardService < BaseService
|
|||
def lock_options
|
||||
{ redis: Redis.current, key: "fetch:#{@url}" }
|
||||
end
|
||||
|
||||
def object_uri
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,12 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class FetchOEmbedService
|
||||
include AutorejectHelper
|
||||
|
||||
attr_reader :url, :options, :format, :endpoint_url
|
||||
|
||||
def call(url, options = {})
|
||||
@url = url
|
||||
@options = options
|
||||
|
||||
return if autoreject?(url)
|
||||
discover_endpoint!
|
||||
fetch!
|
||||
end
|
||||
|
@ -68,4 +71,8 @@ class FetchOEmbedService
|
|||
res.code != 200 || res.mime_type != 'text/html' ? nil : res.body_with_limit
|
||||
end
|
||||
end
|
||||
|
||||
def object_uri
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue