Class: Nzb
- Inherits:
-
Object
- Object
- Nzb
- Defined in:
- lib/nzb.rb
Instance Attribute Summary collapse
-
#nzb_filename ⇒ Object
readonly
Returns the value of attribute nzb_filename.
Instance Method Summary collapse
-
#initialize(filename, prefix = '') ⇒ Nzb
constructor
we accept basename and prefix, combine them and add suffix “.nzb”.
-
#write_file_footer ⇒ Object
method closes file section.
-
#write_file_header(poster, subject, groups, date = nil) ⇒ Object
date must be in unix timestamp or nil(it isn’t checked anyway, so whatever).
-
#write_footer ⇒ Object
close nzb.
-
#write_header(name = nil) ⇒ Object
nzb header.
- #write_segment(size, number, msgid) ⇒ Object
Constructor Details
#initialize(filename, prefix = '') ⇒ Nzb
we accept basename and prefix, combine them and add suffix “.nzb”
38 39 40 |
# File 'lib/nzb.rb', line 38 def initialize(filename,prefix='') @nzb_filename = prefix + filename + ".nzb" end |
Instance Attribute Details
#nzb_filename ⇒ Object (readonly)
Returns the value of attribute nzb_filename.
35 36 37 |
# File 'lib/nzb.rb', line 35 def nzb_filename @nzb_filename end |
Instance Method Details
#write_file_footer ⇒ Object
method closes file section
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/nzb.rb', line 81 def begin f = File.open(@nzb_filename,"a:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end f.puts '</segments>' f.puts '</file>' f.close end |
#write_file_header(poster, subject, groups, date = nil) ⇒ Object
date must be in unix timestamp or nil(it isn’t checked anyway, so whatever)
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/nzb.rb', line 61 def write_file_header(poster,subject,groups,date=nil) begin f = File.open(@nzb_filename,"a:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end from = CGI.escapeHTML(poster) subj = CGI.escapeHTML(subject) date = Time.now.to_i if date.nil? f.puts "<file poster=\"#{from}\" date=\"#{date}\" subject=\"#{subj}\">" f.puts '<groups>' groups.split(',').each do |group| f.puts '<group>' + group.strip + '</group>' end f.puts '</groups>' f.puts '<segments>' f.close end |
#write_footer ⇒ Object
close nzb
103 104 105 106 107 108 109 110 111 |
# File 'lib/nzb.rb', line 103 def begin f = File.open(@nzb_filename,"a:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end f.puts '</nzb>' f.close end |
#write_header(name = nil) ⇒ Object
nzb header
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/nzb.rb', line 43 def write_header(name=nil) begin f = File.open(@nzb_filename,"w+:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end f.puts '<?xml version="1.0" encoding="iso-8859-1" ?>' f.puts '<!DOCTYPE nzb PUBLIC "-//newzBin//DTD NZB 1.0//EN" "http://www.nzbindex.com/nzb-1.0.dtd">' f.puts '<nzb xmlns="http://www.newzbin.com/DTD/2003/nzb">' if !name.nil? f.puts ' <head>' f.puts ' <meta type="title">' + name + '</meta>' f.puts ' </head>' end f.close end |
#write_segment(size, number, msgid) ⇒ Object
92 93 94 95 96 97 98 99 100 |
# File 'lib/nzb.rb', line 92 def write_segment(size,number,msgid) begin f = File.open(@nzb_filename,"a:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end f.puts "<segment bytes=\"#{size}\" number=\"#{number}\">#{msgid}</segment>" f.close end |