class Nzb
Attributes
nzb_filename[R]
segments[R]
Public Class Methods
new(filename, prefix='')
click to toggle source
we accept basename and prefix, combine them and add suffix “.nzb”
# File lib/nzb.rb, line 43 def initialize(filename, prefix='') @segments = [] @nzb_filename = prefix + filename + ".nzb" end
Public Instance Methods
save_segment(size, number, msgid)
click to toggle source
same as write_segment
only saves it into an array, to be used with write_segments
# File lib/nzb.rb, line 109 def save_segment(size, number, msgid) @segments[number] = "<segment bytes=\"#{size}\" number=\"#{number}\">#{msgid}</segment>" end
write_file_header(poster, subject, groups, date=nil)
click to toggle source
date must be in unix timestamp or nil(it isn’t checked anyway, so whatever)
# File lib/nzb.rb, line 67 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_header(name=nil)
click to toggle source
nzb header
# File lib/nzb.rb, line 49 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)
click to toggle source
# File lib/nzb.rb, line 98 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
write_segments()
click to toggle source
# File lib/nzb.rb, line 113 def write_segments begin f = File.open(@nzb_filename, "a:ISO-8859-1") rescue raise "Unable to open #{@nzb_filename} for writing." end @segments.each do |segment| next if segment.nil? f.puts segment end f.close end