webif/var/mongoose/lib/ts.class

98 lines
1.7 KiB
Plaintext
Raw Normal View History

if {[expr ! [exists -proc class ]]} { package require oo }
class ts {
file ""
base ""
title ""
synopsis ""
definition ""
channel_num 0
channel_name ""
start 0
end 0
flags ""
error ""
}
ts method duration {} {
return [expr [expr $end - $start] / 60]
}
ts method size {} {
file stat $file st
return $st(size)
}
ts method _parse {line} {
set vars [split $line "\t"]
set title [lindex $vars 0]
set synopsis [lindex $vars 1]
set definition [lindex $vars 2]
set channel_num [lindex $vars 3]
set channel_name [lindex $vars 4]
set start [lindex $vars 5]
set end [lindex $vars 6]
set flags [split [string range [lindex $vars 7] 0 end-1] ,]
}
ts method flag {f} {
if {$f in $flags} {return 1} else {return 0}
}
ts method unlock {} {
set cmd [list /mod/bin/hmt -lock $file]
#puts "CMD: $cmd"
exec {*}$cmd
return 1
}
ts method lock {} {
set cmd [list /mod/bin/hmt +lock $file]
#puts "CMD: $cmd"
exec {*}$cmd
return 1
}
ts method setfile {f} { set file $f }
proc {ts parse} {file line} {
set e [ts new]
$e setfile $file
$e _parse $line
return $e
}
proc {ts exec} {file} {
set raw 0
set cmd [list /mod/bin/hmt]
lappend cmd "-p"
lappend cmd $file
#puts "CMD -$cmd-"
return [exec {*}$cmd]
}
proc {ts fetch} {file {checked 0}} {
# Check that this is a .ts file which has at least one sidecar
# file (.nts)
if {!$checked} {
if {[file extension $file] ne ".ts"} { return 0 }
if {![file exists "[file rootname $file].nts"]} { return 0 }
}
return [ts parse $file [ts exec $file]]
}
ts method delete {} {
# Extract file basename
foreach f [glob -nocomplain "[file rootname $file].*"] {
puts "Removed $f<br>"
file delete $f
}
return 1
}