implement ugoira converter

This commit is contained in:
r888888888
2014-10-06 00:01:50 -07:00
parent 36be58561b
commit 50730c6d0d
4 changed files with 701 additions and 8 deletions

View File

@@ -43,7 +43,7 @@ gem 'capistrano'
gem 'capistrano-ext'
gem 'radix62', '~> 1.0.1'
gem 'streamio-ffmpeg'
gem 'rubyzip'
gem 'rubyzip', :require => "zip"
# needed for looser jpeg header compat
gem 'ruby-imagespec', :require => "image_spec", :git => "https://github.com/r888888888/ruby-imagespec.git", :branch => "exif-fixes"

View File

@@ -1,13 +1,14 @@
class PixivUgoiraConverter
attr_reader :agent, :url, :write_path
attr_reader :agent, :url, :write_path, :format
def initialize(agent, url, write_path)
def initialize(agent, url, write_path, format)
@agent = agent
@url = url
@write_path = write_path
@format = format
end
def process(format)
def process
folder = unpack(fetch_zipped_body)
if format == :gif
@@ -34,7 +35,7 @@ class PixivUgoiraConverter
end
anim = anim.optimize_layers(Magick::OptimizeTransLayer)
anim.write(write_path)
anim.write("gif:" + write_path)
end
def write_webm(folder)
@@ -49,11 +50,12 @@ class PixivUgoiraConverter
end
# Duplicate last frame to avoid it being displayed only for a very short amount of time.
folder.to_a.last.name =~ /\A(\d{6})(\..+)\Z/
last_file_name = folder.to_a.last.name
last_file_name =~ /\A(\d{6})(\..+)\Z/
new_last_index = $1.to_i + 1
file_ext = $2
new_last_filename = ("%06d" % new_last_index) + file_ext
path_from = File.join(tmpdir, "images", folder.to_a.last.name)
path_from = File.join(tmpdir, "images", last_file_name)
path_to = File.join(tmpdir, "images", new_last_filename)
FileUtils.cp(path_from, path_to)
@@ -68,7 +70,7 @@ class PixivUgoiraConverter
f.write("#{delay_sum}\n")
f.write("#{delay_sum}\n")
end
ext = folder.first.name.match(/\.(.+)$/)[1]
system("ffmpeg -i #{tmpdir}/images/%06d.#{ext} -codec:v libvpx -crf 4 -b:v 5000k -an #{tmpdir}/tmp.webm")
system("mkvmerge -o #{write_path} --timecodes 0:#{tmpdir}/timecodes.tc #{tmpdir}/tmp.webm")

View File

