#!/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

