0c858b3410
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@194 2a923420-c742-0410-a762-8d5b09965624
155 lines
3.4 KiB
Plaintext
Executable File
155 lines
3.4 KiB
Plaintext
Executable File
#!/mod/bin/jimsh
|
|
|
|
package require cgi
|
|
source /mod/var/mongoose/lib/ts.class
|
|
|
|
puts "Content-Type: text/html"
|
|
puts ""
|
|
|
|
set ignore {.nts .thm .hmt .hmi}
|
|
set include {.ts .avi .mpg .wmv .mkv}
|
|
|
|
cgi_input
|
|
#cgi_dump
|
|
|
|
#set env(REQUEST_URI) ''
|
|
#set _cgi(dir) "/media/My Video/Chuggington"
|
|
|
|
proc directory {file bfile} {
|
|
puts "<div class=va>"
|
|
puts "<a href=$::env(REQUEST_URI)?dir=[cgi_quote_url $file]>"
|
|
puts "<img border=0 class=va src=/images/711_1_09_Media_Folder.png>"
|
|
puts "$bfile</a></div>"
|
|
}
|
|
|
|
proc entry {file} {{i 0}} {
|
|
set bfile [file tail $file]
|
|
if {[string index $bfile 0] == "\025"} {
|
|
set bfile [string range $bfile 1 end]
|
|
}
|
|
if [file isdirectory "$file"] {
|
|
directory $file $bfile
|
|
continue
|
|
}
|
|
set ext [file extension $file]
|
|
if {$ext in $::ignore || $ext ni $::include} { continue }
|
|
|
|
set base [file rootname $file]
|
|
|
|
if {$ext eq ".ts" && [file exists "${base}.nts"]} {
|
|
set type ts
|
|
set ts [ts fetch $file]
|
|
set img 741_1_10_Video_Title.png
|
|
set pad 0
|
|
} else {
|
|
set type gen
|
|
set ts 0
|
|
set img 743_4_10_Video_Xvid_File.png
|
|
set pad "2 2 2 2"
|
|
}
|
|
|
|
puts "
|
|
<div class=\"va bf\" id=[incr i]>
|
|
<a class=bf file=\"$file\" type=$type href=#>
|
|
<img class=va border=0 width=45 src=/images/$img
|
|
style=\"padding:$pad\">$bfile
|
|
</a>
|
|
"
|
|
|
|
# Icons
|
|
|
|
set locked 0
|
|
if {$type eq "ts"} {
|
|
# HD / SD
|
|
if {[$ts get definition] eq "HD"} {
|
|
set img "172_1_00_HD"
|
|
} else {
|
|
set img "172_1_26_SD"
|
|
}
|
|
puts "<img class=va src=/images/$img.png height=21>"
|
|
|
|
# Locked
|
|
if {[$ts flag "Locked"] > 0} {
|
|
set locked 1
|
|
puts "<img class=va src=/images/178_1_00_Icon_Lock.png
|
|
height=21>"
|
|
}
|
|
}
|
|
|
|
# Opt+ button
|
|
|
|
puts "
|
|
<a href=#>
|
|
<img class=\"opt va\" border=0 width=45 type=$type did=$i
|
|
locked=$locked
|
|
src=/images/181_1_00_Help5_OPT_Plus.png>
|
|
</a>
|
|
<div class=\"results blood\" style=\"margin: 0 0 0 5em\"></div>
|
|
"
|
|
puts "</div>"
|
|
}
|
|
|
|
if {[dict exists $_cgi dir]} {
|
|
set dir [dict get $_cgi dir]
|
|
} else {
|
|
set dir "/media/My Video"
|
|
}
|
|
|
|
######################################################################
|
|
# Render web page
|
|
|
|
source /mod/var/mongoose/html/lib/header.jim
|
|
|
|
puts {
|
|
<link href=/css/jquery.contextMenu.css rel=stylesheet type=text/css />
|
|
<script type="text/javascript" src="/js/jquery.contextMenu.js"></script>
|
|
|
|
<ul id=optmenu class=contextMenu>
|
|
<li><a href=#delete>Delete</a></li>
|
|
<li><a href=#lock>Toggle Lock</a></li>
|
|
<li><a href=#rename>Rename</a></li>
|
|
<li><a href=#title>Change Title</a></li>
|
|
<li><a href=#download>Download</a></li>
|
|
</ul>
|
|
|
|
<div id=dialogue></div>
|
|
<div id=confirm title="Confirmation Required"></div>
|
|
|
|
<script type=text/javascript src=/cgi-bin/browse/browse.js></script>
|
|
<div style="border: 1px solid grey; padding: 1em">
|
|
}
|
|
|
|
# Breadcrumb path
|
|
puts "<h1>"
|
|
set stub ""
|
|
foreach part [split $dir /] {
|
|
if {$stub eq "/"} { set name $part } else { set name "/$part" }
|
|
append stub $name
|
|
puts "<a href=$env(REQUEST_URI)?dir=[cgi_quote_url $stub]>$name</a>
|
|
}
|
|
puts "</h1>"
|
|
|
|
# Parent directory
|
|
set parent [join [lrange [split $dir /] 0 end-1] /]
|
|
if {$parent ne ""} {
|
|
puts "
|
|
<div class=va>
|
|
<a href=$env(REQUEST_URI)?dir=[cgi_quote_url $parent]>
|
|
<img src=/images/711_3_09_Media_Folder_UP.png class=va>
|
|
\[parent directory\]</a>
|
|
</div>
|
|
"
|
|
}
|
|
|
|
# Strip double slashes
|
|
regsub -all -- {\/+} "$dir/*" "/" dir
|
|
|
|
foreach file [lsort [glob -nocomplain "$dir"]] {
|
|
entry $file
|
|
}
|
|
|
|
puts "</div>"
|
|
|
|
source /mod/var/mongoose/html/lib/footer.jim
|
|
|