vtt2ass 0.2.13 → 0.2.14

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.
data/doc/_index.html CHANGED
@@ -109,6 +109,19 @@
109
109
  </ul>
110
110
 
111
111
 
112
+ <ul id="alpha_M" class="alpha">
113
+ <li class="letter">M</li>
114
+ <ul>
115
+
116
+ <li>
117
+ <span class='object_link'><a href="MainCommand.html" title="MainCommand (class)">MainCommand</a></span>
118
+
119
+ </li>
120
+
121
+ </ul>
122
+ </ul>
123
+
124
+
112
125
  <ul id="alpha_V" class="alpha">
113
126
  <li class="letter">V</li>
114
127
  <ul>
@@ -140,9 +153,9 @@
140
153
  </div>
141
154
 
142
155
  <div id="footer">
143
- Generated on Tue Mar 23 21:07:01 2021 by
156
+ Generated on Mon Nov 22 21:50:10 2021 by
144
157
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
145
- 0.9.26 (ruby-3.0.0).
158
+ 0.9.26 (ruby-3.0.2).
146
159
  </div>
147
160
 
148
161
  </div>
data/doc/class_list.html CHANGED
@@ -43,7 +43,7 @@
43
43
 
44
44
  <ul id="full_list" class="class">
45
45
  <li id="object_" class="odd"><div class="item" style="padding-left:30px"><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></div></li>
46
- <li id='object_ASSFile' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSFile.html" title="ASSFile (class)">ASSFile</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSLine' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSLine.html" title="ASSLine (class)">ASSLine</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSStyle' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSStyle.html" title="ASSStyle (class)">ASSStyle</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSStyleParams' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSStyleParams.html" title="ASSStyleParams (class)">ASSStyleParams</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_Application' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="Application.html" title="Application (class)">Application</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_VTTFile' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="VTTFile.html" title="VTTFile (class)">VTTFile</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_VTTLine' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="VTTLine.html" title="VTTLine (class)">VTTLine</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_Vtt2ass' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="Vtt2ass.html" title="Vtt2ass (module)">Vtt2ass</a></span><small class='search_info'>Top Level Namespace</small></div></li>
46
+ <li id='object_ASSFile' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSFile.html" title="ASSFile (class)">ASSFile</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSLine' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSLine.html" title="ASSLine (class)">ASSLine</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSStyle' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSStyle.html" title="ASSStyle (class)">ASSStyle</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_ASSStyleParams' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="ASSStyleParams.html" title="ASSStyleParams (class)">ASSStyleParams</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_Application' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="Application.html" title="Application (class)">Application</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_MainCommand' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="MainCommand.html" title="MainCommand (class)">MainCommand</a></span> &lt; Thor<small class='search_info'>Top Level Namespace</small></div></li><li id='object_VTTFile' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="VTTFile.html" title="VTTFile (class)">VTTFile</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_VTTLine' class='odd'><div class='item' style='padding-left:30px'><span class='object_link'><a href="VTTLine.html" title="VTTLine (class)">VTTLine</a></span> &lt; Object<small class='search_info'>Top Level Namespace</small></div></li><li id='object_Vtt2ass' class='even'><div class='item' style='padding-left:30px'><span class='object_link'><a href="Vtt2ass.html" title="Vtt2ass (module)">Vtt2ass</a></span><small class='search_info'>Top Level Namespace</small></div></li>
47
47
 
48
48
  </ul>
49
49
  </div>
data/doc/file.README.html CHANGED
@@ -73,7 +73,10 @@
73
73
 
74
74
  <h2 id="label-Installation">Installation</h2>
75
75
 
76
- <p>To install: <code>bash gem install vtt2ass </code></p>
76
+ <p>To install:</p>
77
+
78
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_vtt2ass'>vtt2ass</span>
79
+ </code></pre>
77
80
 
78
81
  <h1 id="label-Build">Build</h1>
79
82
 
@@ -82,22 +85,26 @@
82
85
 
83
86
  <h2 id="label-Usage">Usage</h2>
84
87
 
