deepl-srt 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fc7aa689e44c0c210dea218cc96ff9d2ab6cf139cf23dbec6b8dd6185f579ab1
4
- data.tar.gz: 62e5bf5c573f35b7ab1f0a24ea07f604a30df9693f5522de33d3b6d89a7bbf68
3
+ metadata.gz: 041c6c0d7cc8a119bca0fca2c85773c1c33bf585c8be7abd44bd90dbfa682392
4
+ data.tar.gz: 3d54618cf8d7e56d93c4ad19680c13942365609917b5334a87eb5c91392c2f8f
5
5
  SHA512:
6
- metadata.gz: 1a97eb350ec054b2ba2e636b9942e04d5ed8a48c82dccd06892bdf046afac84727c691468739a0092e9addcbc4df8cb818165257fb02479980c0a369f289f335
7
- data.tar.gz: a1ef9dc12ca8f9d7693f70a2d440202992c4cd2ff2251938297a89afc10956d619547d1e775a41ace816741e8a2404d2934c395dc8a354a6c2155dd8748acaa3
6
+ metadata.gz: ce490c98abfd551bb2d1f39cd0fb6d46d38674f34d5d26de298834737db2ea6c9960671982a0b98a1ea70e0c3057085faf920661caea0de9809f473dec6e0abf
7
+ data.tar.gz: a3d699287177dd5ed8127953e0b9f745efa8d262dc756071067cc6941ff983d57ea243e9f5b3663fb60beb6a4eb3c5126d026fb74e51fb7956c04f5b398a7fee
data/CHANGELOG.md CHANGED
@@ -1,4 +1,5 @@
1
1
  0.1.0 init release
2
2
  0.1.1 improvement in line translation
3
3
  0.1.2 split line every 6 words
