Merge pull request #3179 from evazion/fix-tumblr-samples

Fix #3178: Rewrite Tumblr image samples
This commit is contained in:
Albert Yi
2017-06-22 16:13:39 -07:00
committed by GitHub
5 changed files with 138 additions and 82 deletions

View File

@@ -2,29 +2,6 @@ require 'test_helper'
module Downloads
class PixivTest < ActiveSupport::TestCase
def assert_downloaded(expected_filesize, source)
tempfile = Tempfile.new("danbooru-test")
download = Downloads::File.new(source, tempfile.path)
assert_nothing_raised(Downloads::File::Error) do
download.download!
end
assert_equal(expected_filesize, tempfile.size, "Tested source URL: #{source}")
end
def assert_rewritten(expected_source, test_source)
tempfile = Tempfile.new("danbooru-test")
download = Downloads::File.new(test_source, tempfile.path)
rewritten_source, headers, _ = download.before_download(test_source, {}, {})
assert_equal(expected_source, rewritten_source, "Tested source URL: #{test_source}")
end
def assert_not_rewritten(source)
assert_rewritten(source, source)
end
context "An ugoira site for pixiv" do
setup do
@tempfile = Tempfile.new("danbooru-test")

View File

@@ -3,32 +3,75 @@ require 'test_helper'
module Downloads
class TumblrTest < ActiveSupport::TestCase
context "a download for a tumblr 500 sample" do
setup do
@source = "http://24.media.tumblr.com/fc328250915434e66e8e6a92773f79d0/tumblr_mf4nshfibc1s0oswoo1_500.jpg"
@tempfile = Tempfile.new("danbooru-test")
@download = Downloads::File.new(@source, @tempfile.path)
@download.download!
end
should "instead change the source to the 1280 version" do
assert_equal("http://24.media.tumblr.com/fc328250915434e66e8e6a92773f79d0/tumblr_mf4nshfibc1s0oswoo1_1280.jpg", @download.source)
end
should "instead download the 1280 version" do
assert_equal(196_617, ::File.size(@tempfile.path))
should "instead download the raw version" do
@source = "https://24.media.tumblr.com/fc328250915434e66e8e6a92773f79d0/tumblr_mf4nshfibc1s0oswoo1_500.jpg"
@rewrite = "http://data.tumblr.com/fc328250915434e66e8e6a92773f79d0/tumblr_mf4nshfibc1s0oswoo1_raw.jpg"
assert_rewritten(@rewrite, @source)
assert_downloaded(196_617, @source)
end
end
context "a download for a tumblr 500 image without a larger size" do
setup do
@source = "http://25.media.tumblr.com/tumblr_lxbzel2H5y1r9yjhso1_500.jpg"
@tempfile = Tempfile.new("danbooru-test")
@download = Downloads::File.new(@source, @tempfile.path)
@download.download!
context "a download for a *.media.tumblr.com/tumblr_$id_$size image without a larger size" do
should "download the same version" do
@source = "https://25.media.tumblr.com/tumblr_lxbzel2H5y1r9yjhso1_500.jpg"
@rewrite = "http://data.tumblr.com/tumblr_lxbzel2H5y1r9yjhso1_500.jpg"
assert_rewritten(@rewrite, @source)
assert_downloaded(90_122, @source)
end
end
should "download the 500 version" do
assert_equal(90_122, ::File.size(@tempfile.path))
context "a download for a *.media.tumblr.com/tumblr_$id_$size image with a larger size" do
should "download the best available version" do
@source = "https://25.media.tumblr.com/tumblr_m2dxb8aOJi1rop2v0o1_500.png"
@rewrite = "http://data.tumblr.com/tumblr_m2dxb8aOJi1rop2v0o1_1280.png"
assert_rewritten(@rewrite, @source)
assert_downloaded(34_060, @source)
end
end
context "a download for a *.media.tumblr.com/$hash/tumblr_$id_rN_$size image" do
should "download the best available version" do
@source = "https://33.media.tumblr.com/4b7fecf9a5a8284fbaefb051a2369b55/tumblr_npozqfwc9h1rt6u7do1_r1_500.gif"
@rewrite = "http://data.tumblr.com/4b7fecf9a5a8284fbaefb051a2369b55/tumblr_npozqfwc9h1rt6u7do1_r1_raw.gif"
assert_rewritten(@rewrite, @source)
assert_downloaded(1_234_017, @source)
end
end
context "a download for a *.media.tumblr.com/$hash/tumblr_inline_$id_$size image" do
should "download the best available version" do
@source = "https://68.media.tumblr.com/ee02048f5578595badc95905e17154b4/tumblr_inline_ofbr4452601sk4jd9_250.gif"
@rewrite = "http://data.tumblr.com/ee02048f5578595badc95905e17154b4/tumblr_inline_ofbr4452601sk4jd9_500.gif"
assert_rewritten(@rewrite, @source)
assert_downloaded(110_348, @source)
end
end
context "a download for a data.tumblr.com/$id_$size image with a larger size" do
should "download the best available version" do
@source = "http://data.tumblr.com/0DNBGJovY5j3smfeQs8nB53z_400.jpg"
@rewrite = "http://data.tumblr.com/0DNBGJovY5j3smfeQs8nB53z_500.jpg"
assert_rewritten(@rewrite, @source)
assert_downloaded(153_885, @source)
end
end
context "a download for a data.tumblr.com/tumblr_$id_$size.jpg image" do
should "download the best available version" do
@source = "http://data.tumblr.com/tumblr_m24kbxqKAX1rszquso1_250.jpg"
@rewrite = "http://data.tumblr.com/tumblr_m24kbxqKAX1rszquso1_1280.jpg"
assert_rewritten(@rewrite, @source)
assert_downloaded(296_399, @source)
end
end
context "a download for a gs1.wac.edgecastcdn.net image" do
should "rewrite to the full tumblr version" do
@source = "https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/tumblr_m2dxb8aOJi1rop2v0o1_500.png"
@rewrite = "http://data.tumblr.com/tumblr_m2dxb8aOJi1rop2v0o1_1280.png"
assert_downloaded(34_060, @source)
assert_rewritten(@rewrite, @source)
end
end
end