xmltv2html 0.5.5 → 0.6.0

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.
Files changed (5) hide show
  1. data/ChangeLog +113 -0
  2. data/README +5 -4
  3. data/bin/xmltv2html.rb +282 -328
  4. data/xmltv2htmlrc +43 -47
  5. metadata +34 -43
data/ChangeLog CHANGED
@@ -1,4 +1,117 @@
1
1
  ------------------------------------------------------------------------
2
+ r161 | kvh | 2005-12-17 17:49:07 -0500 (Sat, 17 Dec 2005) | 1 line
3
+ Changed paths:
4
+ M /trunk/INSTALL
5
+
6
+ minor corrections
7
+ ------------------------------------------------------------------------
8
+ r160 | kvh | 2005-12-17 17:48:08 -0500 (Sat, 17 Dec 2005) | 1 line
9
+ Changed paths:
10
+ M /trunk/setup.rb
11
+
12
+ update setup.rb to v3.4.1
13
+ ------------------------------------------------------------------------
14
+ r159 | kvh | 2005-12-17 17:36:40 -0500 (Sat, 17 Dec 2005) | 1 line
15
+ Changed paths:
16
+ M /trunk/bin/xmltv2html.rb
17
+ M /trunk/xmltv2htmlrc
18
+
19
+ check for old xmltv2htmlrc format
20
+ ------------------------------------------------------------------------
21
+ r158 | kvh | 2005-12-17 17:06:48 -0500 (Sat, 17 Dec 2005) | 1 line
22
+ Changed paths:
23
+ M /trunk/make_distribution_files
24
+
25
+ stop creating tar.bz2, no longer autocreate xmltv2htmlrc
26
+ ------------------------------------------------------------------------
27
+ r157 | kvh | 2005-12-17 17:06:14 -0500 (Sat, 17 Dec 2005) | 1 line
28
+ Changed paths:
29
+ M /trunk/xmltv2html.gemspec
30
+
31
+ update gem specs
32
+ ------------------------------------------------------------------------
33
+ r156 | kvh | 2005-12-17 17:05:20 -0500 (Sat, 17 Dec 2005) | 1 line
34
+ Changed paths:
35
+ M /trunk/INSTALL
36
+ M /trunk/README
37
+
38
+ update docs
39
+ ------------------------------------------------------------------------
40
+ r155 | kvh | 2005-12-17 17:05:01 -0500 (Sat, 17 Dec 2005) | 1 line
41
+ Changed paths:
42
+ M /trunk/xmltv2htmlrc
43
+
44
+ comment out defaults
45
+ ------------------------------------------------------------------------
46
+ r154 | kvh | 2005-12-16 13:43:30 -0500 (Fri, 16 Dec 2005) | 1 line
47
+ Changed paths:
48
+ M /trunk/bin/xmltv2html.rb
49
+
50
+ set release date
51
+ ------------------------------------------------------------------------
52
+ r153 | kvh | 2005-12-16 13:43:07 -0500 (Fri, 16 Dec 2005) | 1 line
53
+ Changed paths:
54
+ M /trunk/xmltv2htmlrc
55
+
56
+ comment out defaults
57
+ ------------------------------------------------------------------------
58
+ r152 | kvh | 2005-12-16 13:31:49 -0500 (Fri, 16 Dec 2005) | 1 line
59
+ Changed paths:
60
+ M /trunk/bin/xmltv2html.rb
61
+
62
+ add trap to catch CTRL-C, fix DHTML
63
+ ------------------------------------------------------------------------
64
+ r151 | kvh | 2005-12-16 12:20:31 -0500 (Fri, 16 Dec 2005) | 1 line
65
+ Changed paths:
66
+ M /trunk/bin/xmltv2html.rb
67
+
68
+ ignore programes < 10 minutes
69
+ ------------------------------------------------------------------------
70
+ r150 | kvh | 2005-12-15 00:55:30 -0500 (Thu, 15 Dec 2005) | 1 line
71
+ Changed paths:
72
+ M /trunk/bin/xmltv2html.rb
73
+
74
+ fix command line issues
75
+ ------------------------------------------------------------------------
76
+ r149 | kvh | 2005-12-12 13:49:35 -0500 (Mon, 12 Dec 2005) | 1 line
77
+ Changed paths:
78
+ M /trunk/bin/xmltv2html.rb
79
+
80
+ remove old code
81
+ ------------------------------------------------------------------------
82
+ r148 | kvh | 2005-12-12 12:59:34 -0500 (Mon, 12 Dec 2005) | 1 line
83
+ Changed paths:
84
+ M /trunk/bin/xmltv2html.rb
85
+
86
+ command line options work; remove old config code
87
+ ------------------------------------------------------------------------
88
+ r147 | kvh | 2005-12-12 12:44:07 -0500 (Mon, 12 Dec 2005) | 1 line
89
+ Changed paths:
90
+ M /trunk/bin/xmltv2html.rb
91
+ M /trunk/xmltv2htmlrc
92
+
93
+ yaml config file almost complete
94
+ ------------------------------------------------------------------------
95
+ r146 | kvh | 2005-12-12 02:44:26 -0500 (Mon, 12 Dec 2005) | 1 line
96
+ Changed paths:
97
+ M /trunk/bin/xmltv2html.rb
98
+
99
+ use Set for favorites
100
+ ------------------------------------------------------------------------
101
+ r145 | kvh | 2005-12-12 01:08:47 -0500 (Mon, 12 Dec 2005) | 1 line
102
+ Changed paths:
103
+ M /trunk/bin/xmltv2html.rb
104
+
105
+ Make module; move to yaml config file
106
+ ------------------------------------------------------------------------
107
+ r144 | kvh | 2005-09-16 17:24:41 -0500 (Fri, 16 Sep 2005) | 1 line
108
+ Changed paths:
109
+ M /trunk/make_distribution_files
110
+ M /trunk/xmltv2html.gemspec
111
+ M /trunk/xmltv2htmlrc
112
+
113
+ update version/options
114
+ ------------------------------------------------------------------------
2
115
  r143 | kvh | 2005-09-16 17:21:44 -0500 (Fri, 16 Sep 2005) | 1 line
3
116
  Changed paths:
4
117
  M /trunk/bin/xmltv2html.rb
data/README CHANGED
@@ -7,12 +7,11 @@ xmltv2html is a Ruby script that transforms the output of XMLTV into HTML.
7
7
  This is different from other XMLTV -> HTML programs in that the times
8
8
  are on the horizontal axis and the channels on the vertical axis.
9
9
 
10
- http://kurt.hindenburg.name/projects/xmltv2html/xmltv2html.html
10
+ HOMEPAGE: http://xmltv2html.rubyforge.org/
11
11
 
12
12
  XMLTV : http://sourceforge.net/projects/xmltv
13
13
  RUBY : http://www.ruby-lang.org/en/
14
- REXML : http://www.germane-software.com/software/rexml
15
-
14
+ With version 1.8.3+, Ruby includes rexml.
16
15
 
17
16
  INSTALLATION
18
17
  ------------
@@ -26,8 +25,10 @@ USAGE
26
25
  % xmltv2html.rb < xmltv-output.xml > listing.html
27
26
  % xmltv2html.rb --help
28
27
 
29
- Please see the man page or HTML documentation for more details.
30
28
 
29
+ AUTHOR
30
+ ------
31
+ Kurt V. Hindenburg (khindenburg@rubyforge.org)
31
32
 
