webif/webif/html/browse/strip/execute.jim

57 lines
1.3 KiB
Tcl
Executable File

#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require system.class ts.class pretty_size
httpheader
set rfile [cgi_get file]
set ts [ts fetch $rfile]
set dir [file dirname $rfile]
set len [$ts duration 1]
set stripstart [clock milliseconds]
set base [file rootname $rfile]
set origdir "$dir/_original"
if {![file exists $origdir]} { file mkdir $origdir }
set shname [file tail $base]
puts "Processing $shname"
if {[file exists "$origdir/$shname.ts"]} {
puts "This recording already exists within _original"
puts "Cannot continue."
exit
}
puts "Moving recording to $origdir"
set tail [file tail $base]
foreach ext $tsgroup {
if {![file exists "$base.$ext"]} continue
puts " $tail.$ext"
file rename "$base.$ext" "${origdir}/$tail.$ext"
}
set token [system startop -multiple shrink $rfile]
puts [exec /mod/bin/stripts \
"$origdir/$shname" \
"$dir/$shname" \
]
system endop $token
# Set the file time to match the old file
ts touchgroup "$dir/$shname.ts" "$origdir/$shname.ts"
set newname "$shname-[clock seconds]"
puts "Renaming file group to $newname"
ts renamegroup "$dir/$shname.ts" $newname
exec /mod/bin/hmt "+setfilename=$newname" "$dir/$newname.hmt"
exec /mod/bin/hmt "+shrunk" "$dir/$newname.hmt"
set striptime [expr {[expr {[clock milliseconds] - $stripstart}] / 1000.0}]
puts "Time taken: $striptime"