tumblr: fix video urls not being recognized.
This commit is contained in:
@@ -8,6 +8,7 @@ module Sources::Strategies
|
||||
FILENAME = %r{(?<filename>(tumblr_(inline_)?)?[a-z0-9]+(_r[0-9]+)?)}i
|
||||
EXT = %r{(?<ext>\w+)}
|
||||
IMAGE = %r!\Ahttps?://#{DOMAIN}/(?<dir>#{MD5}/)?#{FILENAME}_(?<size>\w+)\.#{EXT}\z!i
|
||||
VIDEO = %r!\Ahttps?://(?:vtt|ve\.media)\.tumblr\.com/!i
|
||||
POST = %r!\Ahttps?://(?<blog_name>[^.]+)\.tumblr\.com/(?:post|image)/(?<post_id>\d+)!i
|
||||
|
||||
def self.enabled?
|
||||
@@ -23,7 +24,7 @@ module Sources::Strategies
|
||||
end
|
||||
|
||||
def image_url
|
||||
return image_urls.first unless url.match?(IMAGE)
|
||||
return image_urls.first unless url.match?(IMAGE) || url.match?(VIDEO)
|
||||
find_largest(url)
|
||||
end
|
||||
|
||||
@@ -39,7 +40,7 @@ module Sources::Strategies
|
||||
|
||||
# api response is blank (work is deleted or we were given a direct image with no referer url)
|
||||
when nil
|
||||
list += [url] if url.match?(IMAGE)
|
||||
list += [url] if url.match?(IMAGE) || url.match?(VIDEO)
|
||||
end
|
||||
|
||||
list += inline_images
|
||||
|
||||
@@ -161,18 +161,32 @@ module Sources
|
||||
end
|
||||
end
|
||||
|
||||
context "The source for a 'http://*.tumblr.com/post/*' video post with inline images" do
|
||||
context "The source for a 'http://ve.media.tumblr.com/*' video post with inline images" do
|
||||
setup do
|
||||
@site = Sources::Strategies.find("https://noizave.tumblr.com/post/162222617101")
|
||||
@url = "https://ve.media.tumblr.com/tumblr_os31dkexhK1wsfqep.mp4"
|
||||
@ref = "https://noizave.tumblr.com/post/162222617101"
|
||||
end
|
||||
|
||||
should "get the image urls" do
|
||||
urls = %w[
|
||||
https://ve.media.tumblr.com/tumblr_os31dkexhK1wsfqep.mp4
|
||||
https://media.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os31dclyCR1v11u29_1280.png
|
||||
]
|
||||
context "with a referer" do
|
||||
should "get the video and inline images" do
|
||||
site = Sources::Strategies.find(@url, @ref)
|
||||
urls = %w[
|
||||
https://ve.media.tumblr.com/tumblr_os31dkexhK1wsfqep.mp4
|
||||
https://media.tumblr.com/afed9f5b3c33c39dc8c967e262955de2/tumblr_inline_os31dclyCR1v11u29_1280.png
|
||||
]
|
||||
|
||||
assert_equal(urls, @site.image_urls)
|
||||
assert_equal(@url, site.image_url)
|
||||
assert_equal(urls, site.image_urls)
|
||||
end
|
||||
end
|
||||
|
||||
context "without a referer" do
|
||||
should "get the video" do
|
||||
site = Sources::Strategies.find(@url)
|
||||
|
||||
assert_equal(@url, site.image_url)
|
||||
assert_equal([@url], site.image_urls)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user