diff --git a/CONTROL/control b/CONTROL/control
index 9e78f77..92550fc 100644
--- a/CONTROL/control
+++ b/CONTROL/control
@@ -1,11 +1,11 @@
Package: webif
Priority: optional
Section: web
-Version: 0.7.8
+Version: 0.8.0
Architecture: mipsel
Maintainer: af123@hummypkg.org.uk
-Depends: mongoose(>=3.0-2),jim(>=0.71-1),jim-sqlite3(>=0.71-1),jim-cgi(>=0.4),jim-oo,jim-pack,service-control,busybox(>=1.18.3-1),lsof,epg(>=1.0.7),hmt(>=1.0.8),ssmtp
+Depends: mongoose(>=3.0-2),jim(>=0.71-1),jim-sqlite3(>=0.71-1),jim-cgi(>=0.4),jim-oo,jim-pack,service-control,busybox(>=1.18.3-1),lsof,epg(>=1.0.7),hmt(>=1.1.0),ssmtp
Replaces: af123-webif
Conflicts: af123-webif
-Suggests: ffmpeg,webif-iphone
+Suggests: ffmpeg,webif-iphone,nicesplice
Description: An evolving web interface for the Humax.
diff --git a/var/mongoose/cgi-bin/browse.jim b/var/mongoose/cgi-bin/browse.jim
index cee9442..f0ed4f0 100755
--- a/var/mongoose/cgi-bin/browse.jim
+++ b/var/mongoose/cgi-bin/browse.jim
@@ -81,6 +81,7 @@ proc entry {file} {{i 0}} {
set locked 0
set encd 0
+ set odencd 0
set def unknown
set bx 0
if {$type eq "ts"} {
@@ -108,6 +109,9 @@ proc entry {file} {{i 0}} {
src=/images/749_1_26_Video_Encryption.png
height=21>"
}
+ if {[$ts flag "ODEncrypted"] > 0} {
+ set odencd 1
+ }
# Guidance
if {[$ts flag "Guidance"] > 0} {
@@ -125,6 +129,7 @@ proc entry {file} {{i 0}} {
@@ -151,6 +156,9 @@ puts {
Rename
Download
}
+if {[system model] eq "HDR"} {
+ puts { Decrypt }
+}
if {[file exists /mod/bin/nicesplice]} {
puts { Crop }
}
diff --git a/var/mongoose/cgi-bin/browse/browse.js b/var/mongoose/cgi-bin/browse/browse.js
index f495a7e..2510e9c 100755
--- a/var/mongoose/cgi-bin/browse/browse.js
+++ b/var/mongoose/cgi-bin/browse/browse.js
@@ -156,6 +156,12 @@ function preparemenu(el, menu)
$(menu).changeContextMenuItem('#lock', 'Lock');
$('#optmenu').enableContextMenuItems('#delete');
}
+
+ if (el.attr('odencd') == 1)
+ $('#optmenu').enableContextMenuItems('#decrypt');
+ else
+ $('#optmenu').disableContextMenuItems('#decrypt');
+
}
else
{
@@ -163,6 +169,7 @@ function preparemenu(el, menu)
$('#optmenu').disableContextMenuItems('#lock');
$('#optmenu').disableContextMenuItems('#enc');
$('#optmenu').disableContextMenuItems('#new');
+ $('#optmenu').disableContextMenuItems('#decrypt');
$('#optmenu').disableContextMenuItems('#crop');
}
@@ -228,6 +235,11 @@ var menuclick = function(action, el, pos)
encodeURIComponent(file);
break;
+ case 'decrypt':
+ window.location.href = '/cgi-bin/browse/decrypt.jim?file=' +
+ encodeURIComponent(file);
+ break;
+
default:
alert('Unhandled action: ' + action);
break;
diff --git a/var/mongoose/cgi-bin/browse/decrypt.jim b/var/mongoose/cgi-bin/browse/decrypt.jim
new file mode 100755
index 0000000..e39174b
--- /dev/null
+++ b/var/mongoose/cgi-bin/browse/decrypt.jim
@@ -0,0 +1,128 @@
+#!/mod/bin/jimsh
+
+package require sqlite3
+package require cgi
+source /mod/var/mongoose/lib/setup
+require ts.class
+
+puts "Content-Type: text/html\r\n\r\n"
+
+cgi_input
+#cgi_dump
+
+set tsfile [cgi_get file]
+set rfile [file normalize $tsfile]
+set ts [ts fetch $rfile]
+set dir [file dirname $rfile]
+set len [$ts duration 1]
+lassign [$ts dlnaloc] url
+
+if {[cgi_get do] eq "it"} {
+ set base [file rootname $rfile]
+ set origdir "$dir/_original"
+ if {![file exists $origdir]} { file mkdir $origdir }
+
+ set shname [file tail $base]
+ puts "Processing $shname"
+
+ exec wget -O "$rfile.decrypting" $url
+
+ puts "Moving recording to $origdir"
+
+ foreach f [glob -nocomplain "${base}.*"] {
+ if {[file extension $f] eq ".decrypting"} { continue }
+ set tail [file tail $f]
+ puts " $tail"
+ file rename $f "${origdir}/$tail"
+ }
+
+ file rename "$rfile.decrypting" $rfile
+
+ foreach ext {nts hmt thm} {
+ set sidecar "$shname.$ext"
+ if {[file exists "$origdir/$sidecar"]} {
+ puts "Copying back sidecar $ext"
+ file copy "$origdir/$sidecar" "$dir/$sidecar"
+ }
+ }
+
+ if {[file exists "$dir/$shname.hmt"]} {
+ exec /mod/bin/hmt -encrypted "$dir/$shname.hmt"
+ }
+
+ exit
+}
+
+header
+
+puts "
+
+
+
+
+| File: | $rfile |
+| Length: | [clock format $len -format "%T"] |
+| DLNA URL | $url |
+
+"
+
+if {$url eq ""} {
+ puts "This file has not been indexed by the media server.
+ Cannot decrypt."
+ exit
+}
+
+puts {
+
+
+
+
+Decrypting:
+}
+puts "
"
+puts {
+
+
+
+
+
+
+}
+
diff --git a/var/mongoose/cgi-bin/browse/decrypt_progress.jim b/var/mongoose/cgi-bin/browse/decrypt_progress.jim
new file mode 100755
index 0000000..f429df2
--- /dev/null
+++ b/var/mongoose/cgi-bin/browse/decrypt_progress.jim
@@ -0,0 +1,23 @@
+#!/mod/bin/jimsh
+
+package require cgi
+source /mod/var/mongoose/lib/setup
+require ts.class
+
+puts "Content-Type: text/html\r\n\r\n"
+
+cgi_input
+#cgi_dump
+
+set tsfile [cgi_get file]
+set rfile [file normalize $tsfile]
+
+if {![file exists "$rfile.decrypting"]} {
+ puts "0"
+} else {
+ set sz [file size $rfile]
+ set nsz [file size "$rfile.decrypting"]
+
+ puts [expr $nsz * 100 / $sz]
+}
+