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