32
33
  LICENCE
33
34
  -------
data/bin/xmltv2html.rb CHANGED
@@ -1,8 +1,9 @@
1
- #!/usr/bin/ruby -w
1
+ #!/usr/bin/env ruby
2
+ #!/usr/bin/ruby -w # With Ruby 1.8.3, yaml gives a lot of warnings... :-((
2
3
  #
3
- # xmltv2html.rb - A Ruby script to tranform the XMLTV output into HTML.
4
+ # xmltv2html.rb - A Ruby script to transform the XMLTV output into HTML.
4
5
  #
5
- # Version : 0.5.5
6
+ # Version : 0.6.0
6
7
  # Author : Kurt V. Hindenburg <public@kurt.hindenburg.name>
7
8
  #
8
9
  # Copyright (C) 2003, 2004, 2005 Kurt V. Hindenburg
@@ -68,229 +69,207 @@ Written by Kurt V. Hindenburg <public@kurt.hindenburg.name>
68
69
 
69
70
  =end
70
71
 
71
- require "optparse"
72
- require "rexml/document"
72
+ require 'optparse'
73
+ require 'yaml'
74
+ require 'rexml/document'
73
75
  require 'singleton'
74
76
  require 'time'
77
+ require 'set'
75
78
 
76
- XMLTV2HTML_VERSION="0.5.5"
77
- XMLTV2HTML_DATE="Sep 17, 2005"
78
79
 
79
- module Xmltv2Html
80
+ XMLTV2HTML_VERSION="0.6.0"
81
+ XMLTV2HTML_DATE="Dec 18, 2005"
80
82
 
81
- def die(*args)
82
- $stderr.print args
83
- exit(1)
84
- end
83
+ class Time
84
+ class << self
85
+ ### Time.<method>
85
86
 
86
- def info(*args)
87
- $stderr.print args
87
+ # time string in format 'yyyymmddhhmmss (+/-xxxx)'
88
+ def parse_xmltv_time(str)
89
+ begin
90
+ Time::parse(str.split(' ')[0])
91
+ rescue ArgumentError
92
+ die "Unable to parse #{str}\n\n"
93
+ end
94
+ end
88
95
  end
89
96
 
97
+ ### object.<method>
98
+
99
+ def round_to_interval
100
+ self - (self.min % @@options['time_divisor']) * 60
101
+ end
90
102
 
91
103
  end
92
104
 
105
+ module XMLTV2HTML
106
+ @@options = nil
93
107
 
94
-
95
- def die(*args)
96
- $stderr.print args
97
- exit(1)
98
- end
99
108
  def info(*args)
100
109
  $stderr.print args, "\n"
101
110
  end
102
-
103
-
104
- class Config
105
- attr_reader(:times_interval, :channels_interval, :time_format_12)
106
- attr_reader(:use_config_file, :verbose, :output_links)
107
- attr_reader(:date_format, :categories)
108
- attr_reader(:use_favorites, :favorites)
109
- attr_reader(:output_date_in_time, :css_filename)
110
- attr_reader(:use_programme_popup, :programme_popup_method)
111
- attr_reader(:popup_title_format, :popup_body_format)
112
- attr_reader(:popup_title_background_color, :popup_title_color)
113
- attr_reader(:popup_title_font_size, :popup_body_font_size)
114
- attr_reader(:popup_body_background_color, :popup_body_color)
115
- attr_reader(:popup_body_width)
116
- attr_reader(:popup_title_font, :popup_body_font)
117
- attr_reader(:time_divisor)
118
- attr_accessor(:start_date, :stop_date)
119
- attr_accessor(:days, :total_hours, :total_span)
120
- attr_accessor(:url_next, :url_prev)
121
- attr_accessor(:start_time, :stop_time)
122
- attr_accessor(:output_favorites)
123
-
124
- def initialize
125
- @opts = {}
126
- @keys = %w{ times_interval chanels_interval time_format_12 }
127
- @favorites = Hash.new
128
- @use_config_file = true
129
- @config_file="xmltv2htmlrc"
130
- @total_hours = 0
131
- @total_span = 0
132
- @time_divisor = 10; # Divide programmes' times in X minute slots
133
- @url_prev = nil
134
- @url_next = nil
135
-
136
- setDefaults
137
- handleOpts
138
- readConfigFile if @config_file and @use_config_file
139
-
140
- # Convert favorite_list to Hash for fast lookup.
141
- @favorite_list.each { |f|
142
- f.gsub!(/&/,'&amp;')
143
- @favorites[f] = true
144
- }
145
- @days = 1
111
+ def die(*args)
112
+ info args
113
+ exit(1)
146
114
  end
147
115
 
148
- def setDefaults
149
- ### BEGIN CONFIGURATION
150
- #
151
-
152
- # Will output info to STDERR
153
- @verbose = true
154
-
155
- # Number of channels to repeat times horizontally; 0 to disable
156
- @times_interval = 4
157
-
158
- # Number of hours to repeat channels vertically; 0 to disable
159
- @channels_interval = 4
160
-
161
- # true = 12 hour format; false = 24 hour format
162
- @time_format_12 = true
163
-
164
- # Use channel favorites?
165
- @use_favorites = true
166
-
167
- # List favorite channels below (seperate by a ',')
168
- # The titles must be exact, not regular expressions.
169
- @favorite_list = [
170
- "CSI: Crime Scene Investigation",
171
- "Law & Order: Special Victims Unit", "Angel", "Law & Order",
172
- "The Shield", "Law & Order: Criminal Intent",
173
- "Charmed", "The West Wing"
174
- ]
175
- # Print out list of favorites beneath the listings?
176
- @output_favorites = false
177
-
178
- # Name of CSS file
179
- @css_filename = 'xmltv2html.css'
180
-
181
- # Categories - use specified CSS class for given category.
182
- # You must give the exact category for this to match. Look
183
- # at the xml data file for a list of categories.
184
- # Put the corresponding CSS class in your .css file
185
- # .sports-event
186
- # {
187
- # color: red;
188
- # background-color: white;
189
- # }
190
- @categories = {
191
- "Sports event" => "sports-event",
192
- "News" => "news"
193
- }
194
-
195
- # If true, will display date on the hour cell
196
- # (helpful for multiple days).
197
- # Color, etc in CSS file
198
- @output_date_in_time = true
199
-
200
- # The format to display the date
201
- # %m = month (01..12); %d = day (01..31); %b = Abbr month (Jan)
202
- # %a = Abbr weekday (Sun)
203
- # @date_format = '%m-%d'
204
- # @date_format = '%b %m-%d'
205
- @date_format = '%a %d'
206
-
207
- # Should the programme's description 'popup' on mouseover?
208
- # This will enlarge the output by the size of all the programme's
209
- # descriptions.
210
- @use_programme_popup = true
211
-
212
- # What method to use for popup? DHTML or STATUSBAR
213
- # Some browsers disable pages from changing the statusbar.
214
- @programme_popup_method = "DHTML" # "STATUSBAR"
215
-
216
- # Title is the top line of popup; body is the below part.
217
- # Define the popup: %T = title, %S = sub-title
218
- # %D = description, %R = rating
219
- # %P = previously-shown; will display (R)
220
- # Example: @popup_title_format = "%T"
221
- # Example: @popup_body_format = "%D<br />%R"
222
- # DHTML: You can put *some* CSS/HTML stuff here as well...
223
- # STATUSBAR: NO HTML
224
- @popup_title_format = "%T"
225
- @popup_body_format = "%S %P<br />%D<br />Rating: %R"
226
-
227
- # Attributes for the DHTML popup
228
- @popup_title_color = "#FFFFFF"
229
- @popup_title_font = "" # "Utopia"
230
- @popup_title_font_size = "2" # FONT SIZE=
231
- @popup_title_background_color = "#000099"
232
- @popup_body_color = "#000000"
233
- @popup_body_font = "" # "Utopia"
234
- @popup_body_font_size = "1" # FONT SIZE=
235
- @popup_body_background_color = "#E8E8FF"
236
- @popup_body_width = "200" # pixels
237
-
238
- # xmltv and xmltv2html home page links
239
- @output_links = true
240
-
241
- @start_time = ""
242
- @stop_time = ""
243
-
244
- ### END CONFIGURATION
116
+ def test
117
+ # info "The West Wing=", @@options['favorites'].include?('The West Wing')
118
+ # info "EXTRA=", @@options['favorites'].include?('EXTRA')
119
+ # info "Lay & Order=", @@options['favorites'].include?("Law & Order")
120
+ # info "Categories=", @@options['categories'].class
121
+ # info "Categories=", @@options['categories']
122
+ # info "start_time=",@@options['start_time']
123
+ # info "stop_time=",@@options['stop_time']
245
124
  end
