xmltv2html 0.5.5 → 0.6.0

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