# # get channel callsign # proc ltk_getcallsign {sp} { set station [dbobj $sp get Station] set callsign [dbobj $station get CallSign] return $callsign } # # get channel number # proc ltk_getchannum {sp} { global channeltablestation set station [dbobj $sp get Station] set stationfsid [dbobj $station fsid] set data $channeltablestation($stationfsid) set channum [lindex $data 0] return $channum } # # get channel name # proc ltk_getchanname {sp} { set station [dbobj $sp get Station] set channame [strim [dbobj $station get Name]] return $channame } proc action_tvd_cshow {chan path env} { # # Set global variable # global db global tzoffset global tivoswversion set date [expr [clock seconds]/86400] set datestr $date set time [expr [clock seconds]%86400] RetryTransaction { set state [db $db open "/State/MyWorld"] set channel [dbobj $state get LastChannel] set chnum [ltk_getchannum $channel] set chname [ltk_getchanname $channel] set chsign [ltk_getcallsign $channel] set station [dbobj $channel get Station] set stationfsid [dbobj $station fsid] set schedlist [get_fsidbyprefix "/Schedule" "$stationfsid:$datestr:"] if { [scan [lindex $schedlist 1] "%d:%d:%d:%d:" dummy dummy2 starttimesched duration] == 4 } { if {$starttimesched > $time} { set datestr [expr $date - 1] set schedlist [get_fsidbyprefix "/Schedule" "$stationfsid:$datestr:"] if { [scan [lindex $schedlist 1] "%d:%d:%d:%d:" dummy dummy2 starttimesched duration] != 4 } { error "Invalid /Schedule format: '[lindex $schedlist 1]'" } } if { $::dtivo } { if {$starttimesched + $duration <= $time} { set stoptimestr [format "%05d" [expr $starttimesched + $duration]] set schedlist [get_fsidbyprefix "/Schedule" "$stationfsid:$datestr:$stoptimestr:"] } } } else { error "Invalid /Schedule format: '[lindex $schedlist 1]'" } } if { $schedlist == "" } { error "ERROR: Can't determine current channel!" } else { RetryTransaction { set stationday [db $db openid [lindex $schedlist 0]] set showings [dbobj $stationday get Showing] foreach showing $showings { set duration [dbobj $showing get Duration] set starttime [dbobj $showing get Time] set startdate [dbobj $showing get Date] set secs [expr [dbobj $showing get Date] * 86400 + [dbobj $showing get Time] + $tzoffset] set starttimestr [clock format $secs] set durationstr [clock format $duration -format "%R"] if { $starttime <= $time && ($starttime + $duration) > $time } { set program [dbobj $showing get Program] puts $chan "Channel_Number: $chnum" puts $chan "Channel_Name: $chname" puts $chan "Channel_Call: $chsign" puts $chan "Program: [strim [dbobj $program get Title]]" puts $chan "Episode: [strim [dbobj $program get EpisodeTitle]]" puts $chan "Description: [strim [dbobj $program get Description]]" puts $chan "Start_Time: $starttimestr" puts $chan "Duration: $durationstr" } } } set selectiontypes "{Show Recommendation} {Package Recommendation} {By Name} {By Channel} Manual {Suggestion} {Fuzzy Package} Bookmark {Season Pass} {Manual Season Pass} Guide IPreview WishListPass Extended ManualExtended CaptureRequest" set presentationbehtypes "Single {Season Pass} Wishlist {Watch Only} {Tivo Clips} Suggestion {Tivo Clips Suggestion} Invisible {Manual Season Pass} Manual {Cache History}" set seltypestr "Not Recording" ForeachMfsFile id name "tyDb" "/Recording/InProgress" "" { RetryTransaction { set inprog [db $db openid $id] if {$::version3} { set recbeh [dbobj $inprog get RecordingBehavior] set diskbeh [dbobj $recbeh get DiskBehavior] if {$diskbeh != 12} { set presbeh [dbobj $recbeh get PresentationBehavior] set seltypestr [lindex $presentationbehtypes [expr $presbeh - 1]] } } else { set contenttype [dbobj $inprog get ContentType] if {$contenttype != 3} { set seltype [dbobj $inprog get SelectionType] set seltypestr [lindex $selectiontypes [expr $seltype - 1]] } } } } puts $chan "Recording: $seltypestr" } set cur_temp [exec cat /proc/therm] if {$::version3} { RetryTransaction { set setup [db $db open /State/GeneralConfig] } } else { RetryTransaction { set setup [db $db open /Setup] } } set uptime [lindex [exec cat /proc/uptime] 0] set uptime [expr int($uptime)] set uptimestr [format "%dd %dh %02dm %02ds" [expr $uptime / 86400] [expr ($uptime % 86400) / 3600] [expr ($uptime % 3600) / 60] [expr $uptime % 60]] puts $chan "Temperature: $cur_temp" puts $chan "Version: $tivoswversion" puts $chan "Uptime: $uptimestr" } register_module "tvd_cshow" "TVD Currently Showing" "TVD's currently showing."