246
125
 
247
- def readConfigFile
248
- f=File.expand_path(@config_file)
249
- return if not File.exists?(f)
250
- return if not File.stat(f).readable_real?
251
- begin
252
- eval File.new(f).read
253
- $stderr.print "^ Reading configuration file #{f}\n" if @verbose
254
- rescue
255
- warn("\nAn error occurred while reading #{f}; please fix!\n")
256
- exit
126
+ class ConfReader
127
+ def initialize
128
+ @@options = self # set Module variable
129
+ @cmd_line_options = nil
130
+ clear
131
+ set_defaults
132
+ # info "default config_file=",@@options['config_file']
133
+ parse_command_line_options_for_config_file
134
+ # info "cmd_line config_file=",@@options['config_file']
135
+ # info "cmd_line start_time=",@@options['start_time']
136
+ # info "cmd_line stop_time=",@@options['stop_time']
137
+
138
+
139
+ read_conf if @@options['use_config_file']
140
+ # info "start_time=",@@options['start_time']
141
+ # info "stop_time=",@@options['stop_time']
142
+ parse_command_line_options
143
+ # info "start_time=",@@options['start_time']
144
+ # info "stop_time=",@@options['stop_time']
145
+ # info "config_file=",@@options['config_file']
146
+
147
+ # convert favorites_list to Set for faster lookup
148
+ @@options['favorites'] = Set.new @@options['favorites_list' ]
149
+
150
+ test
257
151
  end
258
- end
259
-
260
- def handleOpts
261
-
262
- ARGV.options do
263
- |opts|
264
- opts.banner = "Usage: #{File.basename($0)} < xmltv.xml > tv.html\n"
265
152
 
266
- # separater
267
- opts.on_tail
268
- opts.on_tail("common options:")
153
+ # Don't edit these, use an external xmltv2htmlrc file.
154
+ def set_defaults
155
+ @tree = {
156
+ 'verbose' => false,
157
+ 'times_interval' => 4,
158
+ 'channels_interval' => 4,
159
+ 'time_format_12' => true,
160
+ 'use_favorites' => false,
161
+ 'output_favorites' => false,
162
+ 'favorites_list' => [],
163
+ 'css_filename' => 'xmltv2html.css',
164
+ 'categories' => {},
165
+ 'output_date_in_time' => false,
166
+ 'date_format' => '%a %d',
167
+ 'use_programme_popup' => true,
168
+ 'programme_popup_method' => "DHTML",
169
+ 'popup_title_format' => "%T",
170
+ 'popup_body_format' => "%S %P<br />%D<br />Rating: %R",
171
+ 'popup_title_color' => "#FFFFFF",
172
+ 'popup_title_font' => "",
173
+ 'popup_title_font_size' => "2",
174
+ 'popup_title_background_color' => "#000099",
175
+ 'popup_body_color' => "#000000",
176
+ 'popup_body_font' => "",
177
+ 'popup_body_font_size' => "1",
178
+ 'popup_body_background_color' => "#E8E8FF",
179
+ 'popup_body_width' => "200",
180
+ 'output_links' => false,
181
+ 'start_time' => "",
182
+ 'stop_time' => "",
183
+ 'start_date' => "",
184
+ 'stop_date' => "",
185
+ 'time_divisor' => 10, # Divide programmes' times in X minute slots
186
+ 'total_hours' => 0,
187
+ 'config_file' => "",
188
+ 'use_config_file' => true,
189
+ }
190
+ end
269
191
 
270
- opts.on("-c", "--configfile=FILE", String, "config file to use") {
271
- |@config_file|}
272
- opts.on("--noconfigfile","do NOT use any config file") {
273
- @use_config_file = false}
192
+ def [](key)
193
+ @tree[key]
194
+ end
274
195
 
275
- opts.on("--starttime=YYYYMMDDHHMM", String, "Start time") { |@start_time|}
276
- opts.on("--stoptime=YYYYMMDDHHMM", String, "Stop time") { |@stop_time|}
196
+ def []=(key, value)
197
+ @tree[key] = value
198
+ end
277
199
 
278
- opts.on("--urlprev=URL", String, "URL for previous link") { |@url_prev|}
279
- opts.on("--urlnext=URL", String, "URL for next link") { |@url_next|}
200
+ def clear
201
+ @tree = Hash.new
202
+ end
280
203
 
281
- # no argument, shows at tail
282
- opts.on_tail("-h", "--help", "show this message") {puts opts; exit}
204
+ def read_conf
205
+ return if @@options['config_file'].empty?
206
+ f=File.expand_path(@@options['config_file'])
207
+ if not File.exists?(f) or not File.stat(f).readable_real?
208
+ info "* Unable to read #{f}\n"
209
+ return
210
+ end
211
+ new_xmltv2htmlrc_format = false
212
+ File.open(f, "r") do |aFile|
213
+ first_line = aFile.gets
214
+ new_xmltv2htmlrc_format = true if first_line =~ /^#config_version: 1/
215
+ end
216
+ if new_xmltv2htmlrc_format == false
217
+ info "\nWhoa! You are using an old xmltv2htmlrc format file (v0.5.x)."
218
+ info "Please update your xmltv2htmlrc using the sample file provided"
219
+ info "with xmltv2html-0.6.0+."
220
+ die "\n"
221
+ end
222
+ info "^ Reading #{f}\n"
223
+ @tree.merge!(YAML::load(File.open(f)))
224
+ end
283
225
 
284
- opts.on_head("specific options:")
226
+ # Check to see if --configfile= is present.
227
+ # TODO: Should be a way to do with with OptionParser
228
+ def parse_command_line_options_for_config_file
229
+ ARGV.each do
230
+ |opts|
231
+ if opts =~ /--configfile=/
232
+ @@options['config_file'] = opts.split(/=/)[1]
233
+ end
234
+ end
235
+ end
285
236
 
