Posted to tcl by iobates at Sun Aug 09 22:00:14 GMT 2026view pretty
package require Tk
wm title . "FileMan"
set frame [ttk::frame .f -padding "3 3 12 12"]
grid $frame -column 0 -row 0 -sticky nsew
set flist [tk::listbox .f.lb -listvariable lst -width 50 -height 10]
grid $flist -column 1 -row 1 -sticky we
grid [ttk::button .f.ebtn -text "Prepare" -command prep] -column 1 -row 2 -sticky we
set clist [tk::listbox .f.cl -listvariable clst -width 50 -height 10]
grid $clist -column 2 -row 1 -sticky we
grid [ttk::button .f.cbtn -text "Commit" -command commit] -column 2 -row 2 -sticky we
proc commit {} {
foreach item $::clst {
puts [eval $item]
}
set ::clst [list ]
}
set clst [list ]
proc prep {} {
set fil [$::flist curselection]
toplevel .w
wm title .w "Info Box"
ttk::label .w.lbl -text "Choose what this file is"
ttk::button .w.tv -text "Tv" -command {
$clist insert end {*}[format "{exec media -t s -f \"%s\"}" [lindex $lst [$::flist curselection]]]
if {[winfo exists .w]} {
destroy .w
}
}
ttk::button .w.mov -text "Movie" -command {
$clist insert end {*}[format "{exec media -t m -f \"%s\"}" [lindex $lst [$::flist curselection]]]
if {[winfo exists .w]} {
destroy .w
}
}
ttk::button .w.b -text "Book" -command {
$clist insert end {*}[format "{exec media -t b -f \"%s\"}" [lindex $lst [$::flist curselection]]]
if {[winfo exists .w]} {
destroy .w
}
}
ttk::button .w.d -text "test" -command {
$clist insert end {*}[format "{exec media -t d -f \"%s\"}" [lindex $lst [$::flist curselection]]]
if {[winfo exists .w]} {
destroy .w
}
}
pack .w.tv .w.mov .w.b .w.d
}
proc sort.comp.mtime {a b} {
set ta [file mtime $a]
set tb [file mtime $b]
string compare $a $b
}
proc with-n-days {} {
set l [list]
set f [glob -directory /mnt/seed/finished/ *]
set t [clock scan "-2 days" -base [clock seconds]]
foreach fl $f {
if { $t < [file mtime $fl] } {
lappend l $fl
}
}
set ::lst l
}
proc show-files {} {
set f [glob -directory /mnt/seed/finished/ *]
set ::lst $f
}
proc every {ms cmd} {
{*}$cmd
after $ms [list after idle [namespace code [info level 0]]]
}
bind . <Control-q> {exit}
every 5000 show-files