pirate-autonzb 0.5.1 → 0.5.2

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/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'rubygems'
3
3
  require 'rake'
4
4
  require 'echoe'
5
5
 
6
- Echoe.new('autonzb', '0.5.1') do |p|
6
+ Echoe.new('autonzb', '0.5.2') do |p|
7
7
  p.description = "Ruby tool to automatically download x264 HD nzb movies files from newzleech.com & nzbs.org"
8
8
  p.url = "http://github.com/pirate/autonzb"
9
9
  p.author = "Pirate"
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{autonzb}
5
- s.version = "0.5.1"
5
+ s.version = "0.5.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Pirate"]
9
- s.date = %q{2009-04-05}
9
+ s.date = %q{2009-04-15}
10
10
  s.default_executable = %q{autonzb}
11
11
  s.description = %q{Ruby tool to automatically download x264 HD nzb movies files from newzleech.com & nzbs.org}
12
12
  s.email = %q{pirate.2061@gmail.com}
@@ -54,6 +54,7 @@ begin
54
54
  :movie_paths => ARGV.flags.movies,
55
55
  :login => ARGV.flags.login,
56
56
  :pass => ARGV.flags.pass)
57
+ inspector.search_and_download
57
58
  rescue => e
58
59
  p e.to_s
59
60
  Inspector.growl("AutoNZB Error!", 'look into the console log')
@@ -4,9 +4,10 @@ require File.join(File.dirname(__FILE__), 'sites', 'nzbs', 'nzb')
4
4
 
5
5
  class Inspector
6
6
 
7
- attr_accessor :backup_path, :movies, :nzbs
7
+ attr_accessor :download_path, :backup_path, :movies, :nzbs
8
8
 
9
9
  def initialize(download_path, options = {})
10
+ @download_path = download_path.gsub(/\/$/,'')
10
11
  @paths = options[:movie_paths] ? options[:movie_paths].split(',').map { |p| p.gsub(/\/$/,'') } : []
11
12
  @options = options
12
13
  @options[:srt] = @options[:srt] ? (@options[:srt].split(',') - ["unknown"] + ['unknown']).uniq : nil
@@ -24,14 +25,41 @@ class Inspector
24
25
  end
25
26
 
