nzb 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nzb.rb +34 -10
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de1ca6b7bf4cf10da017f96dc36846ac463ee7af
4
- data.tar.gz: 444cc9d8d727b017641c7a2a94da54a99032046c
3
+ metadata.gz: 396e6c128ad1a20d0bc22bee117d23ead62a3edf
4
+ data.tar.gz: 5b85ddc9dbaa0216b67cea889d52d088ff05d2e7
5
5
  SHA512:
6
- metadata.gz: 27dcb21a7a329323970320a4455e6549d09bec25b259004d0fc097e2c423393add50716de3fd028f892c54e861cdaf84d38d7ebebb389168810fbe6737113aab
7
- data.tar.gz: e3e7d41585582e6654f53336c2bb329735960f0c9e8e5c6f78ea558a288a8cc94c2a2d4229f2f6c82873631b3ff831a3a75c60eb4e4a6679e736e271bc6eb4f3
6
+ metadata.gz: 6ad25dbfa642da7b2d7d8a9fab580e95cad5dfb716b4f55101a197603d4b003dba9403e7272ad4929a4a4b3e1d42e52cb60b13416304cebbaa00a68a22de2c6a
7
+ data.tar.gz: e2a467a2a836ea61410c6458ef8875c44392706edfde9fcb46eb9d450d57f4d22b077af732c02305c9b0a3199717bbe63b9f6a457504902d29e1dd0bf2a90127
data/lib/nzb.rb CHANGED
@@ -16,6 +16,10 @@
16
16
  # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17
17
  ########################################################################
18
18
  # = Methods
19
+ # * save_segment - needs to be run for every segment(partial file), replaces write_segment
20
+ # - size - size in bytes
21
+ # - number - number of the part
22
+ # - msgid - message ID as told by the NNTP server
19
23
  # * write_header - invoked only once to generate xml header
20
24
  # * write_file_header - you need to invoke it once for every file with following parameters:
21
25
  # - poster - as in from field
@@ -27,22 +31,24 @@
27
31
  # - size - size in bytes
28
32
  # - number - number of the part
29
33
  # - msgid - message ID as told by the NNTP server
34
+ # * write_segments - writes saved segments to a file
30
35
  # * write_footer - closes nzb. Normally you shouldn't write to a file after this method was invoked.
31
36
  ########################################################################
32
37
  require 'cgi'
33
38
 
34
39
  class Nzb
35
- attr_reader :nzb_filename
40
+ attr_reader :nzb_filename, :segments
36
41
 
37
42
  # we accept basename and prefix, combine them and add suffix ".nzb"
38
- def initialize(filename,prefix='')
43
+ def initialize(filename, prefix='')
44
+ @segments = []
39
45
  @nzb_filename = prefix + filename + ".nzb"
40
46
  end
41
47
 
42
48
  # nzb header
43
49
  def write_header(name=nil)
44
50
  begin
45
- f = File.open(@nzb_filename,"w+:ISO-8859-1")
51
+ f = File.open(@nzb_filename, "w+:ISO-8859-1")
46
52
  rescue
47
53
  raise "Unable to open #{@nzb_filename} for writing."
48
54
  end
@@ -58,9 +64,9 @@ class Nzb
58
64
  end
59
65
 
60
66
  # date must be in unix timestamp or nil(it isn't checked anyway, so whatever)
61
- def write_file_header(poster,subject,groups,date=nil)
67
+ def write_file_header(poster, subject, groups, date=nil)
62
68
  begin
63
- f = File.open(@nzb_filename,"a:ISO-8859-1")
69
+ f = File.open(@nzb_filename, "a:ISO-8859-1")
64
70
  rescue
65
71
  raise "Unable to open #{@nzb_filename} for writing."
66
72
  end
@@ -69,7 +75,7 @@ class Nzb
69
75
  date = Time.now.to_i if date.nil?
70
76
  f.puts "<file poster=\"#{from}\" date=\"#{date}\" subject=\"#{subj}\">"
71
77
  f.puts '<groups>'
72
- groups.split(',').each do |group|
78
+ groups.split(', ').each do |group|
73
79
  f.puts '<group>' + group.strip + '</group>'
74
80
  end
75
81
  f.puts '</groups>'
@@ -80,7 +86,7 @@ class Nzb
80
86
  # method closes file section
81
87
  def write_file_footer
82
88
  begin
83
- f = File.open(@nzb_filename,"a:ISO-8859-1")
89
+ f = File.open(@nzb_filename, "a:ISO-8859-1")
84
90
  rescue
85
91
  raise "Unable to open #{@nzb_filename} for writing."
86
92
  end
@@ -89,9 +95,9 @@ class Nzb
89
95
  f.close
90
96
  end
91
97
 
92
- def write_segment(size,number,msgid)
98
+ def write_segment(size, number, msgid)
93
99
  begin
94
- f = File.open(@nzb_filename,"a:ISO-8859-1")
100
+ f = File.open(@nzb_filename, "a:ISO-8859-1")
95
101
  rescue
96
102
  raise "Unable to open #{@nzb_filename} for writing."
97
103
  end
@@ -99,10 +105,28 @@ class Nzb
99
105
  f.close
100
106
  end
101
107
 
108
+ # same as write_segment only saves it into an array, to be used with write_segments
109
+ def save_segment(size, number, msgid)
110
+ @segments[number] = "<segment bytes=\"#{size}\" number=\"#{number}\">#{msgid}</segment>"
111
+ end
112
+
113
+ def write_segments
114
+ begin
115
+ f = File.open(@nzb_filename, "a:ISO-8859-1")
116
+ rescue
117
+ raise "Unable to open #{@nzb_filename} for writing."
118
+ end
119
+ @segments.each do |segment|
120
+ next if segment.nil?
121
+ f.puts segment
122
+ end
123
+ f.close
124
+ end
125
+
102
126
  # close nzb
103
127
  def write_footer
104
128
  begin
105
- f = File.open(@nzb_filename,"a:ISO-8859-1")
129
+ f = File.open(@nzb_filename, "a:ISO-8859-1")
106
130
  rescue
107
131
  raise "Unable to open #{@nzb_filename} for writing."
108
132
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nzb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tadeus Dobrovolskij
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-02 00:00:00.000000000 Z
11
+ date: 2014-09-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Library for nzb file generation
14
14
  email: root@tad-do.net
@@ -37,7 +37,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
37
37
  version: '0'
38
38
  requirements: []
39
39
  rubyforge_project:
40
- rubygems_version: 2.0.3
40
+ rubygems_version: 2.0.14
41
41
  signing_key:
42
42
  specification_version: 4
43
43
  summary: nzb