refactor
This commit is contained in:
37
app/logical/downloads/rewrite_strategies/tumblr.rb
Normal file
37
app/logical/downloads/rewrite_strategies/tumblr.rb
Normal file
@@ -0,0 +1,37 @@
|
||||
module Downloads
|
||||
module RewriteStrategies
|
||||
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
|
||||
Reference in New Issue
Block a user