26
27
  $stdout.print "Movie criteria: imdb score >= #{@options[:imdb_score]}, year >= #{@options[:year]}#{" and srt [#{@options[:srt].join(',')}]" if @options[:srt]}\n"
28
+ end
29
+
30
+ def search_and_download
31
+ if @options[:login] && @options[:pass]
32
+ site = Nzbs::NZB.new(@options)
33
+ parse_nzbs(site)
34
+ end
35
+ site = Newzleech::NZB.new(@options)
36
+ parse_nzbs(site)
27
37
 
28
- Nzbs::NZB.new(self, download_path, @options) if @options[:login] && @options[:pass]
29
- Newzleech::NZB.new(self, download_path, @options)
30
-
31
- keep_only_best_nzb if @backup_path
38
+ keep_only_best_nzbs if backup_path
39
+ end
40
+
41
+ def parse_nzbs(site)
42
+ site.nzbs.each do |movie|
43
+ $stdout.print "#{movie.dirname}, imdb score: #{movie.score}, age: #{movie.age} day(s)\n"
44
+ if need?(movie)
45
+ $stdout.print " => DOWNLOAD: #{movie.name} (#{movie.year})\n"
46
+ download(site, movie)
47
+ end
48
+ end
49
+ $stdout.print "No nzb found, maybe change -age or -page setting\n" if site.nzbs.empty?
50
+ end
51
+
52
+ def download(site, movie)
53
+ Tempfile.open("movie.nzb") do |tempfile|
54
+ tempfile.write(site.download(movie)) # download nzb
55
+ tempfile.close
56
+ File.copy(tempfile.path, "#{backup_path}/#{movie.dirname}.nzb") if backup_path
57
+ File.move(tempfile.path, "#{download_path}/#{movie.dirname}.nzb")
58
+ end
59
+ @movies << movie
32
60
  end
33
61
 
34
- def need?(movie, not_validate = false, movies = @movies, log = true)
62
+ def need?(movie, movies = @movies, not_validate = false, log = true)
35
63
  if not_validate || valid?(movie)
36
64
  $stdout.print " => movie has required criteria " if log
37
65
  if m = movies.detect { |m| m == movie }
@@ -151,11 +179,11 @@ private
151
179
  movie.format == 'DTS' ? 1 : 0
152
180
  end
153
181
 
154
- def keep_only_best_nzb
182
+ def keep_only_best_nzbs
155
183
  size = 0
156
184
  @nzbs.each do |nzb|
157
185
  nzbs = @nzbs.select { |item| item.path != nzb.path }
158
- unless need?(nzb, true, nzbs, false)
186
+ unless need?(nzb, nzbs, true, false)
159
187
  File.delete(nzb.path)
160
188
  size += 1
161
189
  end
@@ -35,7 +35,7 @@ class Movie
35
35
  end
36
36
 
37
37
  def dirname
38
- "#{name} (#{year}) #{tags.join(' ')} #{format} #{source} #{sound} #{encoding} #{lang} {#{imdb_id}} [#{srt.join(',')}]".gsub(/\s+/,' ')
38
+ "#{name} (#{year}) #{tags.join(' ')} #{format} #{source} #{sound} #{encoding} #{lang} {#{imdb_id}} [#{srt.join(',')}]".gsub(/\s+|\//,' ')
39
39
  end
40
40
 
41
41
  def <=>(other_movie)
@@ -8,24 +8,26 @@ module Newzleech
8
8
  class NZB
9
9
 
10
10
  URL = 'http://www.newzleech.com'
11
-
12
- attr_accessor :movies, :agent
13
-
14
- def initialize(inspector, download_path, options = {})
15
- @inspector, @download_path = inspector, download_path.gsub(/\/$/,'')
11
+
12
+ attr_accessor :nzbs
13
+
14
+ def initialize(options = {})
16
15
  @options = options
17
16
  @options[:age] ||= 160
18
17
  @options[:pages] ||= 2
19
18
 
20
19
  @nzb_urls = []
21
- @movies = []
20
+ @nzbs = []
22
21
 
23
22
  (1..(@options[:pages].to_i)).each do |page|
24
23
  @nzb_urls << "#{URL}?group=143&minage=&age=160&min=4000&max=max&q=&m=search&adv=1&offset=#{(page.to_i - 1) * 60}"
25
24
  end
26
25
 
27
26
  parse_newzleech
28
- parse_movies
27
+ end
28
+
29
+ def download(movie)
30
+ open(movie.nzb_link).read
29
31
  end
30
32
 
31
33
  private
@@ -47,7 +49,7 @@ module Newzleech
47
49
  if age <= @options[:age].to_f
48
50
  raw_name = clean_raw_name(raw_name)
49
51
  movie = Movie.new(raw_name, :nfo => nfo, :imdb_link => imdb_link, :nzb_link => nzb_link(table), :age => age)
50
- @movies << movie
52
+ @nzbs << movie
51
53
 
52
54
  $stdout.print '.'
53
55
  $stdout.flush
@@ -83,32 +85,11 @@ module Newzleech
83
85
  def nzb_link(table)
84
86
  (nzb = table.search("td.get a[@href^='?m=gen&dl=1']").first) && "#{URL}/#{nzb[:href]}"
85
87
  end
86
-
87
- def parse_movies
88
- movies.each do |movie|
89
- $stdout.print "#{movie.dirname}, imdb score: #{movie.score}, age: #{movie.age.to_i} day(s)\n"
90
- if @inspector.need?(movie)
91
- $stdout.print " => DOWNLOAD: #{movie.name} (#{movie.year})\n"
92
- download_nzb(movie, @inspector.backup_path)
93
- end
94
- @inspector.movies << movie
95
- end
96
- $stdout.print "No nzb found, maybe change -age or -page setting\n" if @movies.empty?
97
- end
98
-
99
- def download_nzb(movie, backup_path = nil)
100
- Tempfile.open("movie.nzb") do |tempfile|
101
- tempfile.write(open(movie.nzb_link).read) # download the nzb
102
- tempfile.close
103
- File.copy(tempfile.path, "#{backup_path}/#{movie.dirname}.nzb") if backup_path
104
- File.move(tempfile.path, "#{@download_path}/#{movie.dirname}.nzb")
105
- end
106
- end
107
-
88
+
108
89
  def parse_age(string)
109
90
  case string
110
91
  when /h/i
111
- string.to_f / 24
92
+ ((string.to_f / 24) * 10).to_i / 10.0
112
93
  when /d/i
113
94
  string.to_f
114
95
  end
@@ -12,16 +12,15 @@ module Nzbs
12
12
 
13
13
  URL = 'http://www.nzbs.org'
14
14
 
15
- attr_accessor :movies, :agent
15
+ attr_accessor :nzbs, :agent
16
16
 
17
- def initialize(inspector, download_path, options = {})
18
- @inspector, @download_path = inspector, download_path.gsub(/\/$/,'')
17
+ def initialize(options = {})
19
18
  @options = options
20
19
  @options[:age] ||= 160
21
20
  @options[:pages] ||= 2
22
21
 
23
22
  @nzb_urls = []
24
- @movies = []
23
+ @nzbs = []
25
24
 
26
25
  (1..(@options[:pages].to_i)).each do |page|
27
26
  @nzb_urls << "#{URL}/index.php?action=browse&catid=4&page=#{(page)}"
@@ -29,9 +28,12 @@ module Nzbs
29
28
 
30
29
  login
31
30
  parse_nzbs
32
- parse_movies
33
31
  end
34
-
32
+
33
+ def download(movie)
34
+ @agent.get_file(movie.nzb_link)
35
+ end
36
+
35
37
  private
36
38
 
37
39
  def login
@@ -64,7 +66,7 @@ module Nzbs
64
66
  :nzb_link => nzb_link(tr, page),
65
67
  :age => age,
66
68
  :nfo => @nfo)
67
- @movies << movie
69
+ @nzbs << movie
68
70
 
69
71
  $stdout.print '.'
70
72
  $stdout.flush
@@ -111,27 +113,6 @@ module Nzbs
111
113
  def nzb_link(tr, page)
112
114
  (a = tr.search("a.dlnzb").first) && "#{URL}/#{a[:href]}"
113
115
  end
114
-
115
- def parse_movies
116
- movies.each do |movie|
117
- $stdout.print "#{movie.dirname}, imdb score: #{movie.score}, age: #{movie.age} day(s)\n"
118
- if @inspector.need?(movie)
119
- $stdout.print " => DOWNLOAD: #{movie.name} (#{movie.year})\n"
120
- download_nzb(movie, @inspector.backup_path)
121
- end
122
- @inspector.movies << movie
123
- end
124
- $stdout.print "No nzb found, maybe change -age or -page setting\n" if movies.empty?
125
- end
126
-
127
- def download_nzb(movie, backup_path = nil)
128
- Tempfile.open("movie.nzb") do |tempfile|
129
- tempfile.write(@agent.get_file(movie.nzb_link)) # download the nzb
130
- tempfile.close
131
- File.copy(tempfile.path, "#{backup_path}/#{movie.dirname}.nzb") if backup_path
132
- File.move(tempfile.path, "#{@download_path}/#{movie.dirname}.nzb")
133
- end
134
- end
135
116
 
136
117
  end
137
118
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pirate-autonzb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pirate
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-05 00:00:00 -07:00
12
+ date: 2009-04-15 00:00:00 -07:00
13
13
  default_executable: autonzb
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency