#1866: Support twitpic source rewriting
* html work page -> full image * thumbnail -> full image
This commit is contained in:
@@ -69,7 +69,7 @@ module Downloads
|
||||
if limit == 0 then
|
||||
raise Error.new("Too many redirects")
|
||||
end
|
||||
source = res["location"]
|
||||
@source = res["location"]
|
||||
limit -= 1
|
||||
|
||||
else
|
||||
|
||||
@@ -2,7 +2,7 @@ module Downloads
|
||||
module Strategies
|
||||
class Base
|
||||
def self.strategies
|
||||
[Pixiv]
|
||||
[Pixiv, Twitpic]
|
||||
end
|
||||
|
||||
def rewrite(url, headers)
|
||||
|
||||
36
app/logical/downloads/strategies/twitpic.rb
Normal file
36
app/logical/downloads/strategies/twitpic.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
module Downloads
|
||||
module Strategies
|
||||
class Twitpic < Base
|
||||
def rewrite(url, headers)
|
||||
if url =~ %r{http://twitpic\.com} || url =~ %r{^http://d3j5vwomefv46c\.cloudfront\.net}
|
||||
url, headers = rewrite_html_pages(url, headers)
|
||||
url, headers = rewrite_thumbnails(url, headers)
|
||||
end
|
||||
|
||||
return [url, headers]
|
||||
end
|
||||
|
||||
protected
|
||||
def rewrite_html_pages(url, headers)
|
||||
# example: http://twitpic.com/cpprns
|
||||
|
||||
if url =~ %r{http://twitpic\.com/([a-z0-9]+)$}
|
||||
id = $1
|
||||
url = "http://twitpic.com/show/full/#{id}"
|
||||
return [url, headers]
|
||||
else
|
||||
return [url, headers]
|
||||
end
|
||||
end
|
||||
|
||||
def rewrite_thumbnails(url, headers)
|
||||
if url =~ %r{^http://d3j5vwomefv46c\.cloudfront\.net/photos/thumb/(\d+\..+)$}
|
||||
match = $1
|
||||
url.sub!("/thumb/" + match, "/large/" + match)
|
||||
end
|
||||
|
||||
return [url, headers]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user