Files
danbooru/app/logical/downloads/strategies/tumblr.rb
2014-10-03 14:36:37 -04:00

38 lines
978 B
Ruby

module Downloads
module Strategies
class Tumblr < Base
def rewrite(url, headers)
if url =~ %r{^https?://.*tumblr\.com}
url, headers = rewrite_cdn(url, headers)
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)\..+$}
match = $1
given_size = $2
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
def rewrite_cdn(url, headers)
if url =~ %r{https?://gs1\.wac\.edgecastcdn\.net/8019B6/data\.tumblr\.com/}
url.sub!("gs1.wac.edgecastcdn.net/8019B6/", "")
end
return [url, headers]
end
end
end
end