Implement #2395 for nijie twitter and tumblr

This commit is contained in:
Toks
2015-06-13 11:26:47 -04:00
parent 7360fc4633
commit 462e1ed324
6 changed files with 48 additions and 6 deletions

View File

@@ -57,6 +57,9 @@ module Downloads
def after_download(src)
src = fix_image_board_sources(src)
src = fix_twitter_sources(src)
if options[:referer_url].present?
src = set_source_to_referer(src)
end
src
end
@@ -131,5 +134,14 @@ module Downloads
src
end
end
def set_source_to_referer(src)
if Sources::Strategies::Nijie.url_match?(src) || Sources::Strategies::Twitter.url_match?(src) || Sources::Strategies::Tumblr.url_match?(src)
strategy = Sources::Site.new(src, :referer_url => options[:referer_url])
strategy.referer_url
else
src
end
end
end
end

View File

@@ -10,7 +10,7 @@ module Sources
:artist_commentary_desc, :to => :strategy
def self.strategies
[Strategies::Pixiv, Strategies::NicoSeiga, Strategies::DeviantArt, Strategies::Nijie, Strategies::Twitter]
[Strategies::Pixiv, Strategies::NicoSeiga, Strategies::DeviantArt, Strategies::Nijie, Strategies::Twitter, Strategies::Tumblr]
end
def initialize(url, options = {})

View File

@@ -0,0 +1,28 @@
module Sources::Strategies
class Tumblr < Base
def self.url_match?(url)
url =~ %r{^https?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(\d+)\..+$} || url =~ %r{^https?://[^.]+\.tumblr\.com/(?:post|image)/\d+}
end
def referer_url
if @referer_url =~ %r{^https?://[^.]+\.tumblr\.com/post/\d+} && @url =~ %r{^https?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(\d+)\..+$}
@referer_url
elsif @referer_url =~ %r{^https?://[^.]+\.tumblr\.com/image/\d+} && @url =~ %r{^https?://.+\.tumblr\.com/(?:\w+/)?(?:tumblr_)?(\w+_)(\d+)\..+$}
@referer_url.sub("/image/", "/post/")
else
@url
end
end
def tags
[]
end
def site_name
"Tumblr"
end
def get
end
end
end