webif/webif/html/diag/queue/fetch.jim

62 lines
1.6 KiB
Tcl
Executable File

#!/mod/bin/jimsh
source /mod/webif/lib/setup
require queue.class json settings.class
httpheader "application/json"
set s [settings]
set autolast [$s autolast]
set autofreq [$s autofreq]
if {$autofreq == 0} { set autofreq 10 }
puts "{"
puts " \"autofreq\": \"$autofreq\","
puts " \"autolast\": \"[clock format $autolast] ([clock format \
[expr {[clock seconds] - $autolast}] -format %T] ago)\","
puts " \"data\": \["
set flag 0
foreach q [queue all] {
set name [string map {
"/mnt/hd2/My Video/" ""
"/media/drive1/Video/" ""
"/media/" ""
".ts" ""
} [$q get file]]
set submitted [clock format [$q get submitted] \
-format {%d/%m/%Y %H:%M:%S}]
set last [$q get last]
if {$last ne "" && $last ne "0"} {
set last [clock format $last -format {%d/%m/%Y %H:%M:%S}]
} else {
set last ""
}
set start [$q get start]
if {$start ne "0"} { set start $($start - [clock seconds]) }
if {$flag} { puts "," } else { incr flag }
puts "{"
puts " \"qid\": [$q get id],"
puts " \"submitted\": \"$submitted\","
puts " \"last\": \"$last\","
puts " \"file\": \"[::json::escape $name]\","
puts " \"action\": \"[::json::escape [$q get action]]\","
puts " \"args\": \"[::json::escape [$q get args]]\","
puts " \"status\": \"[$q get status]\","
puts " \"start\": \"$start\","
puts " \"log\": \"[::json::escape [$q get log]]\","
if {[$q get runtime] > 0} {
set time [clock format [lindex [split [$q get runtime] .] 0] \
-format "%T"]
puts " \"runtime\": \"$time\","
} else {
puts " \"runtime\": \"0\","
}
puts " \"retries\": \"[$q get retries]\""
puts -nonewline "}"
}
puts "\n]"
puts "}"