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.
- checksums.yaml +4 -4
- data/lib/nzb.rb +34 -10
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 396e6c128ad1a20d0bc22bee117d23ead62a3edf
|
4
|
+
data.tar.gz: 5b85ddc9dbaa0216b67cea889d52d088ff05d2e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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:
|
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.
|
40
|
+
rubygems_version: 2.0.14
|
41
41
|
signing_key:
|
42
42
|
specification_version: 4
|
43
43
|
summary: nzb
|