85
- <p>Add your VTT files in your <code>input</code> directory.</p>
86
-
87
- <p>Run this command: <code>bash $ vtt2ass </code></p>
88
-
89
- <h2 id="label-Help">Help</h2>
90
-
91
- <pre class="code ruby"><code class="ruby">$ vtt2ass -h
92
- Usage: vtt2ass [options]
93
-
94
- Specific options:
95
- -i, --input PATH Specify a custom input file or directory (default: &#39;./&#39;)
96
- -o, --output PATH Specify a custom output directory (default: &#39;./&#39;)
97
- -f, --font-family FONT Specify a font family for the subtitles (default: &#39;Open Sans Semibold&#39;)
98
- -s, --font-size SIZE Specify a font size for the subtitles (default: 52)
99
- -t, --title TITLE Specify a title for you file. If the input is a directory, all files will share the same title.
100
- -v, --version Show version
88
+ <pre class="code ruby"><code class="ruby">$ vtt2ass
89
+ Commands:
90
+ vtt2ass convert INPUT # Run the VTT to ASS conversion for the specified file(s)
91
+ vtt2ass help [COMMAND] # Describe available commands or one specific command
92
+ vtt2ass version # Show version
93
+
94
+ $ vtt2ass help convert
95
+ Usage:
96
+ vtt2ass convert INPUT
97
+
98
+ Options:
99
+ -o, [--output=OUTPUT] # Output directory of the converted file
100
+ -t, [--title=TITLE] # Specify a title for you file. If the input is a directory, all files will share the same title.
101
+ -s, [--font-size=N] # Specify a font size for the subtitles
102
+ # Default: 52
103
+ -f, [--font-family=FONT_FAMILY] # Specify a font family for the subtitles
104
+ # Default: Open Sans Semibold
105
+ -q, [--quiet], [--no-quiet] # Don&#39;t output to the console
106
+
107
+ Run the VTT to ASS conversion for the specified file(s)
101
108
  </code></pre>
102
109
 
103
110
  <h1 id="label-Donate">Donate</h1>
@@ -108,9 +115,9 @@ Specific options:
108
115
  </div></div>
109
116
 
110
117
  <div id="footer">
111
- Generated on Tue Mar 23 21:07:02 2021 by
118
+ Generated on Mon Nov 22 21:50:10 2021 by
112
119
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
113
- 0.9.26 (ruby-3.0.0).
120
+ 0.9.26 (ruby-3.0.2).
114
121
  </div>
115
122
 
116
123
  </div>
data/doc/index.html CHANGED
@@ -73,7 +73,10 @@
73
73
 
74
74
  <h2 id="label-Installation">Installation</h2>
75
75
 
76
- <p>To install: <code>bash gem install vtt2ass </code></p>
76
+ <p>To install:</p>
77
+
78
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='id identifier rubyid_install'>install</span> <span class='id identifier rubyid_vtt2ass'>vtt2ass</span>
79
+ </code></pre>
77
80
 
78
81
  <h1 id="label-Build">Build</h1>
79
82
 
@@ -82,22 +85,26 @@
82
85
 
83
86
  <h2 id="label-Usage">Usage</h2>
84
87
 
85
- <p>Add your VTT files in your <code>input</code> directory.</p>
86
-
87
- <p>Run this command: <code>bash $ vtt2ass </code></p>
88
-
89
- <h2 id="label-Help">Help</h2>
90
-
91
- <pre class="code ruby"><code class="ruby">$ vtt2ass -h
92
- Usage: vtt2ass [options]
93
-
94
- Specific options:
95
- -i, --input PATH Specify a custom input file or directory (default: &#39;./&#39;)
96
- -o, --output PATH Specify a custom output directory (default: &#39;./&#39;)
97
- -f, --font-family FONT Specify a font family for the subtitles (default: &#39;Open Sans Semibold&#39;)
98
- -s, --font-size SIZE Specify a font size for the subtitles (default: 52)
99
- -t, --title TITLE Specify a title for you file. If the input is a directory, all files will share the same title.
100
- -v, --version Show version
88
+ <pre class="code ruby"><code class="ruby">$ vtt2ass
89
+ Commands:
90
+ vtt2ass convert INPUT # Run the VTT to ASS conversion for the specified file(s)
91
+ vtt2ass help [COMMAND] # Describe available commands or one specific command
92
+ vtt2ass version # Show version
93
+
94
+ $ vtt2ass help convert
95
+ Usage:
96
+ vtt2ass convert INPUT
97
+
98
+ Options:
99
+ -o, [--output=OUTPUT] # Output directory of the converted file
100
+ -t, [--title=TITLE] # Specify a title for you file. If the input is a directory, all files will share the same title.
101
+ -s, [--font-size=N] # Specify a font size for the subtitles
102
+ # Default: 52
103
+ -f, [--font-family=FONT_FAMILY] # Specify a font family for the subtitles
104
+ # Default: Open Sans Semibold
105
+ -q, [--quiet], [--no-quiet] # Don&#39;t output to the console
106
+
107
+ Run the VTT to ASS conversion for the specified file(s)
101
108
  </code></pre>
102
109
 
103
110
  <h1 id="label-Donate">Donate</h1>
@@ -108,9 +115,9 @@ Specific options:
108
115
  </div></div>
109
116
 
110
117
  <div id="footer">
111
- Generated on Tue Mar 23 21:07:01 2021 by
118
+ Generated on Mon Nov 22 21:50:10 2021 by
112
119
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
113
- 0.9.26 (ruby-3.0.0).
120
+ 0.9.26 (ruby-3.0.2).
114
121
  </div>
115
122
 
116
123
  </div>
data/doc/method_list.html CHANGED
@@ -76,6 +76,22 @@
76
76
  </li>
77
77
 
78
78
 
79
+ <li class="odd ">
80
+ <div class="item">
81
+ <span class='object_link'><a href="MainCommand.html#convert-instance_method" title="MainCommand#convert (method)">#convert</a></span>
82
+ <small>MainCommand</small>
83
+ </div>
84
+ </li>
85
+
86
+
87
+ <li class="even ">
88
+ <div class="item">
89
+ <span class='object_link'><a href="Application.html#convert-instance_method" title="Application#convert (method)">#convert</a></span>
90
+ <small>Application</small>
91
+ </div>
92
+ </li>
93
+
94
+
79
95
  <li class="odd ">
80
96
  <div class="item">
81
97
  <span class='object_link'><a href="ASSLine.html#convertTime-instance_method" title="ASSLine#convertTime (method)">#convertTime</a></span>
@@ -124,6 +140,22 @@
124
140
  </li>
125
141
 
126
142
 
143
+ <li class="odd ">
144
+ <div class="item">
145
+ <span class='object_link'><a href="VTTFile.html#determine_line_ending-instance_method" title="VTTFile#determine_line_ending (method)">#determine_line_ending</a></span>
146
+ <small>VTTFile</small>
147
+ </div>
148
+ </li>
149
+
150
+
151
+ <li class="even ">
152
+ <div class="item">
153
+ <span class='object_link'><a href="MainCommand.html#exit_on_failure%3F-class_method" title="MainCommand.exit_on_failure? (method)">exit_on_failure?</a></span>
154
+ <small>MainCommand</small>
155
+ </div>
156
+ </li>
157
+
158
+
127
159
  <li class="odd ">
128
160
  <div class="item">
129
161
  <span class='object_link'><a href="ASSFile.html#height-instance_method" title="ASSFile#height (method)">#height</a></span>
@@ -205,14 +237,6 @@
205
237
 
206
238
 
207
239
  <li class="odd ">
208
- <div class="item">
209
- <span class='object_link'><a href="Vtt2ass.html#main-class_method" title="Vtt2ass.main (method)">main</a></span>
210
- <small>Vtt2ass</small>
211
- </div>
212
- </li>
213
-
214
-
215
- <li class="even ">
216
240
  <div class="item">
217
241
  <span class='object_link'><a href="ASSLine.html#padTimeNum-instance_method" title="ASSLine#padTimeNum (method)">#padTimeNum</a></span>
218
242
  <small>ASSLine</small>
@@ -220,7 +244,7 @@
220
244
  </li>
221
245
 
222
246
 
223
- <li class="odd ">
247
+ <li class="even ">
224
248
  <div class="item">
225
249
  <span class='object_link'><a href="VTTLine.html#params-instance_method" title="VTTLine#params (method)">#params</a></span>
226
250
  <small>VTTLine</small>
@@ -228,7 +252,7 @@
228
252
  </li>
229
253
 
230
254
 
231
- <li class="even ">
255
+ <li class="odd ">
232
256
  <div class="item">
233
257
  <span class='object_link'><a href="Application.html#start-instance_method" title="Application#start (method)">#start</a></span>
234
258
  <small>Application</small>
@@ -236,7 +260,7 @@
236
260
  </li>
237
261
 
238
262
 
239
- <li class="odd ">
263
+ <li class="even ">
240
264
  <div class="item">
241
265
  <span class='object_link'><a href="ASSLine.html#style-instance_method" title="ASSLine#style (method)">#style</a></span>
242
266
  <small>ASSLine</small>
@@ -244,7 +268,7 @@
244
268
  </li>
245
269
 
246
270
 
247
- <li class="even ">
271
+ <li class="odd ">
248
272
  <div class="item">
249
273
  <span class='object_link'><a href="VTTLine.html#style-instance_method" title="VTTLine#style (method)">#style</a></span>
250
274
  <small>VTTLine</small>
@@ -252,7 +276,7 @@
252
276
  </li>
253
277
 
254
278
 
255
- <li class="odd ">
279
+ <li class="even ">
256
280
  <div class="item">
257
281
  <span class='object_link'><a href="ASSStyle.html#style_name-instance_method" title="ASSStyle#style_name (method)">#style_name</a></span>
258
282
  <small>ASSStyle</small>
@@ -260,7 +284,7 @@
260
284
  </li>
261
285
 
262
286
 
263
- <li class="even ">
287
+ <li class="odd ">
264
288
  <div class="item">
265
289
  <span class='object_link'><a href="ASSLine.html#text-instance_method" title="ASSLine#text (method)">#text</a></span>
266
290
  <small>ASSLine</small>
@@ -268,7 +292,7 @@
268
292
  </li>
269
293
 
270
294
 
271
- <li class="odd ">
295
+ <li class="even ">
272
296
  <div class="item">
273
297
  <span class='object_link'><a href="VTTLine.html#text-instance_method" title="VTTLine#text (method)">#text</a></span>
274
298
  <small>VTTLine</small>
@@ -276,7 +300,7 @@
276
300
  </li>
277
301
 
278
302
 
279
- <li class="even ">
303
+ <li class="odd ">
280
304
  <div class="item">
281
305
  <span class='object_link'><a href="ASSLine.html#time_end-instance_method" title="ASSLine#time_end (method)">#time_end</a></span>
282
306
  <small>ASSLine</small>
@@ -284,7 +308,7 @@
284
308
  </li>
285
309
 
286
310
 
287
- <li class="odd ">
311
+ <li class="even ">
288
312
  <div class="item">
289
313
  <span class='object_link'><a href="VTTLine.html#time_end-instance_method" title="VTTLine#time_end (method)">#time_end</a></span>
290
314
  <small>VTTLine</small>
@@ -292,7 +316,7 @@
292
316
  </li>
293
317
 
294
318
 
295
- <li class="even ">
319
+ <li class="odd ">
296
320
  <div class="item">
297
321
  <span class='object_link'><a href="ASSLine.html#time_start-instance_method" title="ASSLine#time_start (method)">#time_start</a></span>
298
322
  <small>ASSLine</small>
@@ -300,7 +324,7 @@
300
324
  </li>
301
325
 
302
326
 
303
- <li class="odd ">
327
+ <li class="even ">
304
328
  <div class="item">
305
329
  <span class='object_link'><a href="VTTLine.html#time_start-instance_method" title="VTTLine#time_start (method)">#time_start</a></span>
306
330
  <small>VTTLine</small>
@@ -308,7 +332,7 @@
308
332
  </li>
309
333
 
310
334
 
311
- <li class="even ">
335
+ <li class="odd ">
312
336
  <div class="item">
313
337
  <span class='object_link'><a href="ASSFile.html#title-instance_method" title="ASSFile#title (method)">#title</a></span>
314
338
  <small>ASSFile</small>
@@ -316,7 +340,7 @@
316
340
  </li>
317
341
 
318
342
 
319
- <li class="odd ">
343
+ <li class="even ">
320
344
  <div class="item">
321
345
  <span class='object_link'><a href="ASSLine.html#toSubsTime-instance_method" title="ASSLine#toSubsTime (method)">#toSubsTime</a></span>
322
346
  <small>ASSLine</small>
@@ -324,7 +348,7 @@
324
348
  </li>
325
349
 
326
350
 
327
- <li class="even ">
351
+ <li class="odd ">
328
352
  <div class="item">
329
353
  <span class='object_link'><a href="ASSFile.html#to_s-instance_method" title="ASSFile#to_s (method)">#to_s</a></span>
330
354
  <small>ASSFile</small>
@@ -332,7 +356,7 @@
332
356
  </li>
333
357
 
334
358
 
335
- <li class="odd ">
359
+ <li class="even ">
336
360
  <div class="item">
337
361
  <span class='object_link'><a href="ASSLine.html#to_s-instance_method" title="ASSLine#to_s (method)">#to_s</a></span>
338
362
  <small>ASSLine</small>
@@ -340,7 +364,7 @@
340
364
  </li>
341
365
 
342
366
 
343
- <li class="even ">
367
+ <li class="odd ">
344
368
  <div class="item">
345
369
  <span class='object_link'><a href="VTTFile.html#to_s-instance_method" title="VTTFile#to_s (method)">#to_s</a></span>
346
370
  <small>VTTFile</small>
@@ -348,7 +372,7 @@
348
372
  </li>
349
373
 
350
374
 
351
- <li class="odd ">
375
+ <li class="even ">
352
376
  <div class="item">
353
377
  <span class='object_link'><a href="VTTLine.html#to_s-instance_method" title="VTTLine#to_s (method)">#to_s</a></span>
354
378
  <small>VTTLine</small>
@@ -356,7 +380,7 @@
356
380
  </li>
357
381
 
358
382
 
359
- <li class="even ">
383
+ <li class="odd ">
360
384
  <div class="item">
361
385
  <span class='object_link'><a href="ASSStyle.html#to_s-instance_method" title="ASSStyle#to_s (method)">#to_s</a></span>
362
386
  <small>ASSStyle</small>
@@ -364,6 +388,14 @@
364
388
  </li>
365
389
 
366
390
 
391
+ <li class="even ">
392
+ <div class="item">
393
+ <span class='object_link'><a href="MainCommand.html#version-instance_method" title="MainCommand#version (method)">#version</a></span>
394
+ <small>MainCommand</small>
395
+ </div>
396
+ </li>
397
+
398
+
367
399
  <li class="odd ">
368
400
  <div class="item">
369
401
  <span class='object_link'><a href="ASSStyleParams.html#vertical_margin-instance_method" title="ASSStyleParams#vertical_margin (method)">#vertical_margin</a></span>
@@ -86,7 +86,7 @@
86
86
 
87
87
 
88
88
 
89
- <strong class="classes">Classes:</strong> <span class='object_link'><a href="ASSFile.html" title="ASSFile (class)">ASSFile</a></span>, <span class='object_link'><a href="ASSLine.html" title="ASSLine (class)">ASSLine</a></span>, <span class='object_link'><a href="ASSStyle.html" title="ASSStyle (class)">ASSStyle</a></span>, <span class='object_link'><a href="ASSStyleParams.html" title="ASSStyleParams (class)">ASSStyleParams</a></span>, <span class='object_link'><a href="Application.html" title="Application (class)">Application</a></span>, <span class='object_link'><a href="VTTFile.html" title="VTTFile (class)">VTTFile</a></span>, <span class='object_link'><a href="VTTLine.html" title="VTTLine (class)">VTTLine</a></span>
89
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="ASSFile.html" title="ASSFile (class)">ASSFile</a></span>, <span class='object_link'><a href="ASSLine.html" title="ASSLine (class)">ASSLine</a></span>, <span class='object_link'><a href="ASSStyle.html" title="ASSStyle (class)">ASSStyle</a></span>, <span class='object_link'><a href="ASSStyleParams.html" title="ASSStyleParams (class)">ASSStyleParams</a></span>, <span class='object_link'><a href="Application.html" title="Application (class)">Application</a></span>, <span class='object_link'><a href="MainCommand.html" title="MainCommand (class)">MainCommand</a></span>, <span class='object_link'><a href="VTTFile.html" title="VTTFile (class)">VTTFile</a></span>, <span class='object_link'><a href="VTTLine.html" title="VTTLine (class)">VTTLine</a></span>
90
90
 
91
91
 
92
92
  </p>
@@ -102,9 +102,9 @@
102
102
  </div>
103
103
 
104
104
  <div id="footer">
105
- Generated on Tue Mar 23 21:07:02 2021 by
105
+ Generated on Mon Nov 22 21:50:10 2021 by
106
106
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
- 0.9.26 (ruby-3.0.0).
107
+ 0.9.26 (ruby-3.0.2).
108
108
  </div>
109
109
 
110
110
  </div>
data/exe/vtt2ass CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'vtt2ass'
4
- Vtt2ass::main
4
+ MainCommand.start
@@ -9,9 +9,9 @@ class Application
9
9
  ##
10
10
  # Creates a new Application instance.
11
11
  # It receives +options+ that can define the input and output directories.
12
- def initialize(options)
13
- @input = options[:input] ? options[:input].gsub('\\', '/').delete_suffix('/') : "."
14
- @output = options[:output] ? options[:output].gsub('\\', '/').delete_suffix('/') : "."
12
+ def initialize(input, options)
13
+ @input = input ? input.gsub('\\', '/').delete_suffix('/') : "."
14
+ @output = options[:output] ? options[:output].gsub('\\', '/').delete_suffix('/') : nil
15
15
  @width = 1920
16
16
  @height = 1080
17
17
  @font_family = options[:font_family] ? options[:font_family] : 'Open Sans Semibold'
@@ -41,7 +41,9 @@ class Application
41
41
 
42
42
  def convert(input_path)
43
43
  ass_file = vtt_to_ass(input_path)
44
- ass_file.writeToFile(@output + '/' + File.basename(input_path).gsub('.vtt', '.ass')) unless @noout
44
+ if (not @output.nil?) then
45
+ ass_file.writeToFile(@output + '/' + File.basename(input_path).gsub('.vtt', '.ass'))
46
+ end
45
47
  puts ass_file.to_s unless @quiet
46
48
  end
47
49
 
@@ -13,10 +13,18 @@ class VTTFile
13
13
  @lines = []
14
14
  separator = determine_line_ending(file_path) ? "\n\n" : "\r\n\r\n"
15
15
  count = 0
16
+ style_count = 1
16
17
  File.foreach(file_path, separator) do |paragraph|
17
18
  paragraph = paragraph.rstrip.gsub(/[\r\n]/, "\n")
18
19
  if not paragraph.eql? "" then
19
20
  vtt_line = VTTLine.new(paragraph, width, height)
21
+ if vtt_line.style.eql? 'Main' and
22
+ not vtt_line.params.to_s.empty? and
23
+ (not vtt_line.params.to_s.eql? 'align:middle' and
24
+ not vtt_line.params.to_s.eql? 'align:center') then
25
+ vtt_line.style = "Style#{style_count}"
26
+ style_count += 1
27
+ end
20
28
  @lines.push(vtt_line)
21
29
  count += 1
22
30
  end
@@ -24,6 +32,8 @@ class VTTFile
24
32
  @lines.shift
25
33
  end
26
34
 
35
+ ##
36
+ # This method determines the line ending character to use as a separator.
27
37
  def determine_line_ending(file_path)
28
38
  File.open(file_path, 'r') do |file|
29
39
  return file.readline[/\r?\n$/] == "\n"
@@ -1,7 +1,8 @@
1
1
  ##
2
2
  # This class defines a VTT subtile line.
3
3
  class VTTLine
4
- attr_reader :style, :time_start, :time_end, :params, :text
4
+ attr_accessor :style
5
+ attr_reader :time_start, :time_end, :params, :text
5
6
 
6
7
  ##
7
8
  # This method creates an instance of an VTTLine.
@@ -24,7 +25,7 @@ class VTTLine
24
25
  @params = m[3]
25
26
  ass_style = ASSStyleParams.new(@params, width, height)
26
27
  if @style.eql? 'Main' and ass_style.alignment == 8 then
27
- @style = "MainTop"
28
+ @style = 'MainTop'
28
29
  end
29
30
  else
30
31
  @text += line + "\n"
@@ -4,5 +4,5 @@ module Vtt2ass
4
4
  ##
5
5
  # This is the version of the application.
6
6
  # This needs to be changed for each gem release.
7
- VERSION = "0.2.13"
7
+ VERSION = "0.2.14"
8
8
  end
data/lib/vtt2ass.rb CHANGED
@@ -1,110 +1,28 @@
1
1
  # Imports
2
- require 'tty-option'
2
+ require 'thor'
3
3
 
4
4
  # Relative imports
5
5
  require_relative 'vtt2ass/version'
6
6
  require_relative 'vtt2ass/Application'
7
7
 
8
- class Command
9
- include TTY::Option
10
-
11
- usage do
12
- header 'VTT2ASS'
13
- program 'vtt2ass'
14
- command ''
15
- desc 'Convert VTT subtitles to ASS subtitles'
16
- example "Convert files in a specific directory",
17
- " $ vtt2ass ./path/to/file_input ./path/to/file_output"
18
- end
19
-
20
- # ------------------------------
21
- # Arguments
22
- # ------------------------------
23
-
24
- argument :input do
25
- optional
26
- desc "Input directory or file (default: current directory)"
27
- end
28
-
29
- argument :output do
30
- optional
31
- desc "Output directory (default: console output)"
32
- end
33
-
34
- # ------------------------------
35
- # Flags
36
- # ------------------------------
37
-
38
- flag :help do
39
- short "-h"
40
- long "--help"
41
- desc "Print usage"
42
- end
43
-
44
- flag :version do
45
- short "-v"
46
- long "--version"
47
- desc "Show version"
48
- end
49
-
50
- flag :quiet do
51
- short "-q"
52
- long "--quiet"
53
- desc "Prevent the command from outputing to the console"
54
- end
55
-
56
- flag :noout do
57
- short "-x"
58
- long "--noout"
59
- desc "Prevents the command from writing the resulting file(s) to the output folder"
60
- end
61
-
62
- # ------------------------------
63
- # Options
64
- # ------------------------------
65
-
66
- option :title do
67
- optional
68
- short "-t STRING"
69
- long "--title STRING"
70
- desc "Specify a title for you file. If the input is a directory, all files will share the same title."
8
+ class MainCommand < Thor
9
+ def self.exit_on_failure?
10
+ true
71
11
  end
72
12
 
73
- option :font_size do
74
- optional
75
- short "-s INTEGER"
76
- long "--font-size INTEGER"
77
- desc "Specify a font size for the subtitles (default: 52)"
13
+ desc 'convert INPUT', 'Run the VTT to ASS conversion for the specified file(s)'
14
+ method_option :output, :aliases => '-o', :desc => 'Output directory of the converted file' , :lazy_default => './', :type => :string
15
+ method_option :title, :aliases => '-t', :desc => 'Specify a title for you file. If the input is a directory, all files will share the same title.', :type => :string
16
+ method_option :font_size, :aliases => '-s', :desc => 'Specify a font size for the subtitles', :default => 52, :type => :numeric
17
+ method_option :font_family, :aliases => '-f', :desc => 'Specify a font family for the subtitles', :default => 'Open Sans Semibold', :type => :string
18
+ method_option :quiet, :aliases => '-q', :desc => 'Don\'t output to the console', :type => :boolean
19
+ def convert(input)
20
+ app = Application.new(input, options)
21
+ app.start
78
22
  end
79
23
 
80
- option :font_family do
81
- optional
82
- short "-f STRING"
83
- long "--font-family STRING"
84
- desc "Specify a font family for the subtitles (default: 'Open Sans Semibold')"
24
+ desc 'version', 'Show version'
25
+ def version
26
+ puts Vtt2ass::VERSION
85
27
  end
86
-
87
- def run
88
- if params[:help] then
89
- print help
90
- exit
91
- elsif params[:version] then
92
- puts Vtt2ass::VERSION
93
- exit
94
- else
95
- runner = Application.new(params)
96
- # pp params.to_h
97
- runner.start
98
- end
99
- end
100
- end
101
-
102
- module Vtt2ass
103
- def main
104
- app = Command.new
105
- app.parse
106
- app.run
107
- end
108
-
109
- module_function :main
110
28
  end