37 lines
1.0 KiB
Ruby
37 lines
1.0 KiB
Ruby
module Downloads
|
|
module RewriteStrategies
|
|
class Twitpic < Base
|
|
def rewrite(url, headers, data = {})
|
|
if url =~ %r{https?://twitpic\.com} || url =~ %r{^https?://(?:d3j5vwomefv46c|dn3pm25xmtlyu)\.cloudfront\.net}
|
|
url, headers = rewrite_html_pages(url, headers)
|
|
url, headers = rewrite_thumbnails(url, headers)
|
|
end
|
|
|
|
return [url, headers, data]
|
|
end
|
|
|
|
protected
|
|
def rewrite_html_pages(url, headers)
|
|
# example: http://twitpic.com/cpprns
|
|
|
|
if url =~ %r{https?://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{^https?://(?:d3j5vwomefv46c|dn3pm25xmtlyu)\.cloudfront\.net/photos/thumb/(\d+\..+)$}
|
|
match = $1
|
|
url.sub!("/thumb/" + match, "/large/" + match)
|
|
end
|
|
|
|
return [url, headers]
|
|
end
|
|
end
|
|
end
|
|
end
|