#2426 refactor to use predetermined referer

This commit is contained in:
Toks
2015-07-05 11:02:01 -04:00
parent 50f28e780a
commit 0a5f1b53ba
5 changed files with 51 additions and 20 deletions

View File

@@ -0,0 +1,34 @@
class ImageProxy
def self.needs_proxy?(url)
fake_referer_for(url).present?
end
def self.fake_referer_for(url)
Sources::Site.new(url).strategy.fake_referer
end
def self.get_image(url)
if url.blank?
raise "Must specify url"
end
if !needs_proxy?(url)
raise "Proxy not allowed for this site"
end
uri = URI.parse(url)
headers = {
"Referer" => fake_referer_for(url),
"User-Agent" => "#{Danbooru.config.safe_app_name}/#{Danbooru.config.version}"
}
Net::HTTP.start(uri.host, uri.port) do |http|
resp = http.request_get(uri.request_uri, headers)
if resp.is_a?(Net::HTTPSuccess)
return resp
else
raise "HTTP error code: #{resp.code} #{resp.message}"
end
end
end
end