lib/inspector.rb in pirate-autonzb-0.3 vs lib/inspector.rb in pirate-autonzb-0.3.2

- old
+ new

@@ -1,71 +1,73 @@ require File.join(File.dirname(__FILE__), 'movie') class Inspector - attr_accessor :backup + attr_accessor :backup_path, :movies, :nzbs def initialize(paths, options = {}) @paths = paths.split(',').map { |p| p.gsub(/\/$/,'') } @options = options @options[:srt] = @options[:srt] ? @options[:srt].split(',') : ['none'] @options[:imdb_score] = @options[:imdb_score] ? @options[:imdb_score].to_f : 7.0 @options[:year] = @options[:year] ? @options[:year].to_i : 1950 - if @options[:backup] - @backup = @options[:backup].gsub(/\/$/,'') - @paths << @backup - end - @movies = [] initialize_movies + if @options[:backup] + @backup_path = @options[:backup].gsub(/\/$/,'') + @nzbs = [] + initialize_nzbs + @movies = @nzbs + @movies + end + $stdout.print "Movie criteria: imdb score >= #{@options[:imdb_score]}, year >= #{@options[:year]} and srt [#{@options[:srt].join(',')}]\n" end - def need?(movie) - if valid?(movie) - $stdout.print " => movie has required criteria " - if m = @movies.detect { |m| m == movie } - $stdout.print "but is already owned " + def need?(movie, not_validate = false, movies = @movies, log = true) + if not_validate || valid?(movie) + $stdout.print " => movie has required criteria " if log + if m = movies.detect { |m| m == movie } + $stdout.print "but is already owned " if log if srt_score(movie) > srt_score(m) - $stdout.print "but new movie has better subtitle: [#{movie.srt.join(',')}]\n" + $stdout.print "but new movie has better subtitle: [#{movie.srt.join(',')}]\n" if log true elsif srt_score(movie) == srt_score(m) if format_score(movie) > format_score(m) - $stdout.print "but new movie has better format: #{movie.format}\n" + $stdout.print "but new movie has better format: #{movie.format}\n" if log true elsif format_score(movie) == format_score(m) if source_score(movie) > source_score(m) - $stdout.print "but new movie has better source: #{movie.source}\n" + $stdout.print "but new movie has better source: #{movie.source}\n" if log true elsif source_score(movie) == source_score(m) if sound_score(movie) > sound_score(m) - $stdout.print "but new movie has better sound: #{movie.sound}\n" + $stdout.print "but new movie has better sound: #{movie.sound}\n" if log true else - $stdout.print "with same srt, format, source and sound\n" + $stdout.print "with same srt, format, source and sound\n" if log false end else - $stdout.print "with same srt, format and better source: #{m.source}\n" + $stdout.print "with same srt, format and better source: #{m.source}\n" if log false end else - $stdout.print "with same srt and better format: #{m.format}\n" + $stdout.print "with same srt and better format: #{m.format}\n" if log false end else - $stdout.print "with better subtitle: [#{m.srt.join(',')}]\n" + $stdout.print "with better subtitle: [#{m.srt.join(',')}]\n" if log false end else - $stdout.print "and is not already owned\n" + $stdout.print "and is not already owned\n" if log true end else - $stdout.print " => movie doesn't have required criteria\n" + $stdout.print " => movie doesn't have required criteria\n" if log false end end def self.growl(title, msg, pri = 0) @@ -78,17 +80,22 @@ @paths.each do |path| old_movies_size = @movies.size base_dir = clean_dir(Dir.new(path)) base_dir.each do |movie| movie_path = "#{path}/#{movie}" - @movies << Movie.new(movie) if File.directory?(movie_path) || File.extname(movie_path) == '.nzb' + @movies << Movie.new(movie, :path => movie_path) if File.directory?(movie_path) end - if path == @backup - $stdout.print "Found #{@movies.size - old_movies_size} backuped nzb(s) in #{path}\n" - else - $stdout.print "Found #{@movies.size - old_movies_size} movie(s) in #{path}\n" - end + $stdout.print "Found #{@movies.size - old_movies_size} movie(s) in #{path}\n" end + end + + def initialize_nzbs + base_dir = clean_dir(Dir.new(@backup_path)) + base_dir.each do |nzb| + nzb_path = "#{@backup_path}/#{nzb}" + @nzbs << Movie.new(nzb, :path => nzb_path) if File.extname(nzb_path) == '.nzb' + end + $stdout.print "Found #{@nzbs.size} backuped nzb(s) in #{@backup_path}\n" end def clean_dir(dir) dir.select { |e| !["..", ".", ".DS_Store"].include?(e) } end \ No newline at end of file