subtitle 0.1.7 → 0.1.8
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 +4 -4
- data/lib/scc.rb +77 -0
- metadata +5 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: aba6a9f70a40bf96fd797a6a68816ca2e3070f93573d26dbbb1df4b12a47d691
         | 
| 4 | 
            +
              data.tar.gz: 1f61c3bb5a4ec42ca6fe694c9e1bac4d805d21d7f057b6f45a4c51ac0671e287
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e996202bdd3ee2c8860b51aa6c5e414b9eea4735355c5b8f9d58f90ce67105fb1fafd781ae3e7375215ae8d364c9dfd0caa6dc3d73fd9f0257bb2748b945badc
         | 
| 7 | 
            +
              data.tar.gz: 5bfdf76e39dfc65a4ef5e5e288b74aa3e098fe358c402214300710b7b614d8c444053ed7dcdc3e012327d6c7b33d6d91db8701e06c39d6232dfdde42197d3e17
         | 
    
        data/lib/scc.rb
    ADDED
    
    | @@ -0,0 +1,77 @@ | |
| 1 | 
            +
            require 'aws-sdk-translate'
         | 
| 2 | 
            +
            require 'aws-sdk-comprehend'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class SCC
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              def initialize(awskey, awssecret)
         | 
| 7 | 
            +
                @translate = Aws::Translate::Client.new(:access_key_id => "#{awskey}", :secret_access_key => "#{awssecret}")
         | 
| 8 | 
            +
                @comp = Aws::Comprehend::Client.new(:access_key_id => "#{awskey}", :secret_access_key => "#{awssecret}")
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              def get_text(srt_file, num_chars)
         | 
| 12 | 
            +
                ccfile = File.open(srt_file, 'r:UTF-8', &:read)
         | 
| 13 | 
            +
                text_sample = ""
         | 
| 14 | 
            +
                ccfile.each_line do | line |
         | 
| 15 | 
            +
                  if line =~ /^\d\d:\d\d:\d\d:\d\d\s/
         | 
| 16 | 
            +
                    scc_text_code = line.gsub(/^\d\d:\d\d:\d\d:\d\d\s/, '')
         | 
| 17 | 
            +
                    text_sample << decode(scc_text_code)
         | 
| 18 | 
            +
                    if text_sample.length > (num_chars+1)
         | 
| 19 | 
            +
                      break
         | 
| 20 | 
            +
                    end
         | 
| 21 | 
            +
                  end
         | 
| 22 | 
            +
                end
         | 
| 23 | 
            +
                return text_sample[0,num_chars]
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              def decode(scc_code_text)
         | 
| 27 | 
            +
                hex_codes = scc_code_text.gsub(/\s/,'').scan(/.{2}/)
         | 
| 28 | 
            +
                decoded_text = ""
         | 
| 29 | 
            +
                skip_next = false
         | 
| 30 | 
            +
                skip_count = 0
         | 
| 31 | 
            +
                hex_codes.each do | code |
         | 
| 32 | 
            +
                  if ["94", "91", "92", "97", "15", "16", "10", "13"].include?(code)
         | 
| 33 | 
            +
                    skip_next = true
         | 
| 34 | 
            +
                    skip_count = skip_count +1
         | 
| 35 | 
            +
                    next
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                  if skip_count == 1 && skip_next
         | 
| 38 | 
            +
                    skip_next = false
         | 
| 39 | 
            +
                    skip_count = 0
         | 
| 40 | 
            +
                    next
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  dec_val = code.to_i(16) & 0x7F
         | 
| 43 | 
            +
                  decoded_text << dec_val.chr
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
                decoded_text
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              def encode(free_text)
         | 
| 49 | 
            +
                encoded_str = ""
         | 
| 50 | 
            +
                count = 0
         | 
| 51 | 
            +
                free_text.each_byte do |char|
         | 
| 52 | 
            +
                  count += 1
         | 
| 53 | 
            +
                  binval = char.to_s(2).count("1") % 2 == 0 ? (char.to_i | 128 ).to_s(2) : char.to_s(2)
         | 
| 54 | 
            +
                  encode_char = binval.to_i(2).to_s(16)
         | 
| 55 | 
            +
                  if ((count > 0) && (count % 2 == 0))
         | 
| 56 | 
            +
                    encoded_str << encode_char << " "
         | 
| 57 | 
            +
                  else
         | 
| 58 | 
            +
                    encoded_str << encode_char
         | 
| 59 | 
            +
                  end
         | 
| 60 | 
            +
                end
         | 
| 61 | 
            +
                encoded_str
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              def detect_lang(scc_file)
         | 
| 65 | 
            +
                lang = nil
         | 
| 66 | 
            +
                begin
         | 
| 67 | 
            +
                  sample_text = get_text(scc_file, 100)
         | 
| 68 | 
            +
                  response = @comp.detect_dominant_language( {
         | 
| 69 | 
            +
                                                                 text: "#{sample_text}"
         | 
| 70 | 
            +
                                                             })
         | 
| 71 | 
            +
                  lang = response[:languages][0][:language_code] rescue nil
         | 
| 72 | 
            +
                rescue => error
         | 
| 73 | 
            +
                  puts "Error while detecting the language!!"
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
                lang
         | 
| 76 | 
            +
              end
         | 
| 77 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: subtitle
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Maheshwaran G
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-10- | 
| 11 | 
            +
            date: 2019-10-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -59,6 +59,7 @@ executables: [] | |
| 59 59 | 
             
            extensions: []
         | 
| 60 60 | 
             
            extra_rdoc_files: []
         | 
| 61 61 | 
             
            files:
         | 
| 62 | 
            +
            - lib/scc.rb
         | 
| 62 63 | 
             
            - lib/srt.rb
         | 
| 63 64 | 
             
            - lib/subtitle.rb
         | 
| 64 65 | 
             
            - lib/vtt.rb
         | 
| @@ -87,5 +88,6 @@ rubyforge_project: | |
| 87 88 | 
             
            rubygems_version: 2.7.3
         | 
| 88 89 | 
             
            signing_key: 
         | 
| 89 90 | 
             
            specification_version: 4
         | 
| 90 | 
            -
            summary: subtitle  | 
| 91 | 
            +
            summary: subtitle helps you to detect language and translate closed caption to required
         | 
| 92 | 
            +
              language
         | 
| 91 93 | 
             
            test_files: []
         |