nzb 0.2.1 → 0.2.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.
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