This commit is contained in:
Toks
2015-08-15 17:12:00 -04:00
parent 23ece16314
commit e165cb0ab2
2 changed files with 22 additions and 8 deletions

View File

@@ -14,16 +14,21 @@ module Downloads
end
protected
def http_exists?(url, headers)
exists = false
def http_head_request(url, headers)
uri = URI.parse(url)
Net::HTTP.start(uri.host, uri.port) do |http|
http.request_head(uri.request_uri, headers) do |res|
if res.is_a?(Net::HTTPSuccess)
exists = true
end
return res
end
end
end
def http_exists?(url, headers)
exists = false
res = http_head_request(url, headers)
if res.is_a?(Net::HTTPSuccess)
exists = true
end
exists
end
end

View File

@@ -12,13 +12,22 @@ module Downloads
protected
def rewrite_thumbnails(url, headers)
if url =~ %r{^https?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(\d+)\..+$}
if url =~ %r{^https?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(\d+)(\..+)$}
match = $1
given_size = $2
file_ext = $3
big_1280_url = url.sub(match + given_size, match + "1280")
if http_exists?(big_1280_url, headers)
return [big_1280_url, headers]
if file_ext == ".gif"
res = http_head_request(big_1280_url, headers)
# Sometimes the 1280 version of a gif is actually a static jpeg. We don't want that so we only use the 1280 version if it really is a gif.
if res.is_a?(Net::HTTPSuccess) && res["content-type"] == "image/gif"
return [big_1280_url, headers]
end
else
if http_exists?(big_1280_url, headers)
return [big_1280_url, headers]
end
end
end