2011-07-05 00:19:02 +00:00
|
|
|
source /mod/var/mongoose/lib/setup
|
|
|
|
|
|
|
|
if {![exists -proc class ]} { package require oo }
|
|
|
|
if {![exists -proc sqlite3.open ]} { package require sqlite3 }
|
|
|
|
if {![exists -proc settings ]} { require settings.class }
|
|
|
|
|
|
|
|
set rsvdb [sqlite3.open /var/lib/humaxtv/rsv.db]
|
|
|
|
$rsvdb query {attach database '/var/lib/humaxtv/channel.db' as channel}
|
|
|
|
|
|
|
|
class rsv {
|
|
|
|
ulslot 0
|
|
|
|
ersvtype 0
|
|
|
|
hsvc 0
|
|
|
|
nsttime 0
|
|
|
|
szsttime 0
|
|
|
|
nduration 0
|
|
|
|
erepeat 0
|
|
|
|
usevtid 0
|
|
|
|
szevtname {}
|
|
|
|
ulPreOffset 0
|
|
|
|
ulPostOffset 0
|
|
|
|
ulProgramId 0
|
|
|
|
ulSeriesId 0
|
|
|
|
ucVolume 0
|
|
|
|
ucInputMode 0
|
|
|
|
usChNum 0
|
|
|
|
ucRecKind 0
|
|
|
|
ucCRIDType 0
|
|
|
|
szCRID {}
|
|
|
|
szFPBRecPath {}
|
|
|
|
szRecordedProgCrid {}
|
|
|
|
szEventToRecord {}
|
|
|
|
aulEventToRecordInfo {}
|
|
|
|
bRecomRsv 0
|
|
|
|
usLastRecordedEvtId 0
|
|
|
|
eReady 0
|
|
|
|
szSvcName {}
|
|
|
|
usLcn 0
|
|
|
|
sort 0
|
|
|
|
}
|
|
|
|
|
2011-07-05 18:38:42 +00:00
|
|
|
rsv method name {} {
|
|
|
|
set name [string range $szevtname 1 end]
|
|
|
|
if {[string first "i7" $name] == 0} {
|
|
|
|
set name [string range $name 2 end]
|
2011-07-05 00:19:02 +00:00
|
|
|
}
|
2011-07-05 18:38:42 +00:00
|
|
|
if {$name == ""} {
|
|
|
|
switch $ersvtype {
|
|
|
|
5 { set name "--- Wake-up ---" }
|
|
|
|
6 { set name "--- Sleep ---" }
|
|
|
|
7 { set name "--- Auto Update ---" }
|
|
|
|
default { set name "--- Unknown event type $ersvtype ---" }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $name
|
|
|
|
}
|
|
|
|
|
|
|
|
rsv method channel_name {} {
|
|
|
|
return [string range $szSvcName 1 end]
|
2011-07-05 00:19:02 +00:00
|
|
|
}
|
|
|
|
|
2011-07-07 22:33:19 +00:00
|
|
|
rsv method fix_hsvc {} {
|
|
|
|
global rsvdb
|
|
|
|
|
|
|
|
set _hsvc [$rsvdb query "
|
|
|
|
select hSvc
|
|
|
|
from channel.TBL_SVC
|
|
|
|
where szSvcName = '$szSvcName'
|
|
|
|
or szSvcname = '\025$szSvcName'
|
|
|
|
limit 1
|
|
|
|
"]
|
|
|
|
|
|
|
|
if {[llength $_hsvc] == 1} {
|
|
|
|
set hsvc [lindex [lindex $_hsvc 0] 1]
|
|
|
|
} else {
|
|
|
|
set hsvc 0
|
|
|
|
}
|
|
|
|
return $hsvc
|
|
|
|
}
|
|
|
|
|
|
|
|
rsv method insert {} {
|
|
|
|
global rsvdb
|
|
|
|
if {!$ulslot} {
|
|
|
|
set slot [
|
|
|
|
$rsvdb query {select max(ulslot) FROM TBL_RESERVATION}]
|
|
|
|
set slot [expr 1 + [lindex [lindex $slot 0] 1]]
|
|
|
|
set ulslot $slot
|
|
|
|
}
|
|
|
|
|
|
|
|
set fields [lsort [$self vars]]
|
|
|
|
|
|
|
|
foreach field {aulEventToRecordInfo szSvcName usLcn sort} {
|
|
|
|
set df [lsearch $fields $field]
|
|
|
|
set fields [lreplace $fields $df $df]
|
|
|
|
}
|
|
|
|
|
|
|
|
set vals {}
|
|
|
|
foreach field $fields {
|
|
|
|
lappend vals "'[$self get $field]'"
|
|
|
|
}
|
|
|
|
|
|
|
|
set query "insert into TBL_RESERVATION("
|
|
|
|
append query [join $fields ","]
|
|
|
|
append query ") values("
|
|
|
|
append query [join $vals ","]
|
|
|
|
append query ");"
|
|
|
|
|
|
|
|
$rsvdb query $query
|
2011-07-05 22:59:34 +00:00
|
|
|
}
|
|
|
|
|
2011-07-05 00:19:02 +00:00
|
|
|
proc {rsv list} {} {
|
|
|
|
catch { $::rsvdb query {.mode tcl} }
|
|
|
|
|
|
|
|
set res [$::rsvdb query {
|
|
|
|
select tbl_reservation.*,
|
|
|
|
channel.TBL_SVC.szSvcName, channel.TBL_SVC.usLcn,
|
|
|
|
case when ersvtype > 3 then 1 else 0 end as sort
|
|
|
|
from tbl_reservation
|
|
|
|
left join channel.TBL_SVC
|
|
|
|
on main.TBL_RESERVATION.hSvc = channel.TBL_SVC.hSvc
|
|
|
|
order by sort, nsttime
|
|
|
|
}]
|
|
|
|
|
|
|
|
set records {}
|
|
|
|
foreach rec $res {
|
|
|
|
lappend records [rsv new $rec]
|
|
|
|
}
|
|
|
|
|
|
|
|
return $records
|
|
|
|
}
|
|
|
|
|
|
|
|
proc {rsv cleanup} {} {
|
|
|
|
catch {$::rsvdb close}
|
|
|
|
}
|
|
|
|
|