#!/mod/bin/jimsh package require cgi source /mod/webif/lib/setup require settings.class jqplugin enadis qtip2 jscss {} style.css header require epg.class spinner.class altrow epg_search totop system.class set irinst [system pkginst ir] set settings [settings] if {[$settings chanchangenc]} { puts { } } else { jqplugin confirmAction puts { } } if {[$settings service_style] eq "standard"} { set surl xservice } else { set surl service } [spinner new { text "Loading EPG Information..." size "1.2em" style "margin: 1em;" }] start require epg_popup set now [clock seconds] set stt [cgi_get stt $now] set dst [expr $now - $stt] if {$dst >= 0 && $dst < 1800} { set current 1 } elseif { $stt < [expr int ($now / 86400) * 86400] } { set stt $now set current 0 } else { set current 0 } set favgroup [$settings channel_group] set hours [cgi_get hours -] if {$hours eq "-"} { set hours [expr 1.0 * [[settings] xepghours]] } if {$hours == 0} { set hours 4.0 } if {$hours < 1} { set hours 1.0 } if {$hours > 8} { set hours 8.0 } set seconds $($hours * 3600) set ostt $stt set stt [expr int($stt / 1800.0) * 1800] set ett $(int($stt + $seconds)) set offset 0 if {$current} { set offset $(($ostt - $stt) / 1800.0) } set chanpx 160 set eventpx 1000 set totalpx $($chanpx + $eventpx) set contwidth $($totalpx + 50) set hourpx $($eventpx / $hours) set minpx $($hourpx / 60.0) set secpx $($minpx / 60.0) set start [clock milliseconds] if {$::qepg} { set args [list -trange "$stt:$ett" -ljoin 1] if {$favgroup} { lappend args -fav $favgroup } set records [epg dbfetch dump {*}$args] } else { require channelsort set records [channelsort [epg dbfetch dump -trange "$stt:$ett"]] } set got [clock milliseconds] proc but {label time {active 1}} { puts -nonewline "" } puts "" puts "
" ###################################################################### # Time-jump bar puts "
Jump to: 
" set starthour [clock format $stt -format "%H"] for {set i 0} {$i < 24} {incr i} { if {$i < 13} { set disp $i } else { set disp $($i - 12) } if {!$disp} { set disp 12 } set xclass "" if {$i == $starthour} { append xclass " tjstart" } elseif {$i > $starthour && $i < [expr $starthour + $hours]} { append xclass " tjother" } set tt [expr $starthour + $stt + 3600 * ($i - $starthour)] # Back to start of hour set tt $(3600 * int($tt / 3600)) if {$xclass ne "" || $i == 0 || $i == 12} { append disp "
[clock format $tt -format %p]" } puts "
$disp
\n" } puts "
 " but "Now" $now puts "
" ###################################################################### # Day-jump bar puts "
" set stt_time [clock format $stt -format "%H:%M"] for {set i 0} {$i < 8} {incr i} { set day $($now + $i * 86400) if {!$i} { set s "Today" } else { set s [clock format $day -format "%A"] } set xclass "" if {[clock format $day -format "%j"] == \ [clock format $stt -format "%j"]} { append xclass " dayjump_current" } set tt [clock scan \ [clock format $day -format "%Y:%m:%d:$stt_time"] \ -format "%Y:%m:%d:%H:%M"] set alt [clock format $tt -format "%e %B"] puts "
$s
\n" } puts "
" puts "  (Right-Click to select end hour)" puts "
" ###################################################################### # Time-line bar # Displays the top border above the timeline. puts "
[clock format $stt -format "%A %e %B"]  
" for {set i 0} {$i < $hours * 2} {incr i} { puts "
" puts "[clock format $($stt + 1800 * $i) -format "%H:%M"]
" } # Close timeline div puts "
" ###################################################################### # Events puts " " jscss script.js puts "
" if {[$settings epgscroll]} { puts "
" } else { puts "
" } set lim 0 set lcn 0 set bg "odd" foreach e $records { set chnum [$e get channel_num] if {$chnum == 0} { continue } if {$chnum != $lcn} { puts "" set lcn $chnum set le 0 set pos 0 if {$bg eq "odd"} { set bg "even" } else { set bg "odd" } } if {[$e get event_id] eq ""} { # No data for this service and time period set px $(($ett - $stt) * $secpx) puts "
No EPG data for this time range...
" continue } set es [$e get start] set ee [expr $es + [$e get duration]] if {$es < $le} continue set perc [$e percent] set showing 0 if {$perc > 0 && $perc < 100} { set showing 1 } set txt [list [cgi_quote_html [$e get name]] "([\ clock format $es -format "%H:%M"] - [\ clock format $ee -format "%H:%M"])[\ expr {$showing? " ($perc%)": ""}]"] if {$es < $stt} { set es $stt } if {$ee > $ett} { set ee $ett } set left [expr int(($es - $stt) * $secpx)] set right [expr int(($ee - $stt - 1) * $secpx)] if {$le == 0 && $es > $stt} { # EPG data carried over from previous day have been purged set pos $left puts "
Unknown
" } set px $($right - $left) if {$pos < $left} { set px $($px + $left - $pos - 1) } elseif {$pos > $left} { set px $($px - ($pos - $left - 1)) } set le $ee incr pos $px $e process_sched set recopts 1 if {[$e get series_crid] ne ""} { set recopts 2 } set lbg $bg # Set backround if scheduled. 1 1-off, 2 series, 3 recorded, 4 skipped switch -- [$e scheduled] { 1 { set lbg "blueshade" } 2 { set lbg "blueshade" } 3 { set lbg "pinkshade" } 4 { set lbg "orangeshade" } default {} } puts "" } puts "
" puts "
" puts "
" set earlier $($stt - 3600 * 4) puts "
Visit settings to change EPG options.
" epg cleanup set end [clock milliseconds] puts " Retrieved in: [expr ($got - $start) / 1000.0] seconds. " footer