@@ -0,0 +1,631 @@
---
http_interactions:
- request:
method: get
uri: http://www.pixiv.net/member_illust.php?illust_id=46378654&mode=medium
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- ! '*/*'
User-Agent:
- Mechanize/2.7.2 Ruby/1.9.3p327 (http://github.com/sparklemotion/mechanize/)
Accept-Encoding:
- gzip,deflate,identity
Accept-Charset:
- ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Language:
- en-us,en;q=0.5
Cookie:
- !binary |-
UEhQU0VTU0lEPTBhNjNhNTMwOTI2MDQ5NzVkNTliZTM4ZTJkMDcwZTY3OyBw
X2FiX2lkPTk=
Host:
- www.pixiv.net
Connection:
- keep-alive
Keep-Alive:
- 300
response:
status:
code: 200
message: !binary |-
T0s=
headers:
!binary "U2VydmVy":
- !binary |-
bmdpbng=
!binary "RGF0ZQ==":
- !binary |-
U3VuLCAwNSBPY3QgMjAxNCAyMjozMzoxOSBHTVQ=
!binary "Q29udGVudC1UeXBl":
- !binary |-
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
- !binary |-
Y2h1bmtlZA==
!binary "Q29ubmVjdGlvbg==":
- !binary |-
a2VlcC1hbGl2ZQ==
!binary "VmFyeQ==":
- !binary |-
QWNjZXB0LUVuY29kaW5n
!binary "WC1Ib3N0LVRpbWU=":
- !binary |-
MTM4
!binary "RXhwaXJlcw==":
- !binary |-
VGh1LCAxOSBOb3YgMTk4MSAwODo1MjowMCBHTVQ=
!binary "Q2FjaGUtQ29udHJvbA==":
- !binary |-
bm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hl
Y2s9MCwgcHJlLWNoZWNrPTA=
!binary "UHJhZ21h":
- !binary |-
bm8tY2FjaGU=
!binary "WC1GcmFtZS1PcHRpb25z":
- !binary |-
U0FNRU9SSUdJTg==
!binary "Q29udGVudC1FbmNvZGluZw==":
- !binary |-
Z3ppcA==
body:
encoding: ASCII-8BIT
string: !binary |-
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
RAUBpGiuEXh3Vv6aA0xJJvlC/qIXEF7yIb7RA5Ky8gkLXHok2Uo91rmMYaAh
2mWLVuWCQS/6A7eLzTi/mJVjzksezUT+wrLFeMI4fOBA+Dst6xmgeXJu5uqR
GX1u8MiNYM9pAlOHJv7z6f7IX5qdgfANp5DERn9EKEXmlSwTeUYATSoZTjlZ
LHwgysyA8rRmnqbd3OwcM0PNoOUPLPEEEeN5OUqHxCBhctpLxiwvc8S70yvH
jyPBPRQdSYw45ipDFAwqllY1wFxDG1Hxlh5QF0Bc4h0IJfw/1CF1xWO40nH9
JdeFQSuiVcRua23fz7Q6XsPqpPH1iVzTtkvZXMkuZKvVQsHKV0sFu5grNis5
1y01eDcOVKS26t9nU/UcN2Y2batQsYpuuZJvVE3LbZaLdjWftbKVnF2uFmmj
8CCNYeXmdpxitVFwiuWCVbLcXK5QyZarZatYrJbzjXyl6LDyfiCVuowlHUtk
5eoDttt2RbPZouvkzHy10UDLzXyhaJUa2WbZxWMz28hR9w5cBi+0m1dTKfoR
oFB9cBSqjIObq5SzjlUqF/NOIV/M5xvFbN52LDvnVHJWng2oERwehN5DF0Y9
4iK7ZNlWs5k3s1apUipYbrFiwdZWyjeLpVLJZqvqgzQEWZPqeK12j1uDVdQp
W2ah4ZQKjWq25FSaFaecLeSqpp1tmnkaXp24PL5i82VgMQi2VLHz45qf6bQb
GRJJRX+pfSP8lr7mJxa1GRghoxzK1tAljsJw0uBiiPfYrH+jVcASMlhpeM5K
JvIr3XYrW1BIpaIctYfmmm1IDeortiY9AH6ikc0VcsVCtZg3LYgC2OLcpmWW
nGalWSiCnSOd33NDZO3rqaacRtUys8VstloswOILK7dVtpu5Sh6z0yqUMEE1
Ou+5KRIDsk85u9C07EIuW2mUC1nLds1ysdG0m66D+QipEGlIjiF25HIM9zx8
1jXr5hJsY37mpjPYMlj61N9Dp4buzWHG5SEqQqhkzWy1kc9hkhfdbMWGODMb
hWK2jOmNeRbSbU/IC2YIp5kkX8XJYWhKTtEqF/L5glWuWuVcsVyuVvMNG0/1
9vbC6q0+/AHEc8WCY1XLOcux87mGUyyUMY8bdsFpNst2sdiIjI/q0OKM0EIc
TJSO1ydNkBRhq+O7R+QrMbPPY7OGN8KCciVzJTM54a+Qt+JKJqGq2bCHe72L
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
http_version:
recorded_at: Sun, 05 Oct 2014 22:33:20 GMT
- request:
method: get
uri: http://i1.pixiv.net/img-zip-ugoira/img/2014/10/05/23/42/23/46378654_ugoira1920x1080.zip
body:
encoding: US-ASCII
string: ''
headers:
Referer:
- http://pixiv.net
Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept:
- ! '*/*'
User-Agent:
- Ruby
response:
status:
code: 200
message: !binary |-
T0s=
headers:
!binary "U2VydmVy":
- !binary |-
bmdpbng=
!binary "Q29udGVudC1UeXBl":
- !binary |-
YXBwbGljYXRpb24vemlw
!binary "Q29udGVudC1MZW5ndGg=":
- !binary |-
NjY2Mw==
!binary "Q29ubmVjdGlvbg==":
- !binary |-
a2VlcC1hbGl2ZQ==
!binary "TGFzdC1Nb2RpZmllZA==":
- !binary |-
U3VuLCAwNSBPY3QgMjAxNCAxNDozMTowNyBHTVQ=
!binary "RXhwaXJlcw==":
- !binary |-
U3VuLCAxOSBPY3QgMjAxNCAyMjozMjozNCBHTVQ=
!binary "Q2FjaGUtQ29udHJvbA==":
- !binary |-
bWF4LWFnZT0xMjA5NjAw
!binary "QWNjZXB0LVJhbmdlcw==":
- !binary |-
Ynl0ZXM=
!binary "WC1Db250ZW50LVR5cGUtT3B0aW9ucw==":
- !binary |-
bm9zbmlmZg==
!binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu":
- !binary |-
Kg==
!binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcw==":
- !binary |-
R0VULCBQT1NULCBPUFRJT05T
!binary "QWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycw==":
- !binary |-
QWNjZXB0LCBDYWNoZS1Db250cm9sLCBJZi1Ob25lLU1hdGNoLCBJZi1Nb2Rp
ZmllZC1TaW5jZSwgT3JpZ2luLCBSYW5nZSwgWC1SZXF1ZXN0ZWQtV2l0aA==
!binary "QWNjZXNzLUNvbnRyb2wtRXhwb3NlLUhlYWRlcnM=":
- !binary |-
Q29udGVudC1MZW5ndGg=
!binary "QWNjZXNzLUNvbnRyb2wtTWF4LUFnZQ==":
- !binary |-
MjU5MjAwMA==
body:
encoding: ASCII-8BIT
string: !binary |-
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
RUVwazI5GQYAABkGAAAKAAAAMDAwMDAyLmpwZ//Y/+AAEEpGSUYAAQEBAEgA
SAAA/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4S
EA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0L
DRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
FBQUFBQU/8AAEQgAPAA8AwERAAIRAQMRAf/EABoAAQADAQEBAAAAAAAAAAAA
AAAFBgcECAn/xAAqEAABBAEFAAEEAgIDAAAAAAACAQMEBQYABxESExQIFSEi
FjEYMjM1Uv/EABgBAQADAQAAAAAAAAAAAAAAAAACBAUG/8QAIxEBAQABAwME
AwAAAAAAAAAAAAECAxESBAUxBhMUIUFRYf/aAAwDAQACEQMRAD8A+qegaBoG
gaBoGgaCJjZTVzMpscbald7qvhRrCTG8yTzYkG+2yfbjqvYor6cIqqnT8oiK
PII2U1czKbHG2pXe6r4UawkxvMk82JBvtsn246r2KK+nCKqp0/KIijyEtoGg
aBoGgaDyr9Ov0Z1+zm6e6VlcVGP3sDL6WFHdkQ6CHXVydn54y6+NBBTVmMkd
K5DFwj9iRTIzLlBDk+l/6SXtrN+dxs8yTCcHqZFyzXyaFvFYLfxKEg+dHejR
HCAHUIo6RDedRpkXTkGiDwK6Ddcp20yLIL2VPgbsZhjMV7r0qquJTHHY4FBX
osivddXsqKS9nC/JLxwnCIHVhWAXuK2rsuz3KyjMY5sq0MG7jVTbLZKQqjiL
EhMH2RBUeFNR4JeRVeFQLtoGgaBoMSxv6if5hOTKKyCg7ShTOTAtpESUltYv
F4uMux4PmjiRvJX0RSH1ePorTfn0ce47rvVXb+39fj27V5crZLdpxx5fu2zx
LLbJZJ/d4uafSampp+5PC2YFvpiG4VENtDsftsZz4bjIW6JEN9iaSDXSAQ1/
ZqV2HyX+1NSaJBebdaDsVNoOgaBoGgaBoOJymr3piS3IMY5SKhI+TIqfKf0v
bjnlOE1n59v6PU1vkZ6ONz+ryuM33ni77b/X4TmpnJxmV2Uzc/YfCN24dv8A
fsfrzurCllUI5G1CYW0hxZDLrLgsSDAib/V93hPyP7lyioqouggidutwMk3T
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
AAAA
http_version:
recorded_at: Sun, 05 Oct 2014 22:33:22 GMT
recorded_with: VCR 2.9.0

View File

@@ -0,0 +1,60 @@
require "test_helper"
class PixivUgoiraConverterTest < ActiveSupport::TestCase
context "An ugoira converter" do
setup do
@url = "http://www.pixiv.net/member_illust.php?mode=medium&illust_id=46378654"
@agent = begin
mech = Mechanize.new
phpsessid = Cache.get("pixiv-phpsessid")
if phpsessid
cookie = Mechanize::Cookie.new("PHPSESSID", phpsessid)
cookie.domain = ".pixiv.net"
cookie.path = "/"
mech.cookie_jar.add(cookie)
else
mech.get("http://www.pixiv.net") do |page|
page.form_with(:action => "/login.php") do |form|
form['pixiv_id'] = Danbooru.config.pixiv_login
form['pass'] = Danbooru.config.pixiv_password
end.click_button
end
phpsessid = mech.cookie_jar.cookies.select{|c| c.name == "PHPSESSID"}.first
Cache.put("pixiv-phpsessid", phpsessid.value, 1.month) if phpsessid
end
mech
end
@write_file = Tempfile.new("output")
end
teardown do
@write_file.unlink
end
should "output to gif" do
@converter = PixivUgoiraConverter.new(@agent, @url, @write_file.path, :gif)
VCR.use_cassette("ugoira-converter", :record => :new_episodes) do
@converter.process
end
assert_operator(File.size(@converter.write_path), :>, 1_000)
end
should "output to webm" do
@converter = PixivUgoiraConverter.new(@agent, @url, @write_file.path, :webm)
VCR.use_cassette("ugoira-converter", :record => :new_episodes) do
@converter.process
end
assert_operator(File.size(@converter.write_path), :>, 1_000)
end
should "output to apng" do
@converter = PixivUgoiraConverter.new(@agent, @url, @write_file.path, :apng)
VCR.use_cassette("ugoira-converter", :record => :new_episodes) do
@converter.process
end
assert_operator(File.size(@converter.write_path), :>, 1_000)
end
end
end