qtube/webif/plugin/qtube/queue.hook

52 lines
1.7 KiB
Plaintext

#source /mod/webif/plugin/qtube/qtube.jim
alias ::qtube::log ::auto::log
alias ::qtube::elapsed ::auto::elapsed
set ::logfd $::auto::logfd
proc qlog {msg {level 1}} {
puts $::qlogfd "[\
clock format [clock seconds] -format "%d/%m/%Y %H:%M:%S"\
] - $msg"
flush $::qlogfd
}
proc ::qtube::dequeue {q url} {
set retcode {"FAILED" "Unknown = check qtube.log"}
set opts [$q get args]
set ::Qid [$q get id]
set logfile "/mod/tmp/qtube.log"
set ::qlogfd [open $logfile "a+"]
qlog "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" 0
log "Starting queued download URL $url Options $opts QID $::Qid" 0
qlog "Starting queued download URL $url Options $opts QID $::Qid" 0
log "See $logfile for details" 0
# Fix to cmd invocation thanks to @/df
# https://hummy.tv/forum/threads/qtube-webif-front-end-for-youtube-dl.8948/page-7#post-139719
set cmd {youtube --newline}
lappend cmd {*}$opts $url
if {[catch {exec {*}[lmap e $cmd {concat $e}] 2>@$::qlogfd \
| awk {{print strftime("%d/%m/%Y %H:%M:%S -"), $0; fflush(); }} \
>@$::qlogfd } msg catchopts]
} {
log "Caught error: $msg" 0
log "$catchopts" 2
qlog "Caught error: $msg" 0
qlog "$catchopts" 2
set retcode [list "FAILED" "$msg - check qtube.log"]
} else {
log "Completed queued download of $url Options $opts" 0
qlog "Completed queued download of $url Options $opts" 0
set retcode {"OK" "Check qtube.log"}
}
close $::qlogfd
return $retcode
}
::auto::register qtube 200