286
- # no argument
287
- opts.on_tail("-v", "--version", "show version") do
288
- print "xmltv2html.rb v#{XMLTV2HTML_VERSION} (#{XMLTV2HTML_DATE})\n\n"
289
- print "Copyright (C) 2003, 2004, 2005 Kurt V. Hindenburg\n"
290
- print "This is free software; see the source for copying conditions. There is NO\n"
291
- print " warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
292
- print "\npublic@kurt.hindenburg.name\n"
293
-
237
+ # TODO: This has to be a better way to do this...
238
+ def parse_command_line_options
239
+ ARGV.options do
240
+ |opts|
241
+ opts.banner = "Usage: #{File.basename($0)} < xmltv.xml > tv.html\n"
242
+
243
+ # separater
244
+ opts.on_tail
245
+ opts.on_tail("common options:")
246
+
247
+ opts.on("--configfile=FILE", String, "config file to use") {
248
+ |@@options['config_file']|}
249
+
250
+ opts.on("--starttime=YYYYMMDDHHMM", String, "Start time") {
251
+ |@@options['start_time']|}
252
+ opts.on("--stoptime=YYYYMMDDHHMM", String, "Stop time") {
253
+ |@@options['stop_time']|}
254
+
255
+ opts.on("--urlprev=URL", String, "URL for previous link") {
256
+ |@@options['url_prev']|}
257
+ opts.on("--urlnext=URL", String, "URL for next link") {
258
+ |@@options['url_next']|}
259
+
260
+ # no argument, shows at tail
261
+ opts.on_tail("-h", "--help", "show this message") {puts opts; exit}
262
+
263
+ opts.on_head("specific options:")
264
+
265
+ # no argument
266
+ opts.on_tail("-v", "--version", "show version") do
267
+ print <<EOF
268
+ xmltv2html.rb v#{XMLTV2HTML_VERSION} (#{XMLTV2HTML_DATE})\n
269
+ Copyright (C) 2003, 2004, 2005 Kurt V. Hindenburg (public@kurt.hindenburg.name)
270
+ This is free software; see the source for copying conditions. There is NO
271
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
272
+ EOF
294
273
  exit
295
274
  end
296
275
  begin
@@ -301,32 +280,8 @@ class Config
301
280
  end
302
281
  end
303
282
 
304
- end
305
-
306
- class Time
307
-
308
- class << self
309
- ### Time.<method>
310
-
311
- # time string in format 'yyyymmddhhmmss (+/-xxxx)'
312
- def parse_xmltv_time(str)
313
- begin
314
- Time.parse(str.split(' ')[0])
315
- rescue ArgumentError
316
- die "Unable to parse #{str}\n\n"
317
- end
318
- end
319
- end
320
-
321
- ### object.<method>
322
-
323
- # TODO: cache $params.time_divisor
324
- def round_to_interval
325
- self - (self.min % $params.time_divisor) * 60
326
283
  end
327
284
 
328
- end
329
-
330
285
  class ProgrammeTime
331
286
  attr_reader(:fullStartTime, :fullStopTime)
332
287
 
@@ -353,21 +308,21 @@ class ProgrammeTime
353
308
  end
354
309
 
355
310
  def calculateStartSlot
356
- return if $params.start_date == nil # 1st pass
357
- @start_date = returnParsedTime($params.start_date) if not @start_date
311
+ return if @@options['start_date'] == nil # 1st pass
312
+ @start_date = returnParsedTime(@@options['start_date']) if not @start_date
358
313
 
359
314
  start_diff_min = ((@fullStartTime - @start_date) / 60).to_i
360
315
  # $stderr.print ", diff #{start_diff_min}"
361
- start_slot = start_diff_min / $params.time_divisor
316
+ start_slot = start_diff_min / @@options['time_divisor']
362
317
  # $stderr.print "starting slot #{start_slot}\n"
363
318
  start_slot
364
319
  end
365
320
  def calculateStopSlot
366
- return if $params.stop_date == nil # 1st pass
321
+ return if @@options['stop_date'] == nil # 1st pass
367
322
 
368
- @start_date = returnParsedTime($params.start_date) if not @start_date
323
+ @start_date = returnParsedTime(@@options['start_date']) if not @start_date
369
324
  stop_diff_min = ((@fullStopTime - @start_date) / 60).to_i
370
- stop_slot = stop_diff_min / $params.time_divisor
325
+ stop_slot = stop_diff_min / @@options['time_divisor']
371
326
  # $stderr.print " stoping slot #{stop_slot}\n"
372
327
 
373
328
  # (@fullStopTime.hour * 60 / $timeDivisor) + (@fullStopTime.min / $timeDivisor)
@@ -380,11 +335,9 @@ class Programme
380
335
  attr_reader :title, :subtitle, :span, :times, :desc, :rating, :category
381
336
  attr_reader :previouslyShown, :spanSlots, :startSlot
382
337
  attr_accessor :popupIndex
383
- # attr_accessor :popupIndex
384
338
 
385
339
  def initialize(title, subtitle, channel, start, stop, desc, rating, cats, rerun)
386
340
  @title = title
387
- @title.gsub!(/&/,'&amp;')
388
341
  @subtitle = subtitle
389
342
  @channelid = channel
390
343
  @desc = desc
@@ -407,14 +360,6 @@ class Programme
407
360
  @spanSlots = @stopSlot - @startSlot
408
361
  end
409
362
 
410
- # def start_time
411
- # @times.start_time
412
- # end
413
-
414
- # def stop_time
415
- # @times.stop_time
416
- # end
417
-
418
363
  def to_s
419
364
  @title
420
365
  end
@@ -504,7 +449,7 @@ class Channel
504
449
  end
505
450
 
506
451
  def calculateSlots(slist)
507
- tinterval = $params.channels_interval * 60 / $params.time_divisor
452
+ tinterval = @@options['channels_interval'] * 60 / @@options['time_divisor']
508
453
  left = []
509
454
  right = slist.dup
510
455
  index = 0
@@ -550,7 +495,7 @@ class Channel
550
495
  end
551
496
 
552
497
  # Create a slot list to account for displaying channel info
553
- # $params.channel_interval = # of hours to display channel info
498
+ # channel_interval = # of hours to display channel info
554
499
  # Handle empty programmes at start/end of channel.
555
500
  def createSlotList
556
501
  l = Array.new
@@ -558,8 +503,8 @@ class Channel
558
503
  times_counter = 1
559
504
  sindex = 0
560
505
  total = 0
561
- if $params.channels_interval > 0
562
- tinterval = $params.channels_interval * 60 / $params.time_divisor
506
+ if @@options['channels_interval'] > 0
507
+ tinterval = @@options['channels_interval'] * 60 / @@options['time_divisor']
563
508
  else
564
509
  tinterval = 9999
565
510
  end
@@ -579,7 +524,7 @@ class Channel
579
524
  slist.push "P"+s.spanSlots.to_s
580
525
  }
581
526
 
582
- if $params.channels_interval > 0
527
+ if @@options['channels_interval'] > 0
583
528
  sl = calculateSlots(slist)
584
529
  while sl != slist
585
530
  slist = sl.dup
@@ -591,7 +536,7 @@ class Channel
591
536
  span = entry.slice(1..-1).to_i
592
537
  l.push entry
593
538
  total += span
594
- l.push("C0") if (total % tinterval) == 0 and $params.channels_interval > 0
539
+ l.push("C0") if (total % tinterval) == 0 and @@options['channels_interval'] > 0
595
540
  }
596
541
 
597
542
  slist = l.unshift("C0") # Add left-most channel
