webif/var/mongoose/cgi-bin/epg_search.jim

145 lines
3.2 KiB
Plaintext
Raw Normal View History

#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/epg.class
source /mod/var/mongoose/lib/altrow
puts "Content-Type: text/html"
puts ""
source /mod/var/mongoose/html/lib/header.jim
puts "<script type=text/javascript src=/js/highlight.js></script>"
cgi_input
#cgi_dump
#set _cgi [dict create term "doctor who"]
#set env(REQUEST_URI) "test"
set term ""
catch { set term [dict get $_cgi term] }
set cmd "search"
if {[dict exists $_cgi full]} { set cmd "searchall" }
set ct 0
catch { set ct [dict get $_cgi ct] }
puts "
<form method=get action=/cgi-bin/epg_search.jim>
Search EPG: <input name=term size=20 maxlength=255 value=\"$term\">
<input type=checkbox name=full"
if {[dict exists $_cgi full]} { puts " checked" }
puts ">Search descriptions as well as titles.
<input type=submit value=Search>
"
set db [sqlite3.open /var/lib/humaxtv/setup.db]
set res [$db query {
select itemBlob from TBL_USERCONFIG
where itemName like 'EPG\_KEYWORD\_%%' ESCAPE '\'
}]
proc cts {type img text} {
puts "<a href=$::env(REQUEST_URI)?ct=$type>
<img height=18 border=0 src=/images/173_3_00_G3_$img.png>&nbsp;$text</a>";
}
puts {
<br>
<div style="float: left; clear: left; width: 15em">
Content Type Searches:
</div>
<div style="float: left">
}
cts 1 "Movie" "Film/Drama"
cts 2 "News" "News/Current affairs"
cts 3 "Show" "Show/Game show"
cts 4 "Sports" "Sport"
cts 5 "Children" "Children"
cts 10 "Leisure" "Leisure"
puts {
</div>
<div style="float: left; margin-left: 15em">
}
cts 6 "Music" "Music/Ballet/Dance"
cts 7 "Art" "Arts/Culture"
cts 8 "Society" "Social/Political/Economic"
cts 9 "Education" "Education/Science/Factual"
puts { </div> }
if {[llength $res] > 0} {
puts {
<div style="float: left; clear: left; width: 15em">
Keyword Searches:
</div>
<div style="float: left">
}
set done 0
foreach keyword $res {
if {$done == 1} { puts "&nbsp;|&nbsp;" } else { incr done }
set kw [string range [lindex $keyword 1] 1 end]
puts "<a href=$env(REQUEST_URI)?term=[cgi_quote_url $kw]>$kw
</a>"
}
puts "</div>"
}
$db close
puts "</form>"
if {$ct > 0 } {
set records [epg fetch dump -type $ct]
} elseif {$term ne ""} {
set records [epg fetch $cmd -extra $term]
}
puts {
<table class=borders id=results style="clear: both;margin: 0.5em 0 0 0">
<tr>
<th>Date</th>
<th colspan=2>Channel</th>
<th>Programme</th>
<th>Synopsis</th>
</tr>
}
proc rsort {v1 v2} {
set v1s [$v1 get start]
set v2s [$v2 get start]
if {$v1s == $v2s} { return 0 }
if {$v1s > $v2s } { return 1 }
return -1
}
set i 0
foreach record [lsort -command rsort $records] {
altrow
puts "<td nowrap>
[clock format [$record get start] -format "%a %d %b %Y"]<br>
[clock format [$record get start] -format "%H:%M %Z"]</td>"
puts "<td>[$record get channel_num]</td>"
puts "<td nowrap>
<a href=/cgi-bin/epg_service.jim?service=[$record get service_id]>
[$record get channel_name]
</a></td>"
puts [$record cell]
puts "<td>[$record get text]</td><td>[$record get warning]</td>"
puts "</tr>"
flush stdout
}
puts "</table>"
if {$term != ""} {
puts "
<script type=text/javascript>
highlight(document.getElementById(\"results\"), \"$term\");
</script>
"
}
epg cleanup
source /mod/var/mongoose/html/lib/footer.jim