Class: Nzb

Inherits:
Object
  • Object
show all
Defined in:
lib/nzb.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_filenameObject (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

method closes file section



81
82
83
84
85
86
87
88
89
90
# File 'lib/nzb.rb', line 81

def write_file_footer
  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

close nzb



103
104
105
106
107
108
109
110
111
# File 'lib/nzb.rb', line 103

def write_footer
  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