many escaping fixes. Remove unecessary regsub/string match and replace with better alternatives
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1111 2a923420-c742-0410-a762-8d5b09965624
This commit is contained in:
parent
4e36ecc6f0
commit
e4f61f4047
@ -1,7 +1,7 @@
|
||||
Package: webif
|
||||
Priority: optional
|
||||
Section: web
|
||||
Version: 0.9.13-1
|
||||
Version: 0.9.13-3
|
||||
Architecture: mipsel
|
||||
Maintainer: af123@hummypkg.org.uk
|
||||
Depends: webif-channelicons(>=1.0.2),mongoose(>=3.0-7),jim(>=0.73-1),jim-oo,jim-sqlite3(>=0.73),jim-cgi(>=0.5),service-control(>=1.2),busybox(>=1.19.3-1),lsof,epg(>=1.0.9),hmt(>=1.1.6),ssmtp,anacron,trm,openssl-command,nicesplice,id3v2,file,rsvsync(>=1.0.2),webif-charts(>=1.2),stripts(>=1.1.2)
|
||||
|
@ -59,7 +59,7 @@ switch $action {
|
||||
set mode [cgi_get mode copy]
|
||||
foreach p $path {
|
||||
set p [cgi_unquote_input $p]
|
||||
if {$dir ne "0" && ![string match "$dir/*" $p]} {
|
||||
if {$dir ne "0" && [string first "$dir/" $p] != 0} {
|
||||
puts "$p not in directory<br>"
|
||||
continue
|
||||
}
|
||||
@ -95,21 +95,25 @@ switch $action {
|
||||
catch {puts [exec /mod/bin/busybox/cp -r \
|
||||
$path $dir]}
|
||||
}
|
||||
} else {
|
||||
set root [file rootname $path]
|
||||
# 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}.*"] {
|
||||
if {$mode eq "cut"} {
|
||||
catch {file rename $f \
|
||||
"$dir/[file tail $f]"}
|
||||
} else {
|
||||
catch {file copy $f \
|
||||
"$dir/[file tail $f]"}
|
||||
} elseif {[string match {*.ts} $path]} {
|
||||
set ts [ts fetch $path]
|
||||
if {![catch {$ts get file}]} {
|
||||
foreach f [$ts fileset] {
|
||||
if {$mode eq "cut"} {
|
||||
catch {file rename $f \
|
||||
"$dir/[file tail $f]"}
|
||||
} else {
|
||||
catch {file copy $f \
|
||||
"$dir/[file tail $f]"}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if {$mode eq "cut"} {
|
||||
catch {file rename $path "$dir/[file tail $f]"}
|
||||
} else {
|
||||
catch {file copy $path "$dir/[file tail $f]"}
|
||||
}
|
||||
}
|
||||
}
|
||||
$cb clear
|
||||
|
@ -10,7 +10,6 @@ cgi_input
|
||||
#cgi_dump
|
||||
|
||||
set dir [cgi_get dir]
|
||||
regsub -all {([\\["$])} $dir {\\\1} dir
|
||||
|
||||
#puts "DIR: ($dir)"
|
||||
|
||||
@ -40,7 +39,7 @@ foreach file [cgi_get files] {
|
||||
|
||||
puts -nonewline "<li>\"$file\"..."
|
||||
|
||||
if {![string match "$dir/*" $file]} {
|
||||
if {[string first "$dir/" $file] != 0} {
|
||||
puts "Error - outside directory."
|
||||
continue
|
||||
}
|
||||
|
@ -12,12 +12,11 @@ cgi_input
|
||||
set dir [cgi_get dir "/media/My Video/Children"]
|
||||
|
||||
puts "{"
|
||||
regsub -all {([\\["$])} $dir {\\\1} xdir
|
||||
foreach file [readdir -nocomplain $dir] {
|
||||
if {![string match {*.ts} $file]} { continue }
|
||||
|
||||
regsub -all {([\\["$])} [file rootname $file] {\\\1} xfile
|
||||
if {[catch {set eit [exec /mod/bin/stripts -cq "$xdir/$xfile"]}]} {
|
||||
set xfile [file rootname $file]
|
||||
if {[catch {set eit [exec /mod/bin/stripts -cq "$dir/$xfile"]}]} {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -12,19 +12,20 @@ cgi_input
|
||||
#set _cgi(dir) "/media/My Video"
|
||||
|
||||
set dir [dict get $_cgi dir]
|
||||
set dlen [string length "$dir/"]
|
||||
|
||||
#9.4G /media/My Video/Archive
|
||||
#1.4G /media/My Video/CSI_ Crime Scene Investigation
|
||||
puts "{"
|
||||
regsub -all {([\\["$])} $dir {\\\1} xdir
|
||||
foreach line [split [exec /mod/bin/busybox/du -h -d 1 "$dir/"] "\n"] {
|
||||
lassign [split $line "\t"] size node
|
||||
regsub -- "^$xdir/" $node "" node
|
||||
set node [string range $node $dlen end]
|
||||
puts "\"$node\" : \"$size\","
|
||||
}
|
||||
|
||||
# Handle symbolic links.
|
||||
foreach file [glob -nocomplain "$dir/*"] {
|
||||
foreach file [readdir $dir] {
|
||||
set file "$dir/$file"
|
||||
if {[catch {set lk [file readlink $file]}]} continue
|
||||
|
||||
if {![string match "/*" $lk]} { set lk "$dir/$lk" }
|
||||
|
@ -58,7 +58,7 @@ proc dedup {dir} {
|
||||
}
|
||||
|
||||
proc do_shrink {ts} {
|
||||
global tmp dustbin
|
||||
global tmp dustbin tsgroup
|
||||
|
||||
set file [file rootname [$ts get file]]
|
||||
if {[catch {
|
||||
@ -112,8 +112,11 @@ proc do_shrink {ts} {
|
||||
}
|
||||
|
||||
# Finally, rename the shrunken recording again.
|
||||
foreach f [glob "${file}_shrunk.*"] {
|
||||
file rename $f "${file}[file extension $f]"
|
||||
foreach ext $tsgroup {
|
||||
set f "${file}_shrunk.$ext"
|
||||
if {[file exists $f]} {
|
||||
file rename $f "${file}.$ext"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -122,14 +122,11 @@ proc {system busy} {} {
|
||||
}
|
||||
|
||||
proc {system inuse} {file} {
|
||||
# Is anything using the file (used to only check the Humax binary)?
|
||||
# if {[catch {set pid [exec /mod/bin/busybox/pgrep humaxtv]}]} {
|
||||
# return 0
|
||||
# }
|
||||
regsub -all {([\\["$])} [file rootname [file tail $file]] {\\\1} file
|
||||
# Is anything using the file?
|
||||
set file [file rootname [file tail $file]]
|
||||
set c 0
|
||||
foreach line [split [exec /mod/bin/lsof] "\n"] {
|
||||
if {[string match "*$file*" $line]} { incr c }
|
||||
if {[string first $file $line] >= 0} { incr c }
|
||||
}
|
||||
if {$c > 0} { return 1 }
|
||||
return 0
|
||||
|
@ -5,6 +5,8 @@ require tdelete system.class
|
||||
|
||||
set dmsfile /mnt/hd2/dms_cds.db
|
||||
|
||||
set tsgroup {ts nts hmt thm}
|
||||
|
||||
class ts {
|
||||
file ""
|
||||
base ""
|
||||
@ -108,6 +110,19 @@ proc {ts exec} {file} {
|
||||
return [exec {*}$cmd]
|
||||
}
|
||||
|
||||
ts method fileset {} {
|
||||
global tsgroup
|
||||
|
||||
set root [file rootname $file]
|
||||
set fset {}
|
||||
foreach ext $tsgroup {
|
||||
if {[file exists "$root.$ext"]} {
|
||||
lappend fset "$root.$ext"
|
||||
}
|
||||
}
|
||||
return $fset
|
||||
}
|
||||
|
||||
proc {ts fetch} {file {checked 0}} {
|
||||
# Check that this is a .ts file which has at least one sidecar
|
||||
# file (.nts)
|
||||
@ -120,12 +135,7 @@ proc {ts fetch} {file {checked 0}} {
|
||||
}
|
||||
|
||||
ts method delete {} {
|
||||
set root [file rootname $file]
|
||||
# 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}.*"] {
|
||||
foreach f [$self fileset] {
|
||||
tdelete $f
|
||||
puts "Removed $f<br>"
|
||||
}
|
||||
@ -133,9 +143,7 @@ ts method delete {} {
|
||||
}
|
||||
|
||||
ts method move {dst {touch 0} {force 0}} {
|
||||
set root [file rootname $file]
|
||||
regsub -all {([\\["$])} $root {\\\1} root
|
||||
foreach f [glob -nocomplain "${root}.*"] {
|
||||
foreach f [$self fileset] {
|
||||
set nf "$dst/[file tail $f]"
|
||||
while {[file exists $nf]} {
|
||||
set nf "$dst/_[file tail $nf]"
|
||||
@ -149,20 +157,12 @@ ts method move {dst {touch 0} {force 0}} {
|
||||
}
|
||||
|
||||
ts method copy {dst} {
|
||||
set root [file rootname $file]
|
||||
regsub -all {([\\["$])} $root {\\\1} root
|
||||
foreach f [glob -nocomplain "${root}.*"] {
|
||||
foreach f [$self fileset] {
|
||||
file copy $f "$dst/[file tail $f]"
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
ts method fileset {} {
|
||||
set root [file rootname $file]
|
||||
regsub -all {([\\["$])} $root {\\\1} root
|
||||
return [glob -nocomplain "${root}.*"]
|
||||
}
|
||||
|
||||
ts method settitle {newtitle} {
|
||||
if {[string length newtitle] > 48} { return }
|
||||
|
||||
@ -193,19 +193,17 @@ ts method dlnaloc {} {
|
||||
}
|
||||
|
||||
proc {ts renamegroup} {from to} {
|
||||
global tsgroup
|
||||
|
||||
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}\""
|
||||
foreach ext $tsgroup {
|
||||
set f "$root.$ext"
|
||||
if {![file exists $f]} continue
|
||||
file rename $f "${dir}/${to}${ext}"
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user