nzb 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|