xmltv2html 0.5.3

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.
data/contrib/README ADDED
@@ -0,0 +1,3 @@
1
+
2
+ Here are some scripts that you can use with xmltv2html.
3
+
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'date'
4
+
5
+ tvlisting_dir = "/mnt/part5/www/tvlistings/"
6
+
7
+ html_cmd = "/home/kvh/bin/xmltv2html.rb"
8
+ index_cmd = "/home/kvh/bin/tvlistings_index"
9
+
10
+ conf = "/home/kvh/.xmltv2htmlrc"
11
+
12
+ files = Dir[tvlisting_dir + "20*.xml"]
13
+
14
+ files.each { |f|
15
+ fd = File.basename(f)
16
+
17
+ # $stderr.print f, " ", File.stat(f).zero?,"\n"
18
+ if File.stat(f).zero? then
19
+ print "^^^ Zero file - Deleting #{f}\n"
20
+ if File.delete(f) != 1 then
21
+ print " Error deleting #{f}\n"
22
+ end
23
+ next
24
+ end
25
+ output_file = f.gsub(/.xml$/,".html")
26
+ if File.exists?(output_file) and File.stat(output_file).zero? then
27
+ print "^^^ Zero file - Deleting #{output_file}\n"
28
+ if File.delete(output_file) != 1 then
29
+ print " Error deleting #{output_file}\n"
30
+ end
31
+ next
32
+ end
33
+ output_file = f.gsub(/.xml$/,".html")
34
+ if File.exists?(output_file)
35
+ print "^^^ #{output_file} already exists.\n"
36
+ next
37
+ end
38
+
39
+ fdd = fd.gsub(/.xml$/,"")
40
+
41
+ prevday = nil
42
+ nextday = nil
43
+
44
+ # $stderr.print "#{fdd}\n"
45
+ # d = Date.new(fdate[0,4].to_i, fdate[4,2].to_i, fdate[6,2].to_i)
46
+ d = Date.new(fdd[0,4].to_i, fdd[5,2].to_i, fdd[8,2].to_i)
47
+ nextday = d + 1
48
+ nextday_file = nextday.strftime("%Y-%m-%d") + ".html"
49
+ prevday = d - 1
50
+ prevday_file = prevday.strftime("%Y-%m-%d") + ".html"
51
+
52
+ # $stderr.print "prev day #{prevday}; #{prevday_file}\n"
53
+ # $stderr.print "next day #{nextday}; #{nextday_file}\n"
54
+
55
+
56
+ run_me = html_cmd
57
+ run_me += " --configfile=" + conf if File.exists?(conf)
58
+ run_me += " < " + f + " > " + output_file
59
+ run_me += " --urlprev=" + prevday_file if prevday_file
60
+ run_me += " --urlnext=" + nextday_file if nextday_file
61
+
62
+ print run_me,"\n"
63
+ status = system(run_me)
64
+ $stderr.print "Error ",status," occurred while running : ", run_me,"\n\n" if !status
65
+
66
+ }
67
+
68
+
@@ -0,0 +1,15 @@
1
+ #!/bin/bash
2
+
3
+ echo
4
+ echo "* Updating TV listings using xmltv from zap2it.com..."
5
+ ~/bin/update-tvlistings
6
+
7
+ echo
8
+ echo "* Generating HTML from the XMLTV output..."
9
+ ~/bin/generate_html
10
+
11
+ echo
12
+ echo "* Generating HTML index..."
13
+ ~/bin/tvlistings_index
14
+
15
+ echo
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'date'
4
+
5
+ tvlisting_dir = "/mnt/part5/www/tvlistings/"
6
+ #tvlisting_dir = "/var/www/httpd/htdocs/tvlistings/"
7
+ output = "index.html"
8
+ $previous_days_to_save = 1
9
+
10
+ def delete_zero_files(files)
11
+ files.each { |f|
12
+ if File.stat(f).zero? then
13
+ print "^^^ Zero file - Deleting #{f}\n"
14
+ if File.delete(f) != 1 then
15
+ print "^^^ Error deleting #{f}\n"
16
+ end
17
+ end
18
+ }
19
+ end
20
+
21
+ def delete_old_files(files)
22
+ today = Date.today
23
+ files.each { |f|
24
+ fd = File.basename(f)
25
+ fd.sub!(/\..*/,'')
26
+ (y, m, d) = fd.split('-')
27
+ next unless d
28
+ #print "#{y}|#{m}|#{d}\n"
29
+ fdd = Date.new(y.to_i, m.to_i, d.to_i)
30
+ if (fdd - today) < -$previous_days_to_save then
31
+ print "^^^ Too old - Deleting #{f}\n"
32
+ if File.delete(f) != 1 then
33
+ print "^^^ Error deleting #{f}\n"
34
+ end
35
+ end
36
+ }
37
+ end
38
+
39
+ def output_html(files, output)
40
+
41
+ out = "<HTML><HEAD><TITLE>TV Listings</TITLE></HEAD>\n"
42
+ out += "<BODY>\n\n<BR><BR>\n"
43
+ out += "<UL>\n"
44
+
45
+ files.each { |f|
46
+ fd = File.basename(f)
47
+ fd.sub!(/\..*/,'')
48
+ (y, m, d) = fd.split('-')
49
+ next unless d
50
+ #print "#{y}|#{m}|#{d}\n"
51
+ fdd = Date.new(y.to_i, m.to_i, d.to_i)
52
+
53
+ out += "<LI><A HREF=\"" + File.basename(f) + "\">"
54
+ out += File.basename(f) + "</A> --- " + Date::DAYNAMES[fdd.wday]
55
+ out += "\n"
56
+ }
57
+ out += "</UL>\n"
58
+ out += "<BR>\n"
59
+ out += "</BODY></HTML>\n"
60
+
61
+ out_file = File.open(output,"w+")
62
+ out_file.print out
63
+ out_file.close
64
+
65
+ end
66
+
67
+ html_files = Dir[tvlisting_dir + "*.html"]
68
+ delete_zero_files html_files
69
+
70
+ xml_files = Dir[tvlisting_dir + "20*.xml"]
71
+ delete_zero_files xml_files
72
+
73
+ html_files = Dir[tvlisting_dir + "*.html"]
74
+ delete_old_files html_files
75
+
76
+ xml_files = Dir[tvlisting_dir + "20*.xml"]
77
+ delete_old_files xml_files
78
+
79
+ html_files = Dir[tvlisting_dir + "*.html"].sort
80
+ output_html(html_files, tvlisting_dir+output)
81
+
82
+
@@ -0,0 +1,136 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Listings are save as YYYY-MM-DD.html (2003-07-01.html)
4
+ #
5
+ require 'date'
6
+
7
+ $days_to_get_in_advance = 3 # listings to view
8
+ $days_to_get = 7 # --days
9
+
10
+ # Where to store the listings
11
+ $tvlisting_dir = "/mnt/part5/www/tvlistings"
12
+ $tvlisting_data = $tvlisting_dir + "/data"
13
+
14
+ #$grab_cmd="/usr/bin/tv_grab_na_dd "
15
+ $grab_cmd="/usr/bin/tv_grab_na_dd --days " + $days_to_get.to_s + " "
16
+ $date_cmd="date +%F"
17
+
18
+ #grep 'programme start' tmp1.xml | awk -F\" '{ print $2 }' | awk '{ print $1 }' | sort | head -n 1
19
+
20
+ $pretend = false
21
+ #$pretend = true
22
+
23
+ $today = Date.today
24
+ $offset = 0
25
+ $got=0
26
+
27
+ def archive_data_listings
28
+ if (File.exists?($tvlisting_data)) and !File.stat($tvlisting_data).zero?
29
+ $stderr.print "* ${tvlisting_data} exists..."
30
+ end
31
+
32
+ end
33
+
34
+ # Get tvlistings for the next # days
35
+ def get_listings
36
+ $today.upto($today + $days_to_get_in_advance - 1) { |d|
37
+ tdate = d.to_s
38
+ input_file = $tvlisting_dir + "\/" + tdate + ".xml"
39
+
40
+ # tdate.sub!(/2003-/,'')
41
+ # tdate.sub!(/-/,'/')
42
+
43
+ $stdout.print " ^^^ Checking for #{input_file}\n"
44
+ if (! File.exists?(input_file)) or File.stat(input_file).zero?
45
+ run_me = $grab_cmd
46
+ run_me += " --offset " + $offset.to_s + " > "
47
+ output_file = $tvlisting_data + "_" + tdate
48
+ output_file += "_" + $days_to_get.to_s + ".tmp"
49
+ # output_file += "_" + $days_to_get_in_advance.to_s + ".tmp"
50
+ run_me += output_file
51
+
52
+ print run_me,"\n"
53
+ status = system(run_me) if ! $pretend
54
+ if !status
55
+ $stderr.print "Error ",status," occurred while running : ", run_me,"\n\n"
56
+ end
57
+ new_file = output_file.sub(/tmp/, "xml")
58
+ cmd = "tv_sort < " + output_file + " > " + new_file
59
+ print cmd,"\n"
60
+ status = system(cmd) if ! $pretend
61
+ if !status
62
+ $stderr.print "Error ",status," occurred while running : #{cmd}\n\n"
63
+ end
64
+ break # Only interested in first file missing
65
+ end
66
+ $offset += 1
67
+ }
68
+ end
69
+
70
+ # For each 'data' file seperate into 1 day listings
71
+ def seperate_listings
72
+ files = Dir[$tvlisting_dir + "/data*.xml"]
73
+
74
+ files.each { |f|
75
+ fd = File.basename(f)
76
+ # $stdout.print "#{f}\n"
77
+ # $stdout.print "#{fd}\n"
78
+ t = fd.sub(/data_/,'')
79
+ t = t.sub!(/\.xml/,'')
80
+ # $stdout.print "#{t}\n"
81
+ (d, count) = t.split("_")
82
+ # $stdout.print "#{d}\n"
83
+ # $stdout.print "#{count}\n"
84
+ (year, month, day) = d.split("-")
85
+ # $stdout.print "#{year}, #{month}, #{day}\n"
86
+
87
+ starting_date = Date.new(year.to_i, month.to_i, day.to_i)
88
+ starting_date.upto(starting_date + count.to_i - 1) { |d|
89
+ tdate = d.to_s
90
+ ndate = (d + 1).to_s
91
+ input_file = $tvlisting_dir + "\/" + tdate + ".xml"
92
+
93
+ $stdout.print "* Checking for #{input_file}..."
94
+ if (! File.exists?(input_file)) or File.stat(input_file).zero?
95
+ $stdout.print " not there.\n"
96
+ cmd = "tv_grep --on-after " + tdate
97
+ cmd += " --on-before " + ndate
98
+ cmd += " < " + f
99
+ cmd += " > " + input_file
100
+ $stdout.print "#{cmd}\n"
101
+ status = system(cmd)
102
+ if !status
103
+ $stderr.print "Error ",status," occurred while running : #{cmd}\n\n"
104
+ end
105
+ else
106
+ $stdout.print " found it!\n"
107
+ end
108
+ }
109
+ }
110
+
111
+ end
112
+
113
+ def delete_old_files(files)
114
+ files.each { |f|
115
+ print "^^^ Deleting #{f}\n"
116
+ if File.delete(f) != 1 then
117
+ print "^^^ Error deleting #{f}\n"
118
+ end
119
+ }
120
+ end
121
+
122
+ get_listings
123
+ seperate_listings
124
+
125
+ data_files = Dir[$tvlisting_dir + "/data*.tmp"]
126
+ delete_old_files data_files
127
+ data_files = Dir[$tvlisting_dir + "/data*.xml"]
128
+ delete_old_files data_files
129
+
130
+ #if $got > 0
131
+ # $stdout.print " ^^^ Downloaded #{$got} days of TV listings.\n"
132
+ #else
133
+ # $stdout.print " ^^^ TV listings are current.\n"
134
+ #end
135
+
136
+
data/popup.js ADDED
@@ -0,0 +1,227 @@
1
+ <!--
2
+ /*
3
+ Pleas leave this notice.
4
+ DHTML tip message version 1.2 copyright Essam Gamal 2003 (http://migoicons.tripod.com, migoicons@hotmail.com)
5
+ All modifications are done in the style.js you should not modify this file. Created on : 06/03/2003
6
+ Script featured on and can be found at Dynamic Drive (http://www.dynamicdrive.com)
7
+ */
8
+
9
+ var ua = navigator.userAgent
10
+ var ps = navigator.productSub
11
+ var dom = (document.getElementById)? 1:0
12
+ var ie4 = (document.all&&!dom)? 1:0
13
+ var ie5 = (document.all&&dom)? 1:0
14
+ var nn4 =(navigator.appName.toLowerCase() == "netscape" && parseInt(navigator.appVersion) == 4)
15
+ var nn6 = (dom&&!ie5)? 1:0
16
+ var sNav = (nn4||nn6||ie4||ie5)? 1:0
17
+ var cssFilters = ((ua.indexOf("MSIE 5.5")>=0||ua.indexOf("MSIE 6")>=0)&&ua.indexOf("Opera")<0)? 1:0
18
+ var Style=[],Text=[],Count=0,sbw=0,move=0,hs="",mx,my,scl,sct,ww,wh,obj,sl,st,ih,iw,vl,hl,sv,evlh,evlw,tbody
19
+ var HideTip = "eval(obj+sv+hl+';'+obj+sl+'=0;'+obj+st+'=-800')"
20
+ var doc_root = ((ie5&&ua.indexOf("Opera")<0||ie4)&&document.compatMode=="CSS1Compat")? "document.documentElement":"document.body"
21
+ var PX = (nn6)? "px" :""
22
+
23
+ if(sNav) {
24
+ window.onresize = ReloadTip
25
+ document.onmousemove = MoveTip
26
+ if(nn4) document.captureEvents(Event.MOUSEMOVE)
27
+ }
28
+ if(nn4||nn6) {
29
+ mx = "e.pageX"
30
+ my = "e.pageY"
31
+ scl = "window.pageXOffset"
32
+ sct = "window.pageYOffset"
33
+ if(nn4) {
34
+ obj = "document.TipLayer."
35
+ sl = "left"
36
+ st = "top"
37
+ ih = "clip.height"
38
+ iw = "clip.width"
39
+ vl = "'show'"
40
+ hl = "'hide'"
41
+ sv = "visibility="
42
+ }
43
+ else obj = "document.getElementById('TipLayer')."
44
+ }
45
+ if(ie4||ie5) {
46
+ obj = "TipLayer."
47
+ mx = "event.x"
48
+ my = "event.y"
49
+ scl = "eval(doc_root).scrollLeft"
50
+ sct = "eval(doc_root).scrollTop"
51
+ if(ie5) {
52
+ mx = mx+"+"+scl
53
+ my = my+"+"+sct
54
+ }
55
+ }
56
+ if(ie4||dom){
57
+ sl = "style.left"
58
+ st = "style.top"
59
+ ih = "offsetHeight"
60
+ iw = "offsetWidth"
61
+ vl = "'visible'"
62
+ hl = "'hidden'"
63
+ sv = "style.visibility="
64
+ }
65
+ if(ie4||ie5||ps>=20020823) {
66
+ ww = "eval(doc_root).clientWidth"
67
+ wh = "eval(doc_root).clientHeight"
68
+ }
69
+ else {
70
+ ww = "window.innerWidth"
71
+ wh = "window.innerHeight"
72
+ evlh = eval(wh)
73
+ evlw = eval(ww)
74
+ sbw=15
75
+ }
76
+
77
+ function applyCssFilter(){
78
+ if(cssFilters&&FiltersEnabled) {
79
+ var dx = " progid:DXImageTransform.Microsoft."
80
+ TipLayer.style.filter = "revealTrans()"+dx+"Fade(Overlap=1.00 enabled=0)"+dx+"Inset(enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=in enabled=0)"+dx+"Iris(irisstyle=PLUS,motion=out enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=in enabled=0)"+dx+"Iris(irisstyle=DIAMOND,motion=out enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=in enabled=0)"+dx+"Iris(irisstyle=CROSS,motion=out enabled=0)"+dx+"Iris(irisstyle=STAR,motion=in enabled=0)"+dx+"Iris(irisstyle=STAR,motion=out enabled=0)"+dx+"RadialWipe(wipestyle=CLOCK enabled=0)"+dx+"RadialWipe(wipestyle=WEDGE enabled=0)"+dx+"RadialWipe(wipestyle=RADIAL enabled=0)"+dx+"Pixelate(MaxSquare=35,enabled=0)"+dx+"Slide(slidestyle=HIDE,Bands=25 enabled=0)"+dx+"Slide(slidestyle=PUSH,Bands=25 enabled=0)"+dx+"Slide(slidestyle=SWAP,Bands=25 enabled=0)"+dx+"Spiral(GridSizeX=16,GridSizeY=16 enabled=0)"+dx+"Stretch(stretchstyle=HIDE enabled=0)"+dx+"Stretch(stretchstyle=PUSH enabled=0)"+dx+"Stretch(stretchstyle=SPIN enabled=0)"+dx+"Wheel(spokes=16 enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=0,motion=reverse enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=forward enabled=0)"+dx+"GradientWipe(GradientSize=1.00,wipestyle=1,motion=reverse enabled=0)"+dx+"Zigzag(GridSizeX=8,GridSizeY=8 enabled=0)"+dx+"Alpha(enabled=0)"+dx+"Dropshadow(OffX=3,OffY=3,Positive=true,enabled=0)"+dx+"Shadow(strength=3,direction=135,enabled=0)"
81
+ }
82
+ }
83
+
84
+ function stm(t,s) {
85
+ if(sNav) {
86
+ if(t.length<2||s.length<25) {
87
+ var ErrorNotice = "DHTML TIP MESSAGE VERSION 1.2 ERROR NOTICE.\n"
88
+ if(t.length<2&&s.length<25) alert(ErrorNotice+"It looks like you removed an entry or more from the Style Array and Text Array of this tip.\nTheir should be 25 entries in every Style Array even though empty and 2 in every Text Array. You defined only "+s.length+" entries in the Style Array and "+t.length+" entry in the Text Array. This tip won't be viewed to avoid errors")
89
+ else if(t.length<2) alert(ErrorNotice+"It looks like you removed an entry or more from the Text Array of this tip.\nTheir should be 2 entries in every Text Array. You defined only "+t.length+" entry. This tip won't be viewed to avoid errors.")
90
+ else if(s.length<25) alert(ErrorNotice+"It looks like you removed an entry or more from the Style Array of this tip.\nTheir should be 25 entries in every Style Array even though empty. You defined only "+s.length+" entries. This tip won't be viewed to avoid errors.")
91
+ }
92
+ else {
93
+ var ab = "" ;var ap = ""
94
+ var titCol = (s[0])? "COLOR='"+s[0]+"'" : ""
95
+ var txtCol = (s[1])? "COLOR='"+s[1]+"'" : ""
96
+ var titBgCol = (s[2])? "BGCOLOR='"+s[2]+"'" : ""
97
+ var txtBgCol = (s[3])? "BGCOLOR='"+s[3]+"'" : ""
98
+ var titBgImg = (s[4])? "BACKGROUND='"+s[4]+"'" : ""
99
+ var txtBgImg = (s[5])? "BACKGROUND='"+s[5]+"'" : ""
100
+ var titTxtAli = (s[6] && s[6].toLowerCase()!="left")? "ALIGN='"+s[6]+"'" : ""
101
+ var txtTxtAli = (s[7] && s[7].toLowerCase()!="left")? "ALIGN='"+s[7]+"'" : ""
102
+ var add_height = (s[15])? "HEIGHT='"+s[15]+"'" : ""
103
+ if(!s[8]) s[8] = "Verdana,Arial,Helvetica"
104
+ if(!s[9]) s[9] = "Verdana,Arial,Helvetica"
105
+ if(!s[12]) s[12] = 1
106
+ if(!s[13]) s[13] = 1
107
+ if(!s[14]) s[14] = 200
108
+ if(!s[16]) s[16] = 0
109
+ if(!s[17]) s[17] = 0
110
+ if(!s[18]) s[18] = 10
111
+ if(!s[19]) s[19] = 10
112
+ hs = s[11].toLowerCase()
113
+ if(ps==20001108){
114
+ if(s[2]) ab="STYLE='border:"+s[16]+"px solid"+" "+s[2]+"'"
115
+ ap="STYLE='padding:"+s[17]+"px "+s[17]+"px "+s[17]+"px "+s[17]+"px'"}
116
+ var closeLink=(hs=="sticky")? "<TD ALIGN='right'><FONT SIZE='"+s[12]+"' FACE='"+s[8]+"'><A HREF='javascript:void(0)' ONCLICK='stickyhide()' STYLE='text-decoration:none;color:"+s[0]+"'><B>Close</B></A></FONT></TD>":""
117
+ var title=(t[0]||hs=="sticky")? "<TABLE WIDTH='100%' BORDER='0' CELLPADDING='5' CELLSPACING='0'><TR><TD "+titTxtAli+"><FONT SIZE='"+s[12]+"' FACE='"+s[8]+"' "+titCol+"><B>"+t[0]+"</B></FONT></TD>"+closeLink+"</TR></TABLE>" : ""
118
+ var txt="<TABLE "+titBgImg+" "+ab+" WIDTH='"+s[14]+"' BORDER='0' CELLPADDING='"+s[16]+"' CELLSPACING='0' "+titBgCol+" ><TR><TD>"+title+"<TABLE WIDTH='100%' "+add_height+" BORDER='0' CELLPADDING='"+s[17]+"' CELLSPACING='0' "+txtBgCol+" "+txtBgImg+"><TR><TD "+txtTxtAli+" "+ap+" VALIGN='top'><FONT SIZE='"+s[13]+"' FACE='"+s[9]+"' "+txtCol +">"+t[1]+"</FONT></TD></TR></TABLE></TD></TR></TABLE>"
119
+ if(nn4) {
120
+ with(eval(obj+"document")) {
121
+ open()
122
+ write(txt)
123
+ close()
124
+ }
125
+ }
126
+ else eval(obj+"innerHTML=txt")
127
+ tbody = {
128
+ Pos:s[10].toLowerCase(),
129
+ Xpos:s[18],
130
+ Ypos:s[19],
131
+ Transition:s[20],
132
+ Duration:s[21],
133
+ Alpha:s[22],
134
+ ShadowType:s[23].toLowerCase(),
135
+ ShadowColor:s[24],
136
+ Width:parseInt(eval(obj+iw)+3+sbw)
137
+ }
138
+ if(ie4) {
139
+ TipLayer.style.width = s[14]
140
+ tbody.Width = s[14]
141
+ }
142
+ Count=0
143
+ move=1
144
+ }
145
+ }
146
+ }
147
+
148
+ function MoveTip(e) {
149
+ if(move) {
150
+ var X,Y,MouseX = eval(mx),MouseY = eval(my); tbody.Height = parseInt(eval(obj+ih)+3)
151
+ tbody.wiw = parseInt(eval(ww+"+"+scl)); tbody.wih = parseInt(eval(wh+"+"+sct))
152
+ switch(tbody.Pos) {
153
+ case "left" : X=MouseX-tbody.Width-tbody.Xpos; Y=MouseY+tbody.Ypos; break
154
+ case "center": X=MouseX-(tbody.Width/2); Y=MouseY+tbody.Ypos; break
155
+ case "float": X=tbody.Xpos+eval(scl); Y=tbody.Ypos+eval(sct); break
156
+ case "fixed": X=tbody.Xpos; Y=tbody.Ypos; break
157
+ default: X=MouseX+tbody.Xpos; Y=MouseY+tbody.Ypos
158
+ }
159
+
160
+ if(tbody.wiw<tbody.Width+X) X = tbody.wiw-tbody.Width
161
+ if(tbody.wih<tbody.Height+Y+sbw) {
162
+ if(tbody.Pos=="float"||tbody.Pos=="fixed") Y = tbody.wih-tbody.Height-sbw
163
+ else Y = MouseY-tbody.Height
164
+ }
165
+ if(X<0) X=0
166
+ eval(obj+sl+"=X+PX;"+obj+st+"=Y+PX")
167
+ ViewTip()
168
+ }
169
+ }
170
+
171
+ function ViewTip() {
172
+ Count++
173
+ if(Count == 1) {
174
+ if(cssFilters&&FiltersEnabled) {
175
+ for(Index=28; Index<31; Index++) { TipLayer.filters[Index].enabled = 0 }
176
+ for(s=0; s<28; s++) { if(TipLayer.filters[s].status == 2) TipLayer.filters[s].stop() }
177
+ if(tbody.Transition == 51) tbody.Transition = parseInt(Math.random()*50)
178
+ var applyTrans = (tbody.Transition>-1&&tbody.Transition<24&&tbody.Duration>0)? 1:0
179
+ var advFilters = (tbody.Transition>23&&tbody.Transition<51&&tbody.Duration>0)? 1:0
180
+ var which = (applyTrans)?0:(advFilters)? tbody.Transition-23:0
181
+ if(tbody.Alpha>0&&tbody.Alpha<100) {
182
+ TipLayer.filters[28].enabled = 1
183
+ TipLayer.filters[28].opacity = tbody.Alpha
184
+ }
185
+ if(tbody.ShadowColor&&tbody.ShadowType == "simple") {
186
+ TipLayer.filters[29].enabled = 1
187
+ TipLayer.filters[29].color = tbody.ShadowColor
188
+ }
189
+ else if(tbody.ShadowColor&&tbody.ShadowType == "complex") {
190
+ TipLayer.filters[30].enabled = 1
191
+ TipLayer.filters[30].color = tbody.ShadowColor
192
+ }
193
+ if(applyTrans||advFilters) {
194
+ eval(obj+sv+hl)
195
+ if(applyTrans) TipLayer.filters[0].transition = tbody.Transition
196
+ TipLayer.filters[which].duration = tbody.Duration
197
+ TipLayer.filters[which].apply()
198
+ }
199
+ }
200
+ eval(obj+sv+vl)
201
+ if(cssFilters&&FiltersEnabled&&(applyTrans||advFilters)) TipLayer.filters[which].play()
202
+ if(hs == "sticky") move=0
203
+ }
204
+ }
205
+
206
+ function stickyhide() {
207
+ eval(HideTip)
208
+ }
209
+
210
+ function ReloadTip() {
211
+ if(nn4&&(evlw!=eval(ww)||evlh!=eval(wh))) location.reload()
212
+ else if(hs == "sticky") eval(HideTip)
213
+ }
214
+
215
+ function htm() {
216
+ if(sNav) {
217
+ if(hs!="keep") {
218
+ move=0;
219
+ if(hs!="sticky") eval(HideTip)
220
+ }
221
+ }
222
+ }
223
+
224
+
225
+ //-->
226
+
227
+
data/xmltv2html.css ADDED
@@ -0,0 +1,75 @@
1
+
2
+ body {
3
+ background-color: white;
4
+ color: black;
5
+ font-family: Arial, Helvetica, sans-serif;
6
+ font-size: 100%;
7
+ }
8
+
9
+ .channel
10
+ {
11
+ color: yellow;
12
+ background-color: red;
13
+ }
14
+ .time
15
+ {
16
+ color: white;
17
+ background-color: blue;
18
+ text-align: left;
19
+ }
20
+ .programme
21
+ {
22
+ color: red;
23
+ background-color: white;
24
+ }
25
+ .sports-event
26
+ {
27
+ color: red;
28
+ background-color: #99FF99;
29
+ }
30
+ .news
31
+ {
32
+ color: red;
33
+ background-color: #66CCFF;
34
+ }
35
+ .favorite
36
+ {
37
+ color: red;
38
+ background-color: yellow;
39
+ font-weight: bolder;
40
+ font-style: italic;
41
+ }
42
+
43
+ .date_in_time
44
+ {
45
+ color: yellow;
46
+ background-color: blue;
47
+ font-style: italic;
48
+ text-align: right;
49
+ font-size: smaller;
50
+ }
51
+
52
+ .info
53
+ {
54
+ color: green;
55
+ # background-color: blue;
56
+ font-style: italic;
57
+ font-weight: bolder;
58
+ }
59
+ .dummy
60
+ {
61
+ color: green;
62
+ background-color: white;
63
+ }
64
+
65
+ a.links {
66
+ text-decoration: none;
67
+ background: white;
68
+ color: red;
69
+ font-weight: bolder;
70
+ }
71
+ a.links:hover {
72
+ text-decoration: underline;
73
+ }
74
+
75
+