Files
danbooru/app/logical/downloads/strategies/tumblr.rb
2013-11-29 16:12:19 -05:00

38 lines
975 B
Ruby

module Downloads
module Strategies
class Tumblr < Base
def rewrite(url, headers)
if url =~ %r{^http?://(?:(?:\d+\.)\w+\.)?tumblr\.com}
url, headers = rewrite_thumbnails(url, headers)
end
return [url, headers]
end
protected
def rewrite_thumbnails(url, headers)
if url =~ %r{^http?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(250|400|500|1280)\..+$}
match = $1
given_size = $2
big_500h_url = url.sub(match + given_size, match + "500h")
if http_exists?(big_500h_url, headers)
return [big_500h_url, headers]
end
if given_size == "1280"
return [url, headers]
end
big_1280_url = url.sub(match + given_size, match + "1280")
if http_exists?(big_1280_url, headers)
return [big_1280_url, headers]
end
end
return [url, headers]
end
end
end
end