titlekit 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.travis.yml +3 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +335 -0
- data/Rakefile +8 -0
- data/lib/titlekit/have.rb +90 -0
- data/lib/titlekit/job.rb +446 -0
- data/lib/titlekit/parsers/ass.rb +175 -0
- data/lib/titlekit/parsers/ass.treetop +72 -0
- data/lib/titlekit/parsers/srt.rb +139 -0
- data/lib/titlekit/parsers/srt.treetop +73 -0
- data/lib/titlekit/parsers/ssa.rb +201 -0
- data/lib/titlekit/parsers/ssa.treetop +72 -0
- data/lib/titlekit/specification.rb +131 -0
- data/lib/titlekit/utilities.rb +3 -0
- data/lib/titlekit/version.rb +3 -0
- data/lib/titlekit/want.rb +24 -0
- data/lib/titlekit.rb +9 -0
- data/spec/ass_spec.rb +113 -0
- data/spec/automatic_grouping/automatic_grouping_spec.rb +55 -0
- data/spec/automatic_grouping/dual_tracks/expected.srt +15 -0
- data/spec/automatic_grouping/dual_tracks/one.srt +11 -0
- data/spec/automatic_grouping/dual_tracks/out.srt +15 -0
- data/spec/automatic_grouping/dual_tracks/two.srt +11 -0
- data/spec/automatic_grouping/single_track/expected.srt +24 -0
- data/spec/automatic_grouping/single_track/one.srt +11 -0
- data/spec/automatic_grouping/single_track/out.srt +24 -0
- data/spec/automatic_grouping/single_track/two.srt +11 -0
- data/spec/encoding_detection/a/in.ass +0 -0
- data/spec/encoding_detection/b/in.srt +2389 -0
- data/spec/encoding_detection/b/out.srt +2389 -0
- data/spec/encoding_detection/c/in.srt +5320 -0
- data/spec/encoding_detection/c/out.srt +5320 -0
- data/spec/encoding_detection/encoding_detection_spec.rb +81 -0
- data/spec/files/ass/authentic.ass +0 -0
- data/spec/files/ass/hard.ass +37 -0
- data/spec/files/ass/simple.ass +28 -0
- data/spec/files/srt/authentic.srt +2708 -0
- data/spec/files/srt/coordinates.srt +13 -0
- data/spec/files/srt/simple.srt +12 -0
- data/spec/files/ssa/simple.ssa +26 -0
- data/spec/files/try/unsupported-output.try +0 -0
- data/spec/files/try/unsupported.try +7 -0
- data/spec/format_conversion/ass_srt/expected.srt +2327 -0
- data/spec/format_conversion/ass_srt/in.ass +485 -0
- data/spec/format_conversion/ass_srt/out.srt +2327 -0
- data/spec/format_conversion/format_conversion_spec.rb +112 -0
- data/spec/format_conversion/srt_ass/expected.ass +19 -0
- data/spec/format_conversion/srt_ass/in.srt +12 -0
- data/spec/format_conversion/srt_ass/out.ass +19 -0
- data/spec/format_conversion/srt_ssa/expected.ssa +19 -0
- data/spec/format_conversion/srt_ssa/in.srt +12 -0
- data/spec/format_conversion/srt_ssa/out.ssa +19 -0
- data/spec/format_conversion/ssa_srt/expected.srt +9 -0
- data/spec/format_conversion/ssa_srt/in.ssa +26 -0
- data/spec/format_conversion/ssa_srt/out.srt +9 -0
- data/spec/job_spec.rb +162 -0
- data/spec/simultaneous_subtitles/dual/ass/expected.ass +22 -0
- data/spec/simultaneous_subtitles/dual/ass/out.ass +22 -0
- data/spec/simultaneous_subtitles/dual/one.srt +11 -0
- data/spec/simultaneous_subtitles/dual/srt/expected.srt +27 -0
- data/spec/simultaneous_subtitles/dual/srt/out.srt +27 -0
- data/spec/simultaneous_subtitles/dual/ssa/expected.ssa +22 -0
- data/spec/simultaneous_subtitles/dual/ssa/out.ssa +22 -0
- data/spec/simultaneous_subtitles/dual/two.srt +11 -0
- data/spec/simultaneous_subtitles/simultaneous_subtitles_spec.rb +220 -0
- data/spec/simultaneous_subtitles/triple/ass/expected.ass +25 -0
- data/spec/simultaneous_subtitles/triple/ass/out.ass +25 -0
- data/spec/simultaneous_subtitles/triple/one.srt +11 -0
- data/spec/simultaneous_subtitles/triple/srt/expected.srt +55 -0
- data/spec/simultaneous_subtitles/triple/srt/out.srt +55 -0
- data/spec/simultaneous_subtitles/triple/ssa/expected.ssa +25 -0
- data/spec/simultaneous_subtitles/triple/ssa/out.ssa +25 -0
- data/spec/simultaneous_subtitles/triple/three.srt +11 -0
- data/spec/simultaneous_subtitles/triple/two.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/ass/expected.ass +93 -0
- data/spec/simultaneous_subtitles/triple_plus/ass/out.ass +93 -0
- data/spec/simultaneous_subtitles/triple_plus/five.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/four.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/one.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/six.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/srt/expected.srt +149 -0
- data/spec/simultaneous_subtitles/triple_plus/srt/out.srt +149 -0
- data/spec/simultaneous_subtitles/triple_plus/ssa/expected.ssa +93 -0
- data/spec/simultaneous_subtitles/triple_plus/ssa/out.ssa +93 -0
- data/spec/simultaneous_subtitles/triple_plus/three.srt +11 -0
- data/spec/simultaneous_subtitles/triple_plus/two.srt +11 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/specifications_spec.rb +138 -0
- data/spec/srt_spec.rb +134 -0
- data/spec/ssa_spec.rb +90 -0
- data/spec/timecode_correction/double_reference/expected.srt +13 -0
- data/spec/timecode_correction/double_reference/in.srt +12 -0
- data/spec/timecode_correction/double_reference/out.srt +13 -0
- data/spec/timecode_correction/framerate/expected.srt +5 -0
- data/spec/timecode_correction/framerate/in.srt +4 -0
- data/spec/timecode_correction/framerate/out.srt +5 -0
- data/spec/timecode_correction/framerate_plus_reference/expected.srt +13 -0
- data/spec/timecode_correction/framerate_plus_reference/in.srt +12 -0
- data/spec/timecode_correction/framerate_plus_reference/out.srt +13 -0
- data/spec/timecode_correction/single_reference/expected.srt +13 -0
- data/spec/timecode_correction/single_reference/in.srt +12 -0
- data/spec/timecode_correction/single_reference/out.srt +13 -0
- data/spec/timecode_correction/timecode_correction_spec.rb +124 -0
- data/spec/transcoding/gb2312-ascii/in.srt +12 -0
- data/spec/transcoding/iso-8859-1_utf-8/expected.srt +12 -0
- data/spec/transcoding/iso-8859-1_utf-8/in.srt +11 -0
- data/spec/transcoding/iso-8859-1_utf-8/out.srt +12 -0
- data/spec/transcoding/transcoding_spec.rb +116 -0
- data/spec/transcoding/utf-8_gbk/expected.srt +12 -0
- data/spec/transcoding/utf-8_gbk/in.srt +11 -0
- data/spec/transcoding/utf-8_gbk/out.srt +12 -0
- data/spec/transcoding/windows-1252_utf-8/expected.srt +12 -0
- data/spec/transcoding/windows-1252_utf-8/in.srt +11 -0
- data/spec/transcoding/windows-1252_utf-8/out.srt +12 -0
- data/titlekit.gemspec +28 -0
- metadata +313 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require File.join(File.expand_path(__dir__), '../spec_helper')
|
|
2
|
+
|
|
3
|
+
describe Titlekit::Job do
|
|
4
|
+
|
|
5
|
+
describe 'Encoding detection' do
|
|
6
|
+
|
|
7
|
+
context 'with exhibit A' do
|
|
8
|
+
before(:all) do
|
|
9
|
+
@in = File.join(__dir__, 'a', 'in.ass')
|
|
10
|
+
@out = File.join(__dir__, 'a', 'out.ass')
|
|
11
|
+
@expected = File.join(__dir__, 'a', 'expected.ass')
|
|
12
|
+
|
|
13
|
+
File.delete(@out) if File.exist?(@out)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it 'tries its best and takes graceful actions no matter what' do
|
|
17
|
+
job = Titlekit::Job.new
|
|
18
|
+
|
|
19
|
+
have = job.have
|
|
20
|
+
have.file(@in)
|
|
21
|
+
|
|
22
|
+
want = job.want
|
|
23
|
+
want.file(@out)
|
|
24
|
+
|
|
25
|
+
job.run
|
|
26
|
+
|
|
27
|
+
expect(job.report.join).to include('detected')
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context 'with exhibit B' do
|
|
32
|
+
|
|
33
|
+
before(:all) do
|
|
34
|
+
@in = File.join(__dir__, 'b', 'in.srt')
|
|
35
|
+
@out = File.join(__dir__, 'b', 'out.srt')
|
|
36
|
+
@expected = File.join(__dir__, 'b', 'expected.srt')
|
|
37
|
+
|
|
38
|
+
File.delete(@out) if File.exist?(@out)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'tries its best and takes graceful actions no matter what' do
|
|
42
|
+
job = Titlekit::Job.new
|
|
43
|
+
|
|
44
|
+
have = job.have
|
|
45
|
+
have.file(@in)
|
|
46
|
+
|
|
47
|
+
want = job.want
|
|
48
|
+
want.file(@out)
|
|
49
|
+
|
|
50
|
+
job.run
|
|
51
|
+
|
|
52
|
+
expect(job.report.join).to include('detected')
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
context 'with exhibit C' do
|
|
57
|
+
|
|
58
|
+
before(:all) do
|
|
59
|
+
@in = File.join(__dir__, 'c', 'in.srt')
|
|
60
|
+
@out = File.join(__dir__, 'c', 'out.srt')
|
|
61
|
+
@expected = File.join(__dir__, 'c', 'expected.srt')
|
|
62
|
+
|
|
63
|
+
File.delete(@out) if File.exist?(@out)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'tries its best and takes graceful actions no matter what' do
|
|
67
|
+
job = Titlekit::Job.new
|
|
68
|
+
|
|
69
|
+
have = job.have
|
|
70
|
+
have.file(@in)
|
|
71
|
+
|
|
72
|
+
want = job.want
|
|
73
|
+
want.file(@out)
|
|
74
|
+
|
|
75
|
+
job.run
|
|
76
|
+
|
|
77
|
+
expect(job.report.join).to include('detected')
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[Script Info]
|
|
2
|
+
; Script generated by Aegisub 2.1.8
|
|
3
|
+
; http://www.aegisub.org/
|
|
4
|
+
Title: Default Aegisub file
|
|
5
|
+
ScriptType: v4.00+
|
|
6
|
+
WrapStyle: 0
|
|
7
|
+
PlayResX: 640
|
|
8
|
+
PlayResY: 480
|
|
9
|
+
ScaledBorderAndShadow: yes
|
|
10
|
+
Video Aspect Ratio: 0
|
|
11
|
+
Video Zoom: 6
|
|
12
|
+
Video Position: 0
|
|
13
|
+
Last Style Storage: Default
|
|
14
|
+
|
|
15
|
+
[V4+ Styles]
|
|
16
|
+
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
|
|
17
|
+
Style: Default,Arial,25,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,1,2,10,10,10,1
|
|
18
|
+
|
|
19
|
+
[Events]
|
|
20
|
+
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
|
|
21
|
+
Comment: 0,0:00:00.00,0:00:00.00,Default,,0000,0000,0000,,This line has some Arabic text to check for basic support.
|
|
22
|
+
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0000,0000,0000,,هل تعمل اللغة العربية؟
|
|
23
|
+
Comment: 0,0:00:02.00,0:00:02.00,Default,,0000,0000,0000,,These are typeset words with diacritics. They also demonstrate some "ligatures".
|
|
24
|
+
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0000,0000,0000,,{\pos(323,84)\frz345.949}نَصٌّ
|
|
25
|
+
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0000,0000,0000,,{\frx28\fry322\fscx251.25\fscy308.75\pos(318,177)}تجريبيّ
|
|
26
|
+
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0000,0000,0000,,{\frz25.57\fscx368.75\fscy352.5\pos(346,305)}عَرَبيّ
|
|
27
|
+
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0000,0000,0000,,{\pos(319,430)\fscx260\fscy258.75\clip(305,327,353,460)}مقطوع
|
|
28
|
+
Comment: 0,0:00:04.00,0:00:04.00,Default,,0000,0000,0000,,This line test a common bug. Using tags on a word in an RTL line usually messes up its order.
|
|
29
|
+
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0000,0000,0000,,{\frz328.582\fscx357.5\fscy445\frx58\fry6\pos(292,250)}{\1c&H0000FF&}هذا {\1c&H00FF00&}نص {\1c&HFF0000&}ملون
|
|
30
|
+
Comment: 0,0:00:06.00,0:00:06.00,Default,,0000,0000,0000,,Numbers in a RTL line. They should be displayed as 1432 and 2011.
|
|
31
|
+
Dialogue: 0,0:00:06.00,0:00:08.00,Default,,0000,0000,0000,,كُتب هذا الملف عام 1432 هـ الموافق 2011 م
|
|
32
|
+
Comment: 0,0:00:08.00,0:00:08.00,Default,,0000,0000,0000,,Another common problem: punctuations at the beginning or the end of a line are sometimes rendered at the wrong end of the line.
|
|
33
|
+
Dialogue: 0,0:00:08.00,0:00:10.00,Default,,0000,0000,0000,,- علامات الترقيم تعمل!
|
|
34
|
+
Comment: 0,0:00:10.00,0:00:10.00,Default,,0000,0000,0000,,A LTR word in a punctuated RTL context and vice-versa.
|
|
35
|
+
Dialogue: 0,0:00:10.00,0:00:12.00,Default,,0000,0000,0000,,- اللغة الرسمية في Germany هي الألمانية.\N- The official language in مصر is Arabic.
|
|
36
|
+
Comment: 0,0:00:12.00,0:00:12.00,Default,,0000,0000,0000,,Bidi karaoke has never worked before. Say hello to kickass-libass!!
|
|
37
|
+
Dialogue: 0,0:00:12.00,0:00:18.00,Default,,0000,0000,0000,,{\k59}كا{\k58}ر{\k54}يو{\k59}كي {\k63}La{\k55}tin {\k52}و{\k58}ع{\k54}ر{\k53}بي!
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[Script Info]
|
|
2
|
+
; This is an Advanced Sub Station Alpha v4+ script.
|
|
3
|
+
; For Sub Station Alpha info and downloads,
|
|
4
|
+
; go to http://www.eswat.demon.co.uk/
|
|
5
|
+
; or email kotus@eswat.demon.co.uk
|
|
6
|
+
;
|
|
7
|
+
; Advanced Sub Station Alpha script format developed by #Anime-Fansubs@EfNET
|
|
8
|
+
; http://www.anime-fansubs.org
|
|
9
|
+
;
|
|
10
|
+
; For additional info and downloads go to http://vobsub.edensrising.com/
|
|
11
|
+
; or email gabest@freemail.hu
|
|
12
|
+
;
|
|
13
|
+
; Note: This file was saved by Subresync.
|
|
14
|
+
;
|
|
15
|
+
ScriptType: v4.00+
|
|
16
|
+
Collisions: Normal
|
|
17
|
+
PlayResX: 384
|
|
18
|
+
PlayResY: 288
|
|
19
|
+
Timer: 100.0000
|
|
20
|
+
|
|
21
|
+
[V4+ Styles]
|
|
22
|
+
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
|
|
23
|
+
Style: Default,Tahoma,16,&H00000000,&H00ffffff,&H00ffffff,&H00c0c0c0,-1,0,0,0,100,100,0,0.00,1,2,3,2,20,20,20,1
|
|
24
|
+
|
|
25
|
+
[Events]
|
|
26
|
+
Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
|
|
27
|
+
Dialogue: 0,0:01:41.70,0:01:46.84,Default,,0000,0000,0000,,Le rugissement des larmes !\NTu es mon ami.
|
|
28
|
+
Dialogue: 0,0:02:00.99,0:02:02.87,Default,,0000,0000,0000,,Est-ce vraiment Naruto ?
|