bathyscaphe 0.1.4 → 0.1.5
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/README.md +3 -0
 - data/lib/bathyscaphe.rb +7 -1
 - data/lib/bathyscaphe/config.rb +11 -3
 - data/lib/bathyscaphe/tvdb.rb +29 -11
 - data/lib/bathyscaphe/version.rb +1 -1
 - metadata +2 -2
 
    
        data/README.md
    CHANGED
    
    
    
        data/lib/bathyscaphe.rb
    CHANGED
    
    
    
        data/lib/bathyscaphe/config.rb
    CHANGED
    
    | 
         @@ -5,7 +5,11 @@ require 'yaml' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            CONFIG_FILENAME  = File.expand_path("~/.config/bathyscaphe/bathyscaphe.conf")
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            CONFIG_DEFAULTS = {
         
     | 
| 
       8 
     | 
    
         
            -
              : 
     | 
| 
      
 8 
     | 
    
         
            +
              :consumer_key => "",
         
     | 
| 
      
 9 
     | 
    
         
            +
              :consumer_secret => "",
         
     | 
| 
      
 10 
     | 
    
         
            +
              :oauth_token => "",
         
     | 
| 
      
 11 
     | 
    
         
            +
              :oauth_token_secret => "",
         
     | 
| 
      
 12 
     | 
    
         
            +
              :username => ""
         
     | 
| 
       9 
13 
     | 
    
         
             
            }
         
     | 
| 
       10 
14 
     | 
    
         | 
| 
       11 
15 
     | 
    
         
             
            module Bathyscaphe
         
     | 
| 
         @@ -16,12 +20,16 @@ module Bathyscaphe 
     | 
|
| 
       16 
20 
     | 
    
         
             
                }
         
     | 
| 
       17 
21 
     | 
    
         | 
| 
       18 
22 
     | 
    
         
             
                def self.parse_options
         
     | 
| 
      
 23 
     | 
    
         
            +
                  options = {}
         
     | 
| 
       19 
24 
     | 
    
         
             
                  optparser = OptionParser.new do |opts|
         
     | 
| 
       20 
25 
     | 
    
         
             
                    opts.set_summary_indent('  ')
         
     | 
| 
       21 
26 
     | 
    
         
             
                    opts.banner = "Usage: #{File.basename($0)} [OPTIONS] TV_SHOW"
         
     | 
| 
       22 
27 
     | 
    
         
             
                    # opts.on( "-s", "--source SOURCE", String, "Set source to download subtitles from","Current: #{self.source}" ) { |o| self.source = o ; self.save }
         
     | 
| 
       23 
28 
     | 
    
         
             
                    opts.on( "-d", "--dry-run", "Parse filename but do not download anything") { |o| OPTIONS[:dry_run] = o}
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
                    opts.on( "-v", "--version", "Show version") do
         
     | 
| 
      
 30 
     | 
    
         
            +
                      options[:version] = true
         
     | 
| 
      
 31 
     | 
    
         
            +
                      puts Bathyscaphe::VERSION
         
     | 
| 
      
 32 
     | 
    
         
            +
                    end
         
     | 
| 
       25 
33 
     | 
    
         
             
                    opts.on_tail( "-h", "--help", "Show usage") do
         
     | 
| 
       26 
34 
     | 
    
         
             
                      puts opts
         
     | 
| 
       27 
35 
     | 
    
         
             
                      exit
         
     | 
| 
         @@ -31,7 +39,7 @@ module Bathyscaphe 
     | 
|
| 
       31 
39 
     | 
    
         
             
                  begin
         
     | 
| 
       32 
40 
     | 
    
         
             
                    optparser.parse!
         
     | 
| 
       33 
41 
     | 
    
         
             
                    if ARGV.empty?
         
     | 
| 
       34 
     | 
    
         
            -
                      puts optparser
         
     | 
| 
      
 42 
     | 
    
         
            +
                      puts optparser unless options[:version]
         
     | 
| 
       35 
43 
     | 
    
         
             
                      exit
         
     | 
| 
       36 
44 
     | 
    
         
             
                    else
         
     | 
| 
       37 