@@ -602,7 +547,7 @@ class Channel
602
547
  # $stderr.print slist[0, 3],"\n"
603
548
  # $stderr.print l[0, 3],"\n"
604
549
 
605
- dinterval = $params.total_hours * 60 / $params.time_divisor
550
+ dinterval = @@options['total_hours'] * 60 / @@options['time_divisor']
606
551
  if total < dinterval # Not enough programmes' data at end
607
552
  slist.push("D"+(dinterval - total).to_s)
608
553
  slist.push("C0") if dinterval % tinterval == 0
@@ -701,7 +646,6 @@ class XmlTV
701
646
 
702
647
  def parseProgrammes
703
648
  channels = Channels.instance
704
-
705
649
  @doc.elements.each("tv/programme") { |element|
706
650
  title=""
707
651
  subtitle=""
@@ -720,42 +664,47 @@ class XmlTV
720
664
  dstop = stop[0..13]
721
665
  ext = start[14..-1]
722
666
 
723
- if not $params.start_time.empty?
724
- # $stderr.print "Desired start : #{$params.start_time}\n"
725
- nstart = $params.start_time.clone
726
- nstart[10..11] = $params.time_divisor.to_s
667
+ # info "start_time=",@@options['start_time']
668
+ # info "stop_time=",@@options['stop_time']
669
+ # info "empty?" ,@@options['start_time'].empty?
670
+ if not @@options['start_time'].empty?
671
+ nstart = @@options['start_time'].clone
672
+ nstart[10..11] = @@options['time_divisor'].to_s
727
673
 
728
674
  # If programme ends before the desired start time...
729
675
  # Adjust for the time_divisor (round_to_interval)
730
676
  if dstop < nstart
677
+ # info "Delete programme - Desired start : #{@@options['start_time']}, "
731
678
  # $stderr.print "Delete programme - Desired start : #{$params.start_time}, "
732
679
  # $stderr.print "programme stop : #{dstop}\n"
733
680
  # $stderr.print "Old start time = #{$params.start_time}, new=#{nstart}\n"
734
681
  next
735
682
  end
736
683
  end
737
-
738
684
  # If programme starts after the desired stop time...
739
- if (not $params.stop_time.empty?) and (dstart >= $params.stop_time)
685
+ if (not @@options['stop_time'].empty?) and (dstart >= @@options['stop_time'])
740
686
  # $stderr.print "Delete programme - Desired stop : #{$params.stop_time}, "
741
687
  # $stderr.print "programme start : #{dstart}\n"
688
+ # info "programme start : #{dstart}\n"
742
689
  next
743
690
  end
744
691
 
745
692
  # If programme starts before the desired start time, change start
746
- if (not $params.start_time.empty?) and (dstart < $params.start_time)
693
+ if (not @@options['start_time'].empty?) and (dstart < @@options['start_time'])
694
+ # info "Change Start - new start : "
747
695
  # $stderr.print "Change Start - new start : #{$params.start_time}, "
748
696
  # $stderr.print "old start: #{dstart}\n"
749
697
  # ndesc = "(" + start[8..9] + ":" + start[10..11] + ") "
750
698
 
751
- start = $params.start_time + ext
699
+ start = @@options['start_time'] + ext
752
700
  dstart = start[0..13]
753
701
  end
754
702
 
755
703
 
756
704
  # If programme ends after the desired stop time, change stop
757
- if (not $params.stop_time.empty?) and (dstop > $params.stop_time)
758
- stop = $params.stop_time + ext
705
+ if (not @@options['stop_time'].empty?) and (dstop > @@options['stop_time'])
706
+ stop = @@options['stop_time'] + ext
707
+ # info "Change Stop - new stopt : "
759
708
  dstop = stop[0..13]
760
709
  end
761
710
 
@@ -777,9 +726,8 @@ class XmlTV
777
726
  # Check to see if user want to use special CSS class for category
778
727
  # FIXME: What happens when more than 1 category is triggered?
779
728
  if e.name == "category"
780
- if $params.categories.has_key?(e.text())
781
- # $stderr.print "found #{e.text()}, using #{$params.categories[e.text()]}\n"
782
- cats = $params.categories[e.text()];
729
+ if @@options['categories'].has_key?(e.text())
730
+ cats = @@options['categories'][e.text()];
783
731
  end
784
732
  end
785
733
  }
@@ -809,7 +757,7 @@ class XmlTV
809
757
 
810
758
  end
811
759
 
812
- class XMLTV2HTML
760
+ class XMLTV2HTML2
813
761
  attr_accessor(:dates)
814
762
 
815
763
  def initialize
@@ -825,34 +773,32 @@ class XMLTV2HTML
825
773
  @xml.parseProgrammes
826
774
 
827
775
 
828
- $params.start_date = @xml.firstShowStartDate
829
- $params.stop_date = @xml.lastShowStopDate
830
- # $stderr.print "Starting listings at #{$params.start_date}\n"
831
- # $stderr.print "Stopping listings at #{$params.stop_date}\n"
776
+ @@options['start_date'] = @xml.firstShowStartDate
777
+ @@options['stop_date'] = @xml.lastShowStopDate
832
778
 
833
779
  # Force start/stop time on hour
834
- $params.start_date[10,4] = "0000"
780
+ @@options['start_date'][10,4] = "0000"
835
781
 
836
- if $params.stop_date[10,2] != "00"
837
- hour = ($params.stop_date[8,2]).to_i + 1
782
+ # info "start_date=",@@options['start_date']
783
+ # info "stop_date= ",@@options['stop_date']
784
+ if @@options['stop_date'][10,2] != "00"
785
+ hour = (@@options['stop_date'][8,2]).to_i + 1
838
786
  if hour > 23
839
787
  $stderr.print "yuck #{hour}\n"
840
788
  end
841
- $params.stop_date[8,2] = hour.to_s.rjust(2).sub(/\s/,'0')
789
+ @@options['stop_date'][8,2] = hour.to_s.rjust(2).sub(/\s/,'0')
842
790
  end
843
- $params.stop_date[10,4] = "0000"
844
- # $stderr.print "Starting listings at #{$params.start_date}\n"
845
- # $stderr.print "Stopping listings at #{$params.stop_date}\n"
791
+ @@options['stop_date'][10,4] = "0000"
846
792
 
847
- pstart = Time.parse($params.start_date)
848
- pstop = Time.parse($params.stop_date)
849
- $params.total_hours = ((pstop - pstart) / 3600).to_i
793
+ pstart = Time.parse(@@options['start_date'])
794
+ pstop = Time.parse(@@options['stop_date'])
795
+ @@options['total_hours'] = ((pstop - pstart) / 3600).to_i
850
796
 
851
797
  channels = Channels.instance
852
798
  channels.calc_programmes_slots
853
799
 
854
- fdate = $params.start_date[0,8]
855
- ldate = $params.stop_date[0,8]
800
+ fdate = @@options['start_date'][0,8]
801
+ ldate = @@options['stop_date'][0,8]
856
802
 
857
803
  @xml.setTitle(@dates)
858
804
 
@@ -878,7 +824,7 @@ class XMLTV2HTML
878
824
 
879
825
  @out.doctype
880
826
  @out.header(@xml.HTML_title)
881
- generatePopups if $params.use_programme_popup
827
+ generatePopups if @@options['use_programme_popup']
882
828
  @out.text_before_table(@xml.top_title)
883
829
  @out.table_start
