#!/mod/bin/jimsh package require cgi package require sqlite3 source /mod/webif/lib/setup require altrow progressbar epg.class puts "Content-Type: text/html" puts "" header cgi_input proc f2c {frequency} { set ch int($((($frequency / 1000) - 303.25) / 8)) return [expr int($ch)] } if {[catch {set db [sqlite3.open /var/lib/humaxtv/channel.db]} msg]} { puts "Error opening channel database: $msg" exit } puts " <button id=expandall>Expand All</button> <button id=collapseall>Collapse All</button> <br><br> <table class=borders> <tr> <th>Channel</th> <th>Frequency</th> <th>Signal Strength</th> <th>Signal Quality</th> <th>Network</th> <th>Mux</th> <th>Channels</th> <th>>799</th> </tr> " foreach tw [$db query { select tsIdx, szNetName, usTsID, ulFrequency, ucLevel, ucQuality from TBL_TS join TBL_NET using (netIdx) order by ulFrequency }] { lassign $tw \ x tsIdx x netName x usTsID x ulFrequency x ucLevel x ucQuality altrow puts " <td>[f2c $ulFrequency]</td> <td>[expr $ulFrequency / 1000.0] MHz</td> " puts "<td>[progressbar $ucLevel]</td>" puts "<td>[progressbar $ucQuality]</td>" puts "<td>[string range $netName 3 end]</td>" set channels [$db query { select usLcn, szSvcName, szPrvName, aucDefaultAuthority from TBL_SVC left join TBL_PRV using (prvIdx) where tsIdx = %s order by usLcn } $tsIdx] set mux "Local" set ehs 0 foreach chan $channels { lassign $chan x lcn x name set name [string range $name 1 end] if {$lcn >= 800} { incr ehs } switch $name { "BBC ONE" { set mux "PSB1/BBC A" } "ITV1" { set mux "PSB2/D3&4" } "BBC One HD" { set mux "PSB3/BBC B (HD)" } "ITV3" { set mux "COM4/SDN" } "Dave" { set mux "COM5/ARQ A" } "Film4" { set mux "COM6/ARQ B" } "Movies4Men" { set mux "Local" } } } puts "<td>$mux</td>" puts "<td>[llength $channels] <a class=mchan ts=$tsIdx href=#> <img border=0 height=14 src=/images/421_1_00_CH_Title_2R_Arrow.png> view </a></td>" puts "<td>$ehs</th>" puts "</tr>" puts "<tr id=mchan_$tsIdx class=mchan style=\"display: none\"> <td colspan=5>" puts "<table style=\"margin-left: 5em\">" puts "<tr> <th colspan=3>Channel</th> <th>Provider</th> <th>Authority</th> </tr>" foreach chan $channels { lassign $chan x lcn x name x prv x auth set name [string range $name 1 end] set prv [string range $prv 3 end] altrow puts "<td class=va>" puts "[epg channelicon $name 50]</td> <td>$lcn</td><td>$name</td>" puts "</td><td>" puts $prv puts "</td><td>" puts $auth puts "</td>" puts "</tr>" } puts "</table>" puts "</td></tr>" } puts "</table>" puts { <script type=text/javascript> $(document).ready(function() { $('a.mchan').click(function(e) { e.preventDefault(); $('#mchan_' + $(this).attr('ts')).slideToggle('slow'); }); $('#expandall').button().click(function() { $('tr.mchan').slideDown('slow'); }); $('#collapseall').button().click(function() { $('tr.mchan').slideUp('slow'); }); }); </script> }