45 
     | 
    
         
             
                      tv_show = ARGV[0]
         
     | 
    
        data/lib/bathyscaphe/tvdb.rb
    CHANGED
    
    | 
         @@ -3,27 +3,45 @@ module Bathyscaphe 
     | 
|
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
                TVREGEXP1 = /(.*)S([0-9]{2})E([0-9]{2}).*/i
         
     | 
| 
       5 
5 
     | 
    
         
             
                TVREGEXP2 = /(.*).([0-9]{1,2})x([0-9]{1,2}).*/i
         
     | 
| 
      
 6 
     | 
    
         
            +
                TVREGEXP3 = /(.*)Season\s*([0-9]{1,2})\s*Episode\s*([0-9]{1,2}).*/i
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                TVREGEXP4 = /.*\/(.*)\/Season\s*([0-9]{1,2})\/([0-9]{1,2}).*/i
         
     | 
| 
      
 9 
     | 
    
         
            +
                TVREGEXP5 = /.*\/(.*)\/Season\s*([0-9]{1,2})\/.*S(?:[0-9]{2})E([0-9]{2}).*/i
         
     | 
| 
       6 
10 
     | 
    
         | 
| 
       7 
11 
     | 
    
         
             
                attr_accessor :name, :season, :episode
         
     | 
| 
       8 
12 
     | 
    
         | 
| 
       9 
13 
     | 
    
         
             
                def initialize filename, filedir
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                    @episode = md 
     | 
| 
       16 
     | 
    
         
            -
                   
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  wholefile = File.join(filedir, filename)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  @name = @season = @episode = nil
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  if md = filename.match(TVREGEXP1) || md = filename.match(TVREGEXP2) || md = filename.match(TVREGEXP3)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    @name, @season, @episode = get_from_md(md)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  end
         
     | 
| 
      
 21 
     | 
    
         
            +
                  return unless [@name, @season, @episode].collect(&:blank?).any?
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  if md = wholefile.match(TVREGEXP4) || md = wholefile.match(TVREGEXP5)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    @name, @season, @episode = get_from_md(md)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                  return unless [@name, @season, @episode].collect(&:blank?).any?
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  if md = filedir.split("/").last.match(/(.*)Season(.*)/i)  
         
     | 
| 
       17 
29 
     | 
    
         
             
                    @name = md[1].gsub(/[-.]+/i, ' ').gsub("'", '').strip
         
     | 
| 
       18 
30 
     | 
    
         
             
                    @season = md[2].strip.scan(/^(\d+).*/).flatten.last.to_i.to_s
         
     | 
| 
       19 
31 
     | 
    
         
             
                    if namemd = filename.match(/(\d*).*/)
         
     | 
| 
       20 
32 
     | 
    
         
             
                      @episode = namemd[1].to_i.to_s
         
     | 
| 
       21 
     | 
    
         
            -
                    else
         
     | 
| 
       22 
     | 
    
         
            -
                      raise("Cant't parse filename")  
         
     | 
| 
       23 
33 
     | 
    
         
             
                    end
         
     | 
| 
       24 
     | 
    
         
            -
                  else
         
     | 
| 
       25 
     | 
    
         
            -
                    raise("Cant't parse filename")
         
     | 
| 
       26 
34 
     | 
    
         
             
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                def get_from_md(md)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  name = md[1].gsub(/[-.]+/i, " ").strip
         
     | 
| 
      
 40 
     | 
    
         
            +
                  name = "Castle" if name =~ /Castle 2009/i
         
     | 
| 
      
 41 
     | 
    
         
            +
                  name = "Missing (2012)" if name =~ /Missing 2012/i
         
     | 
| 
      
 42 
     | 
    
         
            +
                  season = md[2].to_i.to_s
         
     | 
| 
      
 43 
     | 
    
         
            +
                  episode = md[3].to_i.to_s
         
     | 
| 
      
 44 
     | 
    
         
            +
                  return name, season, episode
         
     | 
| 
       27 
45 
     | 
    
         
             
                end
         
     | 
| 
       28 
46 
     | 
    
         
             
              end
         
     | 
| 
       29 
47 
     | 
    
         
             
            end
         
     | 
    
        data/lib/bathyscaphe/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bathyscaphe
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.5
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,7 +9,7 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-10-30 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: nokogiri
         
     |