webif/webif/html/dedup/process.jim

62 lines
1.3 KiB
Tcl
Executable File

#!/mod/bin/jimsh
require system.class
proc dedupsort {a b} {
global dir
return [expr {[file mtime "$dir/$a"] > [file mtime "$dir/$b"]}]
}
proc dedupprocess {file} {{seen {}}} {
set ts [ts fetch $file 1]
if {[$ts flag "Deduped"]} {
# Fast track content which has already been de-duped.
set fn [file rootname [file tail $file]]
if {$fn in $seen} { set stat dup } else { set stat nothing }
lappend seen $fn
return [list $stat $ts "" $fn]
}
set dir [file dirname $file]
set base [file tail [file rootname $file]]
set syn ""
if {[system has tvdb]} {
set epname [$ts episode_name]
if {[$ts get tvdb_method] ne "" && [$ts get episodenum] > 0} {
set syn [$ts epstr [[settings] dedup_template]]
append syn $epname
} else {
set syn $epname
}
}
if {$syn eq ""} {
set syn [dedupnormalise [$ts get synopsis] [$ts get title]]
}
# Escape special characters to create the filename.
set fn [system filename $syn]
set stat ok
if {[$ts inuse]} {
set stat inuse
} elseif {$fn in $seen} {
set stat dup
} elseif {[string length $syn] > 40} {
set syn [string range $syn 0 39]
#set stat error
} elseif {$base eq $fn} {
set stat nothing
$ts set_deduped
} elseif {[file exists "$dir/$fn.ts"]} {
set stat preserve
}
lappend seen $fn
return [list $stat $ts $syn $fn]
}