webif/webif/html/dedup/dedup.jim

114 lines
2.0 KiB
Tcl
Executable File

#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size altrow
header
source normalise.jim
source process.jim
set dir [cgi_get dir "/media/My Video"]
set doit [cgi_get doit 0]
set reset [cgi_get reset 0]
jscss script.js
puts "<fieldset style=\"display: inline\">
<legend>De-duplicate <span id=dir>$dir</span></legend>
<table class=borders>
<tr>
<th>File</th>
<th>Proposed Filename</th>
<th>Proposed Title</th>
<th>Status</th>
</tr>
"
loadseries $dir
set recalc 0
foreach file [lsort -command dedupsort [readdir -nocomplain $dir]] {
set file "$dir/$file"
if {[file extension $file] ne ".nts"} { continue }
set file "[file rootname $file].hmt"
if {$reset} {
set ts [ts fetch $file 1]
$ts unset_deduped
}
set base [file tail [file rootname $file]]
lassign [dedupprocess $file] stat ts syn fn
altrow
puts "<td nowrap>$base</td>"
puts "<td>$fn</td>"
puts "<td>$syn</td>"
puts "<td>"
switch $stat {
inuse {
puts -nonewline "In Use"
}
dup {
puts -nonewline "Duplicate"
if {$doit} {
set dupdir "$dir/_duplicates"
if {![file exists $dupdir]} { file mkdir $dupdir }
while {[file exists $dupdir/$fn.hmt]} {
append fn "~"
}
ts renamegroup $file "_duplicates/$fn"
puts -nonewline " - Renamed to _duplicates/$fn"
incr recalc
}
}
error {
puts -nonewline "Cannot process"
}
nothing {
puts -nonewline "Nothing to do"
}
preserve {
puts -nonewline "Preserving"
}
ok {
if {$doit} {
# Dooooo, it.
$ts settitle $syn
$ts set_deduped
ts renamegroup $file $fn
puts -nonewline "Done"
}
}
}
puts "</td>"
puts "</tr>"
}
if {$recalc} { ts resetnew $dir }
puts {
</table>
</fieldset>
<div style="padding-top: 2em">
<small>
<button id=browse>Back to media browser</button>
}
if {!$doit} {
puts "<button id=dedup>Process folder</button>"
} else {
puts "<button id=reset>Force re-processing of folder.</button>"
}
puts {
</small>
</div>
}
footer