4
- 0.1.3 fix
4
+ 0.1.3 fix
5
+ 0.1.4 from line argument
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- deepl-srt (0.1.3)
4
+ deepl-srt (0.1.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/deepl-srt.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['lukasz@fuszara.pl']
10
10
 
11
11
  spec.summary = 'Subtitles translator with DeepL engine'
12
- spec.description = 'deepl_srt [api_key] [target_lang] [input path] [result_path]'
12
+ spec.description = 'deepl_srt [api_key] [target_lang] [input_path] [result_path] [form_line]'
13
13
  spec.homepage = 'https://github.com/lfuszara1/srt-deepl'
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
File without changes
@@ -0,0 +1,15 @@
1
+ 1
2
+ 00:00:00,498 --> 00:00:02,827
3
+ - Oto, co najbardziej lubię w
4
+ jedzeniu i diecie.
5
+
6
+ 2
7
+ 00:00:02,827 --> 00:00:06,383
8
+ Wszyscy jemy kilka razy dziennie i
9
+ jesteśmy całkowicie odpowiedzialni za to
10
+
11
+ 3
12
+ 00:00:06,383 --> 00:00:09,427
13
+ co trafia na nasz talerz, a
14
+ co z niego schodzi.
15
+
data/exe/deepl_srt ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'deepl_srt'
5
+
6
+ input_params = ARGV
7
+
8
+ if input_params.empty?
9
+ puts 'deepl_srt [api_key] [target_lang] [input_path] [result_path] [form_line]'
10
+ else
11
+ api_key = input_params[0]
12
+ target_lang = input_params[1]
13
+ input_path = input_params[2]
14
+ result_path = input_params[3]
15
+ if input_params[4].nil?
16
+ from_line = 0
17
+ else
18
+ from_line = input_params[4]
19
+ end
20
+
21
+ DeeplSrt.deepl_srt(api_key, target_lang, input_path, result_path, from_line)
22
+ end
data/lib/deepl_srt.rb CHANGED
@@ -7,9 +7,8 @@ require_relative './deepl_srt/srt_translate'
7
7
  module DeeplSrt
8
8
  class Error < StandardError; end
9
9
 
10
- def self.deepl_srt(api_key, path, target_lang, result_path)
11
- srt_translate = SrtTranslate.new(api_key, path, target_lang)
12
- result = srt_translate.parse
13
- File.open(result_path, 'w') { |file| file.write(result) }
10
+ def self.deepl_srt(api_key, target_lang, input_path, result_path, from_line)
11
+ srt_translate = SrtTranslate.new(api_key, target_lang, input_path, result_path)
12
+ srt_translate.parse(from_line)
14
13
  end
15
14
  end
@@ -11,7 +11,7 @@ class DeeplRequest
11
11
  @api_key = api_key
12
12
  end
13
13
 
14
- def request(text, target_lang)
14
+ def request(target_lang, text)
15
15
  Net::HTTP.post_form(@uri, 'auth_key' => @api_key,
16
16
  'text' => text,
17
17
  'target_lang' => target_lang,
@@ -1,21 +1,25 @@
1
1
  # frozen_string_literal: false
2
2
 
3
+ require 'fileutils'
3
4
  require 'json'
4
5
  require 'srt'
5
6
  require_relative './deepl_request'
6
7
 
7
8
  # Class to translate subtitles
8
9
  class SrtTranslate
9
- def initialize(api_key, path, target_lang)
10
- @file = SRT::File.parse(File.new(path))
10
+ def initialize(api_key, target_lang, input_path, result_path)
11
+ @file = SRT::File.parse(File.new(input_path))
11
12
  @deepl_request = DeeplRequest.new(api_key)
12
13
  @target_lang = target_lang
14
+ FileUtils.rm(result_path) if File.exist?(result_path)
15
+ FileUtils.touch(result_path)
16
+ @result_path = result_path
13
17
  end
14
18
 
15
- def parse
19
+ def parse(from_line)
16
20
  @new_content = ''
17
- @file.lines.each_with_index do |line, index|
18
- @new_content << parse_part(line, index)
21
+ @file.lines.drop(from_line.to_i).each_with_index do |line, index|
22
+ @new_content << parse_part(line, index + from_line.to_i)
19
23
  end
20
24
  @new_content
21
25
  end
@@ -24,20 +28,24 @@ class SrtTranslate
24
28
 
25
29
  def parse_part(line, index)
26
30
  str = ''
27
- str << "#{index}\n"
31
+ str << "#{index + 1}\n"
28
32
  str << "#{line.time_str}\n"
29
33
  json = translate(line.text.join('\n'))
30
34
  result = shorter(JSON.parse(json)['translations'][0]['text'])
31
35
  str << "#{result}\n\n"
32
- str
36
+ save_line(str)
33
37
  end
34
38
 
35
39
  def translate(text)
36
- @deepl_request.request(text, @target_lang).body
40
+ @deepl_request.request(@target_lang, text).body
37
41
  end
38
42
 
39
43
  def shorter(line)
40
44
  short = line.split.each_slice(6).map { |a| a.join ' ' }
41
45
  short.join("\n")
42
46
  end
47
+
48
+ def save_line(line)
49
+ File.open(@result_path, 'a+') { |file| file.write(line) }
50
+ end
43
51
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DeeplSrt
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deepl-srt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Łukasz Fuszara
@@ -10,11 +10,11 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2021-05-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: deepl_srt [api_key] [target_lang] [input path] [result_path]
13
+ description: deepl_srt [api_key] [target_lang] [input_path] [result_path] [form_line]
14
14
  email:
15
15
  - lukasz@fuszara.pl
16
16
  executables:
17
- - deepl_srt.rb
17
+ - deepl_srt
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
@@ -32,8 +32,9 @@ files:
32
32
  - bin/console
33
33
  - bin/setup
34
34
  - deepl-srt.gemspec
35
- - examples/example.srt
36
- - exe/deepl_srt.rb
35
+ - examples/example.input.srt
36
+ - examples/example.output.tmp
37
+ - exe/deepl_srt
37
38
  - lib/deepl_srt.rb
38
39
  - lib/deepl_srt/deepl_request.rb
39
40
  - lib/deepl_srt/srt_translate.rb
data/exe/deepl_srt.rb DELETED
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require 'deepl_srt'
5
-
6
- input_params = ARGV
7
-
8
- if input_params.empty?
9
- puts 'deepl_srt [api_key] [target_lang] [input path] [result_path]'
10
- else
11
- api_key = input_params[0]
12
- target_lang = input_params[1]
13
- path = input_params[2]
14
- result_path = input_params[3]
15
-
16
- DeeplSrt.deepl_srt(api_key, path, target_lang, result_path)
17
- end