diff --git a/var/mongoose/cgi-bin/browse.jim b/var/mongoose/cgi-bin/browse.jim index 9253a43..deba0b7 100755 --- a/var/mongoose/cgi-bin/browse.jim +++ b/var/mongoose/cgi-bin/browse.jim @@ -146,7 +146,7 @@ puts { diff --git a/var/mongoose/cgi-bin/browse/browse.js b/var/mongoose/cgi-bin/browse/browse.js index a1d4b34..276ac9a 100755 --- a/var/mongoose/cgi-bin/browse/browse.js +++ b/var/mongoose/cgi-bin/browse/browse.js @@ -45,20 +45,15 @@ function delete_callback(file, type, id) function lock_callback(file, type, id) { - var el = 'div.bf#' + id; - var results = el + ' .results'; - var url = '/cgi-bin/browse/lock.jim?file=' + - encodeURIComponent(file); - - $(results).load(url, function() { - $(results).delay(3000).slideUp(150); - }); + var url = '/cgi-bin/browse/lock.jim?file=' + encodeURIComponent(file); + $.get(url, function() { window.location.reload(true); }); } function rename_submit() { var s = $('#renameform_form').serialize(); - alert(s); + $.get('/cgi-bin/browse/rename.jim?' + s, + function() { window.location.reload(true); }); } var $confirm; // Populated after DOM is loaded. diff --git a/var/mongoose/cgi-bin/browse/lock.jim b/var/mongoose/cgi-bin/browse/lock.jim index 2ff339f..caf5d32 100755 --- a/var/mongoose/cgi-bin/browse/lock.jim +++ b/var/mongoose/cgi-bin/browse/lock.jim @@ -9,16 +9,19 @@ puts "" cgi_input #cgi_dump +set _cgi(file) "/media/My Video/The Walking Dead/The Walking Dead S01E06.ts" + set file [dict get $_cgi file] set ts [ts fetch $file] +if {[set ts [ts fetch $file]] != 0} { + set action lock + if {[$ts flag "Locked"]} { set action unlock } -set action lock -if {[$ts flag "Locked"]} { set action unlock } - -if {[$ts $action]} { - puts "Successfully [set action]ed $file." -} else { - puts "Problem [set action]ing $file, - [$ts get error]" + if {[$ts $action]} { + puts "Successfully [set action]ed $file." + } else { + puts "Problem [set action]ing $file, + [$ts get error]" + } } diff --git a/var/mongoose/cgi-bin/browse/rename.jim b/var/mongoose/cgi-bin/browse/rename.jim new file mode 100755 index 0000000..777f8cb --- /dev/null +++ b/var/mongoose/cgi-bin/browse/rename.jim @@ -0,0 +1,53 @@ +#!/mod/bin/jimsh + +package require cgi +source /mod/var/mongoose/lib/ts.class + +puts "Content-Type: text/html" +puts "" + +cgi_input +#cgi_dump + +#renameorig +#titleorig +#rename +#renametitle + +#set _cgi(renameorig) "/media/My Video/The Walking Dead/The Walking Dead_20110521_2201.ts" +#set _cgi(rename) "Last Episode" + +if {![dict exists $_cgi renameorig]} { exit } + +set file [dict get $_cgi renameorig] +set newfile [dict get $_cgi rename] + +if {[string length [string trim $newfile]] == 0 || $file eq $newfile} { + set newfile "" +} + +if {[file isdirectory $file]} { + #puts "Directory." + if {$newfile ne ""} { + set dir [file dirname $file] + set newfile "${dir}/${newfile}" + file rename $file $newfile + } +} elseif {[set ts [ts fetch $file]] != 0} { + #puts "TS file." + + catch { + set title [dict get $_cgi renametitle] + set titleorig [dict get $_cgi titleorig] + + if {[string length [string trim $title]] > 0 && + $title ne $titleorig} { + $ts settitle $title + } + } + if {$newfile ne ""} { ts renamegroup $file $newfile } +} else { + #puts "Normal file." + if {$newfile ne ""} { ts renamegroup $file $newfile } +} + diff --git a/var/mongoose/lib/ts.class b/var/mongoose/lib/ts.class index fae134e..7f561ba 100644 --- a/var/mongoose/lib/ts.class +++ b/var/mongoose/lib/ts.class @@ -95,3 +95,27 @@ ts method delete {} { return 1 } +ts method settitle {newtitle} { + if {[string length newtitle] > 48} { return } + + exec /mod/bin/hmt "+settitle=${newtitle}" $file +} + +proc {ts renamegroup} {from to} { + set dir [file dirname $from] + set root [file rootname $from] + + # Catch from string without a . character in it + if {$root eq $from} { return } + + # Protect special characters in root. In particular [] characters + # which are used a lot for torrent names. + regsub -all {([\\["$])} $root {\\\1} root + + foreach f [glob -nocomplain "${root}.*"] { + set ext [file extension $f] + #puts "rename $f \"${dir}/${to}${ext}\"" + file rename $f "${dir}/${to}${ext}" + } +} +