884
830
  @out.table_times
@@ -904,7 +850,7 @@ class XMLTV2HTML
904
850
  prog = c.programme_at(pi)
905
851
  @out.outputProgramme(prog, sindex, span)
906
852
  # @out.outputProgramme(c.programme_at(pi), sindex, span)
907
- if $params.use_favorites and $params.output_favorites and $params.favorites.has_key?(prog.title)
853
+ if @@options['use_favorites'] and @@options['output_favorites'] and @@options['favorites'].include?(prog.title)
908
854
  #$stderr.print "found a fav #{prog.title}\n"
909
855
  favorites_list << prog
910
856
  end
@@ -918,7 +864,7 @@ class XMLTV2HTML
918
864
  i += 1
919
865
  }
920
866
  @out.outputChannelEnd
921
- @out.table_times if times_counter % $params.times_interval == 0
867
+ @out.table_times if times_counter % @@options['times_interval'] == 0
922
868
  times_counter += 1
923
869
  }
924
870
 
@@ -958,11 +904,11 @@ class Html
958
904
  print '<title>'
959
905
  print title if title
960
906
  print '</title>'; nl
961
- print '<link rel="stylesheet" href="', $params.css_filename
907
+ print '<link rel="stylesheet" href="', @@options['css_filename']
962
908
  print '" type="text/css">'; nl
963
909
 
964
- if $params.use_programme_popup
965
- if $params.programme_popup_method == "DHTML"
910
+ if @@options['use_programme_popup']
911
+ if @@options['programme_popup_method'] == "DHTML"
966
912
  print '<script language="JavaScript1.2" src="popup.js" type="text/javascript"></script>'; nl
967
913
  else
968
914
  print '<script language="JavaScript1.2" type="text/javascript">'
@@ -987,23 +933,22 @@ class Html
987
933
 
988
934
  # Styles
989
935
  print 'Style[1]=['
990
- print '"', $params.popup_title_color, '",'
991
- print '"', $params.popup_body_color, '",'
992
- print '"', $params.popup_title_background_color, '",'
993
- print '"', $params.popup_body_background_color, '",'
936
+ print '"', @@options['popup_title_color'], '",'
937
+ print '"', @@options['popup_body_color'], '",'
938
+ print '"', @@options['popup_title_background_color'], '",'
939
+ print '"', @@options['popup_body_background_color'], '",'
994
940
  print '"","","","",'
995
- print '"', $params.popup_title_font, '",'
996
- print '"', $params.popup_body_font, '",'
941
+ print '"', @@options['popup_title_font'], '",'
942
+ print '"', @@options['popup_body_font'], '",'
997
943
  print '"center","",'
998
- print '"', $params.popup_title_font_size, '",'
999
- print '"', $params.popup_body_font_size, '",'
1000
- print $params.popup_body_width, ','
944
+ print '"', @@options['popup_title_font_size'], '",'
945
+ print '"', @@options['popup_body_font_size'], '",'
946
+ print @@options['popup_body_width'], ','
1001
947
  print '"",'
1002
948
  print '3,' # Border width
1003
949
  print '10,' # Padding around body text
1004
950
  print '20, 20, "", "", "", "", ""]'
1005
- print nl
1006
-
951
+ nl
1007
952
  print 'applyCssFilter()'; nl
1008
953
  print '</script>'; nl
1009
954
  nl
@@ -1013,9 +958,9 @@ class Html
1013
958
  def outputPopupDescs(c, cindex)
1014
959
  # The descriptions go here...Text[#]=["title","text"]
1015
960
  c.programmes[c.id()].each { |s|
1016
- title = $params.popup_title_format.sub(/\%T/, s.title)
961
+ title = @@options['popup_title_format'].sub(/\%T/, s.title)
1017
962
  title.sub!(/\%R/, s.rating)
1018
- desc = $params.popup_body_format.gsub(/%T/, s.title)
963
+ desc = @@options['popup_body_format'].gsub(/%T/, s.title)
1019
964
  desc.sub!(/\%S/, s.subtitle)
1020
965
  if (s.previouslyShown) # rerun
1021
966
  desc.sub!(/\%P/, "(R)")
@@ -1045,32 +990,32 @@ class Html
1045
990
  print text
1046
991
  print '</h3></center>'; nl
1047
992
  end
1048
- if $params.url_prev
993
+ if @@options['url_prev']
1049
994
  print '<a class="links" href="'
1050
- print $params.url_prev
995
+ print @@options['url_prev']
1051
996
  print '"><<< Previous</a> | '
1052
997
  end
1053
- if $params.url_next
998
+ if @@options['url_next']
1054
999
  print '<a class="links" href="'
1055
- print $params.url_next
1000
+ print @@options['url_next']
1056
1001
  print '">Next >>></a>'
1057
1002
  end
1058
1003
  end
1059
1004
 
1060
1005
  def text_after_table
1061
- if $params.url_prev
1006
+ if @@options['url_prev']
1062
1007
  print '<a class="links" href="'
1063
- print $params.url_prev
1008
+ print @@options['url_prev']
1064
1009
  print '"><<< Previous</a> | '
1065
1010
  end
1066
- if $params.url_next
1011
+ if @@options['url_next']
1067
1012
  print '<a class="links" href="'
1068
- print $params.url_next
1013
+ print @@options['url_next']
1069
1014
  print '">Next >>></a>'
1070
1015
  end
1071
1016
  print '<br />'
1072
1017
  outputInfo
1073
- outputLinks if $params.output_links
1018
+ outputLinks if @@options['output_links']
1074
1019
  end
1075
1020
 
1076
1021
  def table_start
@@ -1088,7 +1033,7 @@ class Html
1088
1033
  def outputDate
1089
1034
  days = @hours/24
1090
1035
  colspan = 96
1091
- colspan += 96 / $params.channels_interval if $params.channels_interval > 0
1036
+ colspan += 96 / @@options['channels_interval'] if @@options['channels_interval'] > 0
1092
1037
 
1093
1038
  print '<tr class="date">'; nl
1094
1039
  (0 .. days-1).each { |d|
@@ -1098,14 +1043,12 @@ class Html
1098
1043
  end
1099
1044
 
1100
1045
  def table_times
1101
- intervals = 60 / $params.time_divisor
1046
+ intervals = 60 / @@options['time_divisor']
1102
1047
 
1103
- # $stderr.print "Starting time #{$params.start_date}\n"
1104
- # $stderr.print "Stoping time #{$params.stop_date}\n"
1105
1048
 
1106
1049
  # Need hour to start.... we'll force it to be on an hour later
1107
- starting_day = $params.start_date[6,2].to_i
1108
- starting_hour = $params.start_date[8,2].to_i
1050
+ starting_day = @@options['start_date'][6,2].to_i
1051
+ starting_hour = @@options['start_date'][8,2].to_i
1109
1052
  # $stderr.print "Day to start: #{starting_day}\n"
1110
1053
  # $stderr.print "Hour to start: #{starting_hour}\n"
1111
1054
  # $stderr.print "Total hours: #{$params.total_hours}\n"
@@ -1114,13 +1057,13 @@ class Html
1114
1057
  output_channel_space
1115
1058
 
1116
1059
  cs = 0
1117
- (starting_hour .. starting_hour + $params.total_hours - 1).each { |h|
1060
+ (starting_hour .. starting_hour + @@options['total_hours'] - 1).each { |h|
1118
1061
  (0 .. intervals-1).each { |hh|
1119
1062
  print '<td>';
1120
- printf "%02d", hh * $params.time_divisor; print '</td>';
1063
+ printf "%02d", hh * @@options['time_divisor']; print '</td>';
1121
1064
  }
1122
1065
  cs += 1
1123
- output_channel_space if $params.channels_interval > 0 and cs % $params.channels_interval == 0
1066
+ output_channel_space if @@options['channels_interval'] > 0 and cs % @@options['channels_interval'] == 0
1124
1067
  }
1125
1068
  print '</tr>'; nl
1126
1069
 
@@ -1128,17 +1071,17 @@ class Html
1128
1071
  output_channel_space
1129
1072
  days = @hours/24
1130
1073
  cs = 0
1131
- cdate = Time.parse($params.start_date)
1074
+ cdate = Time.parse(@@options['start_date'])
1132
1075
 
1133
- (starting_hour .. starting_hour + $params.total_hours - 1).each { |hi|
1076
+ (starting_hour .. starting_hour + @@options['total_hours'] - 1).each { |hi|
1134
1077
  h = hi % 24
1135
1078
  print '<td colspan="',intervals,'" class="time">';
1136
1079
 
1137
- if $params.output_date_in_time
1080
+ if @@options['output_date_in_time']
1138
1081
  nl; print '<table width="100%" border="0" cellpadding="0">'; nl
1139
1082
  print '<tr><td align="left" class="time">';
1140
1083
  end
1141
- if $params.time_format_12
1084
+ if @@options['time_format_12']
1142
1085
  if h < 12
1143
1086
  out = "#{h} am"
1144
1087
  else
@@ -1149,16 +1092,16 @@ class Html
1149
1092
  out = sprintf "%02d", h
1150
1093
  end
1151
1094
  print out
1152
- if $params.output_date_in_time
1095
+ if @@options['output_date_in_time']
1153
1096
  print '<td align="right" class="date_in_time">';
1154
- print cdate.strftime($params.date_format)
1097
+ print cdate.strftime(@@options['date_format'])
1155
1098
  print '</td></tr>'; nl; print '</table></td>'; nl
1156
1099
  else
1157
1100
  print '</td>';
1158
1101
  end
1159
1102
  cs += 1
1160
1103
  cdate += 3600 # Add 1 hour
1161
- output_channel_space if $params.channels_interval > 0 and cs % $params.channels_interval == 0
1104
+ output_channel_space if @@options['channels_interval'] > 0 and cs % @@options['channels_interval'] == 0
1162
1105
  }
1163
1106
  print '</tr>'; nl
1164
1107
  end
@@ -1179,6 +1122,7 @@ class Html
1179
1122
  end
1180
1123
 
1181
1124
  def outputProgramme(s, index, slots)
1125
+ return if s.spanSlots == 0 # Invalid programme - too short
1182
1126
  if slots > 0
1183
1127
  print '<td colspan="', slots, '" class="'
1184
1128
  else
@@ -1186,7 +1130,7 @@ class Html
1186
1130
  end
1187
1131
 
1188
1132
  # Favorites override category.
1189
- if $params.use_favorites and $params.favorites.has_key?(s.title)
1133
+ if @@options['use_favorites'] and @@options['favorites'].include?(s.title)
1190
1134
  print 'favorite">'
1191
1135
  elsif s.category
1192
1136
  print s.category,'">'
@@ -1194,9 +1138,9 @@ class Html
1194
1138
  print 'programme">'
1195
1139
  end
1196
1140
  # Styles : 12=right; 1=center; 2=left; 3=float
1197
- if $params.use_programme_popup
1141
+ if @@options['use_programme_popup']
1198
1142
  if s.popupIndex >= 0
1199
- if $params.programme_popup_method == "DHTML"
1143
+ if @@options['programme_popup_method'] == "DHTML"
1200
1144
  print '<a onmouseover="stm(Text[', s.popupIndex
1201
1145
  print '],Style[1])" onmouseout="htm()">'; nl
1202
1146
  else
@@ -1270,18 +1214,28 @@ class Html
1270
1214
 
1271
1215
  end
1272
1216
 
1273
- $params = Config.new
1274
- xmltv2html = XMLTV2HTML.new
1217
+ end
1218
+
1219
+ include XMLTV2HTML
1220
+
1221
+ trap("INT") do
1222
+ info "\n Received user interrupt...exiting.\n"
1223
+ exit
1224
+ end
1225
+
1226
+ confreader = ConfReader.new
1227
+
1228
+ xmltv2html = XMLTV2HTML2.new
1275
1229
 
1276
1230
  time1 = Time.new
1277
1231
  xmltv2html.parseXML
1278
1232
  time2 = Time.new
1279
- $stderr.print "^ Parsing XML took #{time2-time1} seconds.\n" if $params.verbose
1233
+ $stderr.print "^ Parsing XML took #{time2-time1} seconds.\n"
1280
1234
 
1281
1235
  time3 = Time.new
1282
1236
  xmltv2html.generateHTML
1283
1237
  time4 = Time.new
1284
- $stderr.print "^ Generating HTML took #{time4-time3} seconds.\n" if $params.verbose
1238
+ $stderr.print "^ Generating HTML took #{time4-time3} seconds.\n"
1285
1239
 
1286
1240
  exit
1287
1241
 
data/xmltv2htmlrc CHANGED
@@ -1,45 +1,39 @@
1
- ######################################################################
2
- ###
3
- ### Auto-generated by create_rc
4
- ###
5
- ### Edit this file to suit your needs and then copy it somewhere.
6
- ### Then use xmltv2html.rb --config-file=FILE
7
- ###
8
- ### Note that this file is actually Ruby code.
9
- ###
10
- ######################################################################
1
+ #config_version: 1
2
+ # To check to make sure user is using correct xmltv2htmlrc format.
3
+
4
+ # There must be at least one item which is not commented out...
5
+ # seems like a bug. kvh 12/2005
11
6
 
12
7
  ### BEGIN CONFIGURATION
13
8
  #
9
+ # Lines that start with # are comments. The defaults are commented out.
14
10
 
15
11
  # Will output info to STDERR
16
- @verbose = true
12
+ #verbose: false
13
+ verbose: false
17
14
 
18
15
  # Number of channels to repeat times horizontally; 0 to disable
19
- @times_interval = 4
16
+ #times_interval: 4
20
17
 
21
18
  # Number of hours to repeat channels vertically; 0 to disable
22
- @channels_interval = 4
19
+ #channels_interval: 4
23
20
 
24
21
  # true = 12 hour format; false = 24 hour format
25
- @time_format_12 = true
22
+ #time_format_12: true
26
23
 
27
24
  # Use channel favorites?
28
- @use_favorites = true
25
+ #use_favorites: false
29
26
 
30
27
  # List favorite channels below (seperate by a ',')
31
28
  # The titles must be exact, not regular expressions.
32
- @favorite_list = [
33
- "CSI: Crime Scene Investigation",
34
- "Law & Order: Special Victims Unit", "Angel", "Law & Order",
35
- "The Shield", "Law & Order: Criminal Intent",
36
- "Charmed", "The West Wing"
37
- ]
29
+ #favorites_list: []
30
+ # Example: favorites_list: [ 'EXTRA', 'The West Wing', 'Law & Order' ]
31
+
38
32
  # Print out list of favorites beneath the listings?
39
- @output_favorites = false
33
+ #output_favorites: false
40
34
 
41
35
  # Name of CSS file
42
- @css_filename = 'xmltv2html.css'
36
+ #css_filename: 'xmltv2html.css'
43
37
 
44
38
  # Categories - use specified CSS class for given category.
45
39
  # You must give the exact category for this to match. Look
@@ -50,31 +44,33 @@
50
44
  # color: red;
51
45
  # background-color: white;
52
46
  # }
53
- @categories = {
54
- "Sports event" => "sports-event",
55
- "News" => "news"
56
- }
47
+ # Example:
48
+ #categories: {
49
+ # Sports event: "sports-event",
50
+ # News: "news"
51
+ #}
57
52
 
58
53
  # If true, will display date on the hour cell
59
54
  # (helpful for multiple days).
60
55
  # Color, etc in CSS file
61
- @output_date_in_time = true
56
+ #output_date_in_time: false
62
57
 
63
58
  # The format to display the date
64
59
  # %m = month (01..12); %d = day (01..31); %b = Abbr month (Jan)
65
60
  # %a = Abbr weekday (Sun)
66
- # @date_format = '%m-%d'
67
- # @date_format = '%b %m-%d'
68
- @date_format = '%a %d'
61
+ # date_format: '%m-%d'
62
+ # date_format: '%b %m-%d'
63
+ #date_format: '%a %d'
69
64
 
70
65
  # Should the programme's description 'popup' on mouseover?
71
66
  # This will enlarge the output by the size of all the programme's
72
67
  # descriptions.
73
- @use_programme_popup = true
68
+ #use_programme_popup: true
69
+ #use_programme_popup: true
74
70
 
75
71
  # What method to use for popup? DHTML or STATUSBAR
76
72
  # Some browsers disable pages from changing the statusbar.
77
- @programme_popup_method = "DHTML" # "STATUSBAR"
73
+ #programme_popup_method: "DHTML" # "STATUSBAR"
78
74
 
79
75
  # Title is the top line of popup; body is the below part.
80
76
  # Define the popup: %T = title, %S = sub-title
@@ -84,24 +80,24 @@
84
80
  # Example: @popup_body_format = "%D<br />%R"
85
81
  # DHTML: You can put *some* CSS/HTML stuff here as well...
86
82
  # STATUSBAR: NO HTML
87
- @popup_title_format = "%T"
88
- @popup_body_format = "%S %P<br />%D<br />Rating: %R"
83
+ #popup_title_format: "%T"
84
+ #popup_body_format: "%S %P<br />%D<br />Rating: %R"
89
85
 
90
86
  # Attributes for the DHTML popup
91
- @popup_title_color = "#FFFFFF"
92
- @popup_title_font = "" # "Utopia"
93
- @popup_title_font_size = "2" # FONT SIZE=
94
- @popup_title_background_color = "#000099"
95
- @popup_body_color = "#000000"
96
- @popup_body_font = "" # "Utopia"
97
- @popup_body_font_size = "1" # FONT SIZE=
98
- @popup_body_background_color = "#E8E8FF"
99
- @popup_body_width = "200" # pixels
87
+ #popup_title_color: "#FFFFFF"
88
+ #popup_title_font: "" # "Utopia"
89
+ #popup_title_font_size: "2" # FONT SIZE=
90
+ #popup_title_background_color: "#000099"
91
+ #popup_body_color: "#000000"
92
+ #popup_body_font: "" # "Utopia"
93
+ #popup_body_font_size: "1" # FONT SIZE=
94
+ #popup_body_background_color: "#E8E8FF"
95
+ #popup_body_width: "200" # pixels
100
96
 
101
97
  # xmltv and xmltv2html home page links
102
- @output_links = true
98
+ #output_links: false
103
99
 
104
- @start_time = ""
105
- @stop_time = ""
100
+ #start_time: ""
101
+ #stop_time: ""
106
102
 
107
103
  ### END CONFIGURATION
metadata CHANGED
@@ -1,65 +1,56 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.10
1
+ !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: xmltv2html
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.5
7
- date: 2005-09-16
6
+ version: 0.6.0
7
+ date: 2005-12-17 00:00:00 -05:00
8
8
  summary: xmltv2html generates a HTML page from the output of XMLTV.
9
9
  require_paths:
10
- - lib
10
+ - lib
11
11
  email: khindenburg@rubyforge.org
12
12
  homepage: http://xmltv2html.rubyforge.org
13
13
  rubyforge_project: xmltv2html
14
- description: "xmltv2html is a Ruby script that generates a static HTML page from the output
15
- of XMLTV. This is different from other XMLTV -> HTML programs in that the times
16
- are on the horizontal axis and the channels on the vertical axis. The HTML
17
- output can be modified using a CSS file. The prefered method to view a show's
18
- info is via DHTML (the default). With version 0.5.3+, the attributes (fonts,
19
- colors, size) of the DHTML can be modified."
14
+ description: xmltv2html is a Ruby script that generates a static HTML page from the output of XMLTV. This is different from other XMLTV -> HTML programs in that the times are on the horizontal axis and the channels on the vertical axis. The HTML output can be modified using a CSS file. The prefered method to view a show's info is via DHTML (the default). With version 0.5.3+, the attributes (fonts, colors, size) of the DHTML can be modified.
20
15
  autorequire:
21
16
  default_executable:
22
17
  bindir: bin
23
- has_rdoc: true
18
+ has_rdoc: false
24
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
25
20
  requirements:
26
- -
27
- - ">="
28
- - !ruby/object:Gem::Version
29
- version: 1.8.0
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.8.3
30
24
  version:
31
25
  platform: ruby
26
+ signing_key:
27
+ cert_chain:
32
28
  authors:
33
- - Kurt V. Hindenburg
29
+ - Kurt V. Hindenburg
34
30
  files:
35
- - COPYING
36
- - README
37
- - ChangeLog
38
- - popup.js
39
- - xmltv2html.css
40
- - xmltv2htmlrc
41
- - contrib/README
42
- - contrib/kvh/create_index.rb
43
- - contrib/kvh/tvlistings.sh
44
- - contrib/kvh/xmltv2htmlrc
45
- - contrib/kvh/generate_html.rb
46
- - contrib/kvh/update-tvlistings.rb
31
+ - COPYING
32
+ - README
33
+ - ChangeLog
34
+ - popup.js
35
+ - xmltv2html.css
36
+ - xmltv2htmlrc
37
+ - contrib/README
38
+ - contrib/kvh/create_index.rb
39
+ - contrib/kvh/tvlistings.sh
40
+ - contrib/kvh/xmltv2htmlrc
41
+ - contrib/kvh/generate_html.rb
42
+ - contrib/kvh/update-tvlistings.rb
47
43
  test_files: []
44
+
48
45
  rdoc_options: []
46
+
49
47
  extra_rdoc_files: []
48
+
50
49
  executables:
51
- - xmltv2html.rb
50
+ - xmltv2html.rb
52
51
  extensions: []
53
- requirements:
54
- - "REXML : http://www.germane-software.com/software/rexml"
55
- dependencies:
56
- - !ruby/object:Gem::Dependency
57
- name: rexml
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Version::Requirement
60
- requirements:
61
- -
62
- - ">="
63
- - !ruby/object:Gem::Version
64
- version: 3.0.2
65
- version:
52
+
53
+ requirements: []
54
+
55
+ dependencies: []
56
+