Compare commits

..

57 Commits

Author SHA1 Message Date
hummypkg
492b37be41 1.0.15 & improved status
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1968 2a923420-c742-0410-a762-8d5b09965624
2014-06-14 09:21:09 +00:00
hummypkg
c237f228a8 restructure tdelete
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1954 2a923420-c742-0410-a762-8d5b09965624
2014-06-12 17:43:19 +00:00
hummypkg
7a523a9ddb fix TSR bug
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1953 2a923420-c742-0410-a762-8d5b09965624
2014-06-11 21:18:19 +00:00
hummypkg
972366de14 update status
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1950 2a923420-c742-0410-a762-8d5b09965624
2014-06-10 22:01:42 +00:00
hummypkg
aeb96c2c8a update to new lsof and fix things
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1949 2a923420-c742-0410-a762-8d5b09965624
2014-06-10 17:12:06 +00:00
hummypkg
68f98c8a65 add inuse
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1947 2a923420-c742-0410-a762-8d5b09965624
2014-06-09 22:22:33 +00:00
hummypkg
61b09db04b updates
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1946 2a923420-c742-0410-a762-8d5b09965624
2014-06-09 20:54:52 +00:00
hummypkg
de2035e1e0 fix bugs
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1944 2a923420-c742-0410-a762-8d5b09965624
2014-06-06 23:24:32 +00:00
hummypkg
b4bd45566e fix jconfirmaction
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1938 2a923420-c742-0410-a762-8d5b09965624
2014-06-05 21:10:01 +00:00
hummypkg
692488a11f tweak diskspace check again
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1935 2a923420-c742-0410-a762-8d5b09965624
2014-06-04 20:35:38 +00:00
hummypkg
bd27200ba8 add resume
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1932 2a923420-c742-0410-a762-8d5b09965624
2014-06-03 22:33:24 +00:00
hummypkg
7e30a4272e webif 1.0.14
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1928 2a923420-c742-0410-a762-8d5b09965624
2014-06-03 22:03:36 +00:00
hummypkg
945007f73d add nav buttons + browse hooks
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1927 2a923420-c742-0410-a762-8d5b09965624
2014-06-03 22:03:23 +00:00
hummypkg
fc9c912f99 improve disk space calculation
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1924 2a923420-c742-0410-a762-8d5b09965624
2014-05-31 14:50:12 +00:00
hummypkg
bf67161898 various
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1922 2a923420-c742-0410-a762-8d5b09965624
2014-05-28 21:29:10 +00:00
hummypkg
f029ab1ce6 improve diskspace check
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1920 2a923420-c742-0410-a762-8d5b09965624
2014-05-28 18:10:58 +00:00
hummypkg
bfd099a82e update auto-expiry with new options
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1919 2a923420-c742-0410-a762-8d5b09965624
2014-05-21 22:10:22 +00:00
hummypkg
d9a284994e reintroduce mongoose dependency
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1899 2a923420-c742-0410-a762-8d5b09965624
2014-05-11 16:42:42 +00:00
hummypkg
e6df0ae3af update for 1.0.13 - switch web server software
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1894 2a923420-c742-0410-a762-8d5b09965624
2014-05-11 14:05:00 +00:00
hummypkg
e14ccce2cc update dependencies
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1883 2a923420-c742-0410-a762-8d5b09965624
2014-05-03 22:26:19 +00:00
hummypkg
60111cd8b1 update conffiles for new layout
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1873 2a923420-c742-0410-a762-8d5b09965624
2014-05-02 22:18:44 +00:00
hummypkg
fb81a7e954 defer shrink until after decryption if both are pending
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1872 2a923420-c742-0410-a762-8d5b09965624
2014-05-02 11:25:25 +00:00
hummypkg
218221c069 1.0.12 update
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1870 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 21:57:44 +00:00
hummypkg
a001241c5d remove unecessary css files
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1869 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 21:17:23 +00:00
hummypkg
a8a9f041f0 Upgrade jquery mobile
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1868 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 21:15:31 +00:00
hummypkg
67df756156 add mongoose symlink
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1864 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 14:45:44 +00:00
hummypkg
a73afaf951 relocate var/mongoose
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1863 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 14:44:57 +00:00
hummypkg
fe439ec25a remove webif symlink
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1862 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 14:43:49 +00:00
hummypkg
2fa55d3c90 fix automatic backups and slidedown menu
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1861 2a923420-c742-0410-a762-8d5b09965624
2014-04-30 14:39:25 +00:00
hummypkg
c76e6638a4 fix modversion.jim
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1856 2a923420-c742-0410-a762-8d5b09965624
2014-04-27 14:49:46 +00:00
hummypkg
cd3cbf186c fix mobile interface, settings
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1851 2a923420-c742-0410-a762-8d5b09965624
2014-04-23 12:59:30 +00:00
hummypkg
38956e2669 fix scheduled check
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1850 2a923420-c742-0410-a762-8d5b09965624
2014-04-23 11:56:55 +00:00
hummypkg
62a13e18cc version 1.0.11
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1848 2a923420-c742-0410-a762-8d5b09965624
2014-04-22 00:03:29 +00:00
hummypkg
52d05a7f48 update jquery
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1839 2a923420-c742-0410-a762-8d5b09965624
2014-04-14 23:00:15 +00:00
hummypkg
612a61a5b1 removing legacy directories
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1838 2a923420-c742-0410-a762-8d5b09965624
2014-04-14 22:56:06 +00:00
hummypkg
17ba0bb00e remove SSI
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1837 2a923420-c742-0410-a762-8d5b09965624
2014-04-14 22:54:01 +00:00
hummypkg
5f473c9e72 add ts iterate
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1833 2a923420-c742-0410-a762-8d5b09965624
2014-04-03 20:21:40 +00:00
hummypkg
e0ac834c78 preserve more timestamps
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1832 2a923420-c742-0410-a762-8d5b09965624
2014-04-02 21:14:23 +00:00
hummypkg
604ac65172 fix grid problem
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1828 2a923420-c742-0410-a762-8d5b09965624
2014-03-27 21:34:27 +00:00
hummypkg
dad2a630c7 fix strip et al. with no thumbnail
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1827 2a923420-c742-0410-a762-8d5b09965624
2014-03-26 21:48:09 +00:00
hummypkg
2bf876262f checkbox fixes, glob removal
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1825 2a923420-c742-0410-a762-8d5b09965624
2014-03-24 21:07:32 +00:00
hummypkg
972eab191c fix pretty size
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1819 2a923420-c742-0410-a762-8d5b09965624
2014-03-03 17:30:17 +00:00
hummypkg
9fd84a8938 use file size over file stat, add mp3 type preference
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1814 2a923420-c742-0410-a762-8d5b09965624
2014-03-03 14:00:46 +00:00
hummypkg
ceccfd9c1d update to Jim 0.75
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1811 2a923420-c742-0410-a762-8d5b09965624
2014-03-02 18:44:41 +00:00
hummypkg
c948926cc2 fix typo
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1806 2a923420-c742-0410-a762-8d5b09965624
2014-02-24 19:46:44 +00:00
hummypkg
a087581573 fix scroll position
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1805 2a923420-c742-0410-a762-8d5b09965624
2014-02-23 22:47:01 +00:00
hummypkg
3416d4e9e2 fixes
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1804 2a923420-c742-0410-a762-8d5b09965624
2014-02-23 22:22:07 +00:00
hummypkg
b4af9b62fc fix URL
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1802 2a923420-c742-0410-a762-8d5b09965624
2014-02-21 23:22:19 +00:00
hummypkg
68fdfcc4d5 1.0.9
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1800 2a923420-c742-0410-a762-8d5b09965624
2014-02-21 23:09:19 +00:00
hummypkg
7c181557a1 re-adding synlinks
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1790 2a923420-c742-0410-a762-8d5b09965624
2014-02-21 21:27:03 +00:00
hummypkg
0f1bbed6b9 migrating
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1789 2a923420-c742-0410-a762-8d5b09965624
2014-02-21 21:25:33 +00:00
hummypkg
8c4449ee36 new service screen
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1788 2a923420-c742-0410-a762-8d5b09965624
2014-02-20 00:51:02 +00:00
hummypkg
23cc31a02a foreign characters
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1786 2a923420-c742-0410-a762-8d5b09965624
2014-02-18 21:34:44 +00:00
hummypkg
98c4182a1f fix mkdir
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1785 2a923420-c742-0410-a762-8d5b09965624
2014-02-10 23:21:26 +00:00
hummypkg
1984d7151b restructure restartpending, create folder, cancel restartpending once nothing pending
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1784 2a923420-c742-0410-a762-8d5b09965624
2014-02-10 23:03:36 +00:00
hummypkg
97289969f1 more package management tweaks
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1781 2a923420-c742-0410-a762-8d5b09965624
2014-02-03 23:06:38 +00:00
hummypkg
0cfc8f233a package management improvements
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1778 2a923420-c742-0410-a762-8d5b09965624
2014-02-03 21:42:20 +00:00
793 changed files with 6420 additions and 4722 deletions

View File

@@ -1,6 +1,6 @@
var/mongoose/html/css/EXTRA.css
var/mongoose/html/favicon.ico
var/mongoose/html/img/fav/57.png
var/mongoose/html/img/fav/72.png
var/mongoose/html/img/fav/114.png
var/mongoose/html/img/fav/144.png
webif/html/css/EXTRA.css
webif/html/favicon.ico
webif/html/img/fav/57.png
webif/html/img/fav/72.png
webif/html/img/fav/114.png
webif/html/img/fav/144.png

View File

@@ -1,9 +1,10 @@
Package: webif
Priority: optional
Section: web
Version: 1.0.8
Version: 1.0.15
Architecture: mipsel
Maintainer: af123@hummypkg.org.uk
Depends: webif-channelicons(>=1.1.8),mongoose(>=3.0-9),jim(>=0.74-4),jim-oo,jim-sqlite3(>=0.74-1),jim-cgi(>=0.7),jim-binary,service-control(>=1.2),busybox(>=1.20.2-1),lsof,epg(>=1.0.13),hmt(>=1.1.14),ssmtp,anacron,trm(>=1.1),openssl-command,nicesplice,id3v2,file,rsvsync(>=1.0.2),webif-charts(>=1.2),stripts(>=1.2.3),smartmontools,tmenu(>=1.05),ffmpeg,id3v2,multienv(>=1.6)
Depends: webif-channelicons(>=1.1.11),lighttpd(>=1.4.35-2),jim(>=0.75-1),jim-oo,jim-sqlite3(>=0.75),jim-cgi(>=0.7),jim-binary(>=0.75),service-control(>=1.2),busybox(>=1.20.2-1),lsof(>=4.87),epg(>=1.0.13),hmt(>=1.1.19),ssmtp,anacron,trm(>=1.1),openssl-command,nicesplice,id3v2,file,rsvsync(>=1.0.2),webif-charts(>=1.2-1),stripts(>=1.2.5-3),smartmontools,tmenu(>=1.08),ffmpeg,id3v2,multienv(>=1.6),mongoose
Suggests:
Description: An evolving web interface for the Humax.
Tags: http://hummy.tv/forum/threads/5031/

View File

@@ -1,6 +1,16 @@
#!/bin/sh
echo "Postinstall $*"
# Relocate any stray files in /mod/var/mongoose
if [ -d /mod/var/mongoose -a ! -h /mod/var/mongoose ]; then
(
cd /mod/var/mongoose
find . | cpio -pmud /mod/webif
cd /mod/var
rm -rf mongoose
ln -s ../webif mongoose
)
fi
export tmpf=/tmp/cronf.$$
@@ -19,7 +29,7 @@ fi
ana=$PKG_ROOT/etc/anacrontab
egrep -v 'backup/backup.jim|bin/diskattrs' $ana > $tmpf
cat $tmpf - << EOM > $ana
1 8 sched_backup /mod/webif/cgi-bin/backup/backup.jim
1 8 sched_backup /mod/webif/html/backup/backup.jim
1 5 diskattrs /mod/webif/lib/bin/diskattrs
EOM
@@ -37,7 +47,7 @@ if [ ! -f /mod/webif/.strip-updated ]; then
fi
/mod/webif/lib/bin/diskattrs
/mod/webif/lib/bin/resetnew
#/mod/webif/lib/bin/resetnew
[ -f $tmpf ] && rm -f $tmpf

16
CONTROL/preinst Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
# Handle moving the legacy /var/mongoose directory to /webif..
if [ -h /mod/webif -a -d /mod/var/mongoose -a ! -h /mod/var/mongoose ]; then
echo "Relocating web interface files..."
cd /mod
rm webif || exit 1
mv var/mongoose webif || exit 1
cd var
ln -s ../webif mongoose
fi
exit 0

1
var/mongoose Symbolic link
View File

@@ -0,0 +1 @@
../webif

View File

@@ -1,9 +0,0 @@
#!/mod/bin/jimsh
source /mod/webif/lib/setup
httpheader "text/plain"
foreach f [dict keys $env] {
puts "$f = $env($f)"
}

View File

@@ -1,4 +0,0 @@
<!--#include virtual="/lib/header.shtml" -->
<!--#exec cmd="/mod/webif/include/backup.jim" -->
<!--#include virtual="/lib/footer.shtml" -->

View File

@@ -1,24 +0,0 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
httpheader
# dir=%2Fmedia%2FMy+Video%2FWeatherview
# aexpiry_days=13
set dir [cgi_get dir "-"]
set days [cgi_get aexpiry_days 7]
if {$dir eq "-"} exit
if {![file isdirectory $dir]} {
puts "Not a directory."
exit
}
set fd [open "$dir/.autoexpire" w]
puts $fd $days
$fd close
puts "Ok."

View File

@@ -1,33 +0,0 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require system.class chunked
cgi_input
#cgi_dump
set diag [cgi_get diag general]
start_chunked
if {[system modversion 1] < 113} {
chunk ">>> Diagnostics only available with customised firmware 1.13 or above."
end_chunked
exit
}
chunk ">>> Beginning diagnostic $diag\r\n"
set bcmd "|/bin/diag $diag"
set fd [open $bcmd r]
while {[gets $fd line] >= 0} {
chunk "$line\r\n"
#chunk_pad
}
close $fd
chunk "\r\n"
chunk ">>> Ending diagnostic $diag\r\n"
end_chunked

View File

@@ -1,4 +0,0 @@
<!--#include virtual="/lib/header.shtml" -->
<!--#exec cmd="/mod/webif/include/epg.jim" -->
<!--#include virtual="/lib/footer.shtml" -->

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
jquery-1.10.2.min.js

View File

@@ -1 +0,0 @@
<!--#exec cmd="/mod/webif/html/lib/footer.jim" -->

View File

@@ -1 +0,0 @@
<!--#exec cmd="/mod/webif/html/lib/header.jim" -->

View File

@@ -1,50 +0,0 @@
/*
* jQuery Plugin : jConfirmAction
*
* by Hidayat Sagita
* http://www.webstuffshare.com
* Licensed Under GPL version 2 license.
*
*/
(function($){
jQuery.fn.jConfirmAction = function (options, callback) {
// Some jConfirmAction options (limited to customize language) :
// question : a text for your question.
// yesAnswer : a text for Yes answer.
// cancelAnswer : a text for Cancel/No answer.
var theOptions = jQuery.extend ({
question: "Are You Sure?",
yesAnswer: "Yes",
cancelAnswer: "Cancel"
}, options);
return this.each (function () {
$(this).click(function(e) {
e.preventDefault();
var p = $(this);
if($(this).next('.question').length <= 0)
$(this).after('<div class="jcaquestion">'+theOptions.question+'<br/> <span class="jcayes">'+theOptions.yesAnswer+'</span><span class="jcacancel">'+theOptions.cancelAnswer+'</span></div>');
$(this).next('.jcaquestion').animate({opacity: 1}, 300);
$('.jcayes').bind('click', function() {
callback(p);
});
$('.jcacancel').bind('click', function(){
$(this).parents('.jcaquestion').fadeOut(300, function() {
$(this).remove();
});
});
});
});
}
})(jQuery);

View File

@@ -1,142 +0,0 @@
/*!
* jQuery contextMenu - Plugin for simple contextMenu handling
*
* Version: git-master
*
* Authors: Rodney Rehm, Addy Osmani (patches for FF)
* Web: http://medialize.github.com/jQuery-contextMenu/
*
* Licensed under
* MIT License http://www.opensource.org/licenses/mit-license
* GPL v3 http://opensource.org/licenses/GPL-3.0
*
*/
.context-menu-list {
margin:0;
padding:0;
min-width: 120px;
max-width: 250px;
display: inline-block;
position: absolute;
list-style-type: none;
border: 1px solid #DDD;
background: #EEE;
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
-ms-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
-o-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
}
.context-menu-item {
padding: 2px 2px 2px 24px;
background-color: #EEE;
position: relative;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
}
.context-menu-separator {
padding-bottom:0;
border-bottom: 1px solid #DDD;
}
.context-menu-item > label > input,
.context-menu-item > label > textarea {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.context-menu-item.hover {
cursor: pointer;
background-color: #39F;
}
.context-menu-item.disabled {
color: #666;
}
.context-menu-input.hover,
.context-menu-item.disabled.hover {
cursor: default;
background-color: #EEE;
}
.context-menu-submenu:after {
content: ">";
color: #666;
position: absolute;
top: 0;
right: 3px;
z-index: 1;
}
/* icons
#protip:
In case you want to use sprites for icons (which I would suggest you do) have a look at
http://css-tricks.com/13224-pseudo-spriting/ to get an idea of how to implement
.context-menu-item.icon:before {}
*/
.context-menu-item.icon { min-height: 18px; background-repeat: no-repeat; background-position: 4px 2px; }
.context-menu-item.icon-edit { background-image: url(images/page_white_edit.png); }
.context-menu-item.icon-cut { background-image: url(images/cut.png); }
.context-menu-item.icon-copy { background-image: url(images/page_white_copy.png); }
.context-menu-item.icon-paste { background-image: url(images/page_white_paste.png); }
.context-menu-item.icon-delete { background-image: url(images/page_white_delete.png); }
.context-menu-item.icon-add { background-image: url(images/page_white_add.png); }
.context-menu-item.icon-quit { background-image: url(images/door.png); }
/* vertically align inside labels */
.context-menu-input > label > * { vertical-align: top; }
/* position checkboxes and radios as icons */
.context-menu-input > label > input[type="checkbox"],
.context-menu-input > label > input[type="radio"] {
margin-left: -17px;
}
.context-menu-input > label > span {
margin-left: 5px;
}
.context-menu-input > label,
.context-menu-input > label > input[type="text"],
.context-menu-input > label > textarea,
.context-menu-input > label > select {
display: block;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
.context-menu-input > label > textarea {
height: 100px;
}
.context-menu-item > .context-menu-list {
display: none;
/* re-positioned by js */
right: -5px;
top: 5px;
}
.context-menu-item.hover > .context-menu-list {
display: block;
}
.context-menu-accesskey {
text-decoration: underline;
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,36 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- Need to get a proper redirect hooked up. Blech. -->
<meta http-equiv="refresh" content="0;url=demos/">
<meta name="robots" content="noindex, follow">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery Mobile</title>
<link rel="stylesheet" href="css/themes/default/jquery.mobile-1.3.2.min.css">
<link rel="stylesheet" href="demos/_assets/css/jqm-demos.css">
<link rel="shortcut icon" href="demos/_assets/favicon.ico">
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700">
<script src="js/jquery.js"></script>
<script src="demos/_assets/js/index.js"></script>
<script src="js/jquery.mobile-1.3.2.min.js"></script>
<script>
$( document ).on( "pageshow", function(){
$( "p.message" ).hide().delay( 1500 ).show( "fast" );
});
</script>
</head>
<body>
<div data-role="page" class="jqm-demos">
<div data-role="content" class="jqm-content">
<p class="message">Nothing to see here folks. <a href="demos/">View the demo center home page &rarr;</a></p>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
jquery.mobile-1.3.2.min.css

View File

@@ -1 +0,0 @@
jquery.mobile-1.3.2.min.js

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
#!/mod/bin/jimsh
source /mod/webif/lib/setup
require system.class
set modver [system modversion]
set modbuild [system modbuild]
if {$modbuild > 0} {
append modver " (build $modbuild)"
}
puts "<font class=blood style=\"font-size: 0.9em; float: right; clear: right\">
Web interface version: [system pkgver webif]<br>
Custom firmware version: $modver
"
if {![catch {set fhtcpversion [system fhtcpversion]}]} {
puts "<br>Humax Version: $fhtcpversion"
}
puts "</font>"

View File

@@ -1,46 +0,0 @@
#!/mod/bin/jimsh
source /mod/webif/lib/setup
puts {
<script type=text/javascript src=/js/packages.js></script>
<style type=text/css>
button.install
{
display: none;
background-image: none;
background: #ccff99;
}
button.remove
{
display: none;
background-image: none;
background: #ff6666;
}
button.upgrade
{
display: none;
}
</style>
<div id=pkgtabs>
<ul>
<li>
<a href=/cgi-bin/pkg.jim?type=inst>
<span>Installed</span>
</a>
</li><li>
<a href=/cgi-bin/pkg.jim?type=upgr>
<span>Upgrades</span>
</a>
</li><li>
<a href=/cgi-bin/pkg.jim?type=avail>
<span>Available</span>
</a>
</li>
</ul>
</div>
}

View File

@@ -1,24 +0,0 @@
#!/mod/bin/jimsh
set services [split [exec /mod/bin/service mlist]]
foreach service $services {
lassign [split $service ":"] name installed auto running
puts "<tr><td class=even>$name</td>"
if (!$installed) {
puts "<td colspan=3><i>Not installed</i></td></tr>"
continue
}
puts -nonewline "<td><input type=checkbox class=auto name=\"$name\""
if ($auto) { puts -nonewline " checked" }
puts "></td>"
puts -nonewline "<td><input type=checkbox class=toggle name=\"$name\""
if ($running) { puts -nonewline " checked" }
puts "></td>"
puts "</tr>"
}

View File

@@ -1,59 +0,0 @@
#!/mod/bin/jimsh
source /mod/webif/lib/setup
require system.class ts.class
proc do_shrink {ts} {
if {[$ts flag "Shrunk"]} { return }
set file [file rootname [$ts get file]]
if {[$ts inuse]} { return }
if {[catch {
set perc [exec /mod/bin/stripts -aq $file]
} msg]} {
return
}
if {[string match {*%} $perc]} {
set perc [string range $perc 0 end-1]
} else {
set perc 0
}
if {$perc == 0} {
puts " Flagging $file as shrunk..."
$ts set_shrunk
}
}
proc entries {dir callback} {
foreach entry [readdir -nocomplain $dir] {
if {![string match {*.ts} $entry} continue
if {[catch {set ts [ts fetch "$dir/$entry"]}]} continue
if {$ts == 0} continue
$callback $ts
}
}
proc scan {dir} {
puts "Scanning $dir..."
file stat "$dir/" st
if {$st(dev) != $::rootdev} { return }
entries $dir do_shrink
foreach entry [readdir -nocomplain $dir] {
if {[file isdirectory "$dir/$entry"]} {
scan "$dir/$entry"
}
}
}
set root [system mediaroot]
file stat "$root/" rootstat
set rootdev $rootstat(dev)
scan $root

View File

@@ -1,19 +0,0 @@
if {![exists -proc tdelete]} {
proc tdelete {path} {
if {[file isdirectory $path]} {
regsub -all {([\\["$])} $path {\\\1} cpath
foreach file [glob -nocomplain "${cpath}/*"] {
if {[file isdirectory $file]} {
tdelete $file
} else {
exec /mod/bin/trm $file
}
}
exec /mod/bin/busybox/rm -rf $path
} else {
exec /mod/bin/trm $path
}
}
}

1
webif
View File

@@ -1 +0,0 @@
var/mongoose

View File

@@ -2,7 +2,7 @@
package require cgi
source /mod/webif/lib/setup
require system.class chunked pretty_size
require system.class pretty_size
cgi_input
#cgi_dump
@@ -10,16 +10,14 @@ cgi_input
set file [cgi_get file "-"]
if {$file eq "-"} { exit }
start_chunked
httpheader "text/plain"
if {![file exists $file]} {
chunk ">>> File $file does not exist.\r\n"
puts ">>> File $file does not exist.\r\n"
} else {
chunk ">>> Contents of $file [pretty_size [file size $file]]\r\n"
puts ">>> Contents of $file [pretty_size [file size $file]]\r\n"
set fp [open $file r]
chunk [read $fp]
puts [read $fp]
close $fp
}
end_chunked

View File

@@ -91,10 +91,10 @@ foreach tw [$db query {
src=/images/421_1_00_CH_Title_2R_Arrow.png>
view
</a></td>"
puts "<td>$ehs</th>"
puts "<td>$ehs</td>"
puts "</tr>"
puts "<tr id=mchan_$tsIdx class=mchan style=\"display: none\">
<td colspan=5>"
<td colspan=9>"
puts "<table style=\"margin-left: 5em\">"
puts "<tr>
<th colspan=3>Channel</th>
@@ -107,15 +107,13 @@ foreach tw [$db query {
set name [string range $name 1 end]
set prv [string range $prv 3 end]
altrow
puts "<td class=va>"
puts "[epg channelicon $name 50]</td>
<td>$lcn</td><td>$name</td>"
puts "</td><td>"
puts $prv
puts "</td><td>"
puts $auth
puts "</td>"
puts "</tr>"
puts "
<td class=va>[epg channelicon $name 50]</td>
<td>$lcn</td><td>$name</td>
<td>$prv</td>
<td>$auth</td>
</tr>
"
}
puts "</table>"
puts "</td></tr>"
@@ -142,3 +140,5 @@ $(document).ready(function() {
</script>
}
footer

View File

@@ -63,7 +63,7 @@ proc db_info {db_file} {
if {$fdb == 0} {
puts "Please choose database to view:<ul>"
foreach db $databases {
puts "<li><a href=$::env(REQUEST_URI)?db=[file tail $db]>
puts "<li><a href=$::env(SCRIPT_NAME)?db=[file tail $db]>
$db</a></li>"
}
puts "</ul>"

9
webif/cgi-bin/env.jim Executable file
View File

@@ -0,0 +1,9 @@
#!/mod/bin/jimsh
source /mod/webif/lib/setup
httpheader
puts "<pre>"
parray env
puts "</pre>"

View File

@@ -13,7 +13,7 @@ set raw [cgi_get raw]
puts "<pre>"
if { $raw == 0 } {
puts [epg exec dump -raw 1 -service $service -event $event]
puts "<a href=$env(REQUEST_URI)?$env(QUERY_STRING)&raw=1>
puts "<a href=$env(SCRIPT_NAME)?$env(QUERY_STRING)&raw=1>
Click here for extended dump</a>"
} else {
puts [epg exec dumpraw -raw 1 -service $service -event $event]

View File

@@ -10,7 +10,7 @@ httpheader
set service [cgi_get service 0]
set event [cgi_get event 0]
if {![cgi_exists bare]} header
if {![cgi_exists bare]} header else noheader
set record [lindex [epg fetch dump -service $service -event $event] 0]
$record get_channel_info

View File

@@ -4,12 +4,11 @@ package require cgi
source /mod/webif/lib/setup
require epg.class spinner.class altrow settings.class
jqplugin highlight
header
require totop
puts "<script type=text/javascript src=/js/jquery.highlight.js></script>"
set ct [cgi_get ct 0]
set crid [cgi_get crid ""]
set scrid [cgi_get scrid ""]
@@ -56,6 +55,12 @@ if {$ct > 0 } {
}
set favlist [epg favlist]
set s [settings]
if {[$s service_style] eq "standard"} {
set surl xservice
} else {
set surl service
}
if {[llength $records] > 0} {
puts {
@@ -83,8 +88,10 @@ proc rsort {v1 v2} {
set seen {}
set i 0
foreach record [lsort -command rsort $records] {
set ename [$record get name]
if {$ename eq ""} continue
if {$dedup} {
set ename [$record get name]
if {$ename in $seen} continue
lappend seen $ename
}
@@ -105,7 +112,7 @@ foreach record [lsort -command rsort $records] {
puts "<td>[$record get channel_num]</td>"
puts "<td>[$record channel_icon 50]</td>"
puts "<td nowrap>
<a href=/cgi-bin/epg/service.jim?service=[$record get service_id]>
<a href=/epg/$surl.jim?service=[$record get service_id]>
[$record get channel_name]
</a></td>"
puts [$record cell]

View File

@@ -2,7 +2,7 @@
package require cgi
source /mod/webif/lib/setup
require pkg.class chunked
require pkg.class
cgi_input
#cgi_dump
@@ -10,30 +10,27 @@ cgi_input
set cmd [cgi_get cmd update]
proc opkg {cmd} {
chunk ">>> opkg $cmd\r\n"
puts ">>> opkg $cmd\r\n"
set bcmd "|/mod/webif/lib/bin/opkg $cmd"
set fd [open $bcmd r]
while {[gets $fd line] >= 0} {
chunk "$line\r\n"
#chunk_pad
puts "$line\r\n"
}
close $fd
chunk "\r\n"
puts "\r\n"
}
start_chunked
httpheader "text/plain"
if {$cmd eq "upgrade"} { opkg update }
opkg $cmd
if {$cmd eq "update" || $cmd eq "upgrade"} {
chunk "Updating package meta information\r\n"
puts "Updating package meta information\r\n"
pkg fetchmeta
chunk "Done.\r\n"
chunk "Updating diagnostic meta information\r\n"
puts "Done.\r\n"
puts "Updating diagnostic meta information\r\n"
pkg fetchdiagmeta
chunk "Done.\r\n"
puts "Done.\r\n"
}
end_chunked

View File

@@ -7,7 +7,7 @@ require rsv.class system.class
httpheader
if {[cgi_get act] eq "cancel"} {
file delete /tmp/.restartpending
system restartpending 0
exit
}
@@ -18,7 +18,8 @@ if {[cgi_get now] eq "yes"} {
exit
}
file delete /tmp/.restartpending
system restartpending 0
jqplugin progressbar
header
# Commit pending reservations on older mod versions.
@@ -27,8 +28,6 @@ if {![file exists /sbin/rsvsync] && ![file exists /mod/boot/rsvsync]} {
}
puts {
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<script type="text/javascript" src="/js/jquery.progressbar.js"></script>
<script type=text/javascript>
var handle = 0;
@@ -46,7 +45,7 @@ puts {
$(document).ready(function() {
$('#progressbar').reportprogress(0);
handle = setInterval("update()", 350);
handle = setInterval("update()", 400);
$.get('/cgi-bin/restart.jim?now=yes');
});
</script>

View File

@@ -8,7 +8,7 @@ set runmode cli
if {[string match {*jim} $argv0]} { set runmode cgi }
set schedtime 1200
case $runmode {
switch $runmode {
cgi {
set type [cgi_get type "full"]
httpheader
@@ -19,27 +19,67 @@ case $runmode {
}
}
if {"-d" in $argv} {
proc debug {arg} { puts $arg }
} else {
proc debug {arg} {}
}
if {[catch {set pid [exec pgrep -n humaxtv]}]} {
puts "Cannot find humaxtv process."
exit
}
set exts {.ts .mkv .avi .mpg .mpeg .wmv .mp3 .mp4 .mov}
proc get_data {} {
global pid
global pid exts
set ret {}
if {[catch {set data \
[exec /mod/bin/lsof -p $pid | grep Video | fgrep .ts]} ]} {
[exec /mod/webif/lib/bin/lsof -X -Fns -p $pid]} msg]} {
set ret {}
} else {
#aw
#s583700480
#n/mnt/hd2/My Video/Real Lives Reunited_20140610_1002.ts
# Unfortunately, the access flag isn't reliable for
# some reason. If it were, the sleep could be removed!
set size 0
foreach line [split $data "\n"] {
regsub -all -- {[[:space:]]+} $line " " line
set name [file rootname [file tail $line]]
if {[dict exists $ret $name]} {
set ret($name) -1
} else {
set size [lindex [split $line " "] 6]
set ret($name) $size
set typ [string index $line 0]
switch $typ {
s {
set size [string range $line 1 end]
}
n {
if {[string first Video/ $line] == -1 && \
[string first /media/ $line] == -1} {
continue
}
if {[string first "/.tsr/" $line] != -1} {
continue
}
regsub -- { \([^\)]+\)$} $line "" line
set ext [file extension $line]
if {$ext ni $exts} continue
set file [string range $line 1 end]
# Handle chase play (same file open twice
# and recently written)
if {[dict exists $ret $file] && \
$ext eq ".ts"} {
set age [expr [clock seconds] - \
[file mtime $file]]
if {$age < 60} {
set ret($file) -1
}
} else {
set ret($file) $size
}
}
}
}
}
@@ -48,40 +88,83 @@ proc get_data {} {
set play 0
set rec 0
set seen {}
set output {}
set data {}
if {$type eq "full"} {
set data [get_data]
} else {
set data {}
}
if {[llength $data]} {
sleep 3
set ndata [get_data]
foreach name [array names ndata] {
if {![dict exists $seen $name]} { set seen($name) 0 }
if {![dict exists $data $name]} { set data($name) 0 }
if {[file exists "/mod/tmp/webif_auto/decrypting.$name.ts"]} {
set mode "Decrypting"
set icon "178_1_00_Icon_Lock.png style=\"padding: 0 0.2em 0 0.5em\""
} elseif {$ndata($name) == -1} {
incr rec
incr play
set mode "Chase Playing"
set icon "745_1_11_Video_3REC_Live.png"
} elseif {$ndata($name) > $data($name) && $seen($name) < 1} {
incr rec
set mode "Recording"
set icon "745_1_11_Video_1REC.png"
debug " DATA: ($data)"
if {![file exists /tmp/.rractive]} {
set rr 0
sleep 3
set ndata [get_data]
debug " NDATA: ($ndata)"
} else {
set rr 1
set recs {}
loop i 0 2 {
catch {
set fd [open "/tmp/.rec$i" r]
lappend recs "[$fd read -nonewline].ts"
$fd close
}
}
debug " RECS: $recs"
}
foreach file [array names data] {
set bname [file rootname [file tail $file]]
if {[file exists "/mod/tmp/webif_auto/decrypting.$bname.ts"]} {
set mode dec
} elseif {$data($file) == -1} {
set mode chase
} elseif {$rr} {
if {$file in $recs} {
set mode rec
} else {
set mode play
}
} else {
incr play
set mode "Playing"
set icon "745_1_10_Video_2Live.png"
if {![dict exists $ndata $file]} continue
if {$ndata($file) > $data($file)} {
set mode rec
} else {
set mode play
}
}
incr seen($name)
switch $mode {
chase {
incr rec
incr play
set mode "Chase Playing"
set icon "745_1_11_Video_3REC_Live.png"
}
rec {
incr rec
set mode "Recording"
set icon "745_1_11_Video_1REC.png"
}
play {
incr play
set mode "Playing"
set icon "745_1_10_Video_2Live.png"
}
dec {
set mode "Decrypting"
set icon "178_1_00_Icon_Lock.png "
append icon "style=\"padding: 0 0.2em 0 0.5em\""
}
}
set name [string map {
"/mnt/hd2/My Video/" ""
"/media/drive1/Video/" ""
"/media/" ""
".ts" ""
} $file]
if {$runmode eq "cgi"} {
lappend output [concat \
@@ -96,6 +179,9 @@ if {[llength $data]} {
}
}
######################################################################
# Live viewing information
if {![system instandby] && $play < 1} {
set hsvc [system param CUR_SVC Value USERCONFIG]
@@ -136,6 +222,9 @@ if {![system instandby] && $play < 1} {
}
}
######################################################################
# In standby
if {[system instandby]} {
if {$runmode eq "cgi"} {
lappend output [concat \
@@ -150,6 +239,9 @@ if {[system instandby]} {
}
}
######################################################################
# Upcoming recordings
set events [rsv list tbl_reservation \
" where ersvtype = 3 and nsttime - [clock seconds] < $schedtime
and nsttime > [clock seconds] "]
@@ -173,6 +265,9 @@ foreach event $events {
}
}
######################################################################
# Output
if {[llength $output]} {
if {$runmode eq "cgi"} {
puts [join $output "\n<br>\n"]

View File

@@ -4,25 +4,29 @@ package require cgi
source /mod/webif/lib/setup
require settings.class
jqplugin enadis
jscss xepg.js /css/xepg.css
header
require epg.class spinner.class altrow epg_search totop system.class
set irinst [system pkginst ir]
puts {
<link type="text/css" href="/css/xepg.css" rel="Stylesheet" />
<script type=text/javascript src=/js/enadis.js></script>
<script type=text/javascript src=xepg.js></script>
}
set s [settings]
if {[[settings] chanchangenc]} {
if {[$s chanchangenc]} {
puts { <script type=text/javascript src=/js/chanchangenc.js></script> }
} else {
jqplugin confirmAction
puts { <script type=text/javascript src=/js/chanchange.js></script> }
}
if {[$s service_style] eq "standard"} {
set surl xservice
} else {
set surl service
}
[spinner new {
text "Loading EPG Information..."
size "1.2em"
@@ -40,7 +44,7 @@ if {$stt <= $now} {
set current 0
}
set favgroup [[settings] channel_group]
set favgroup [$s channel_group]
set hours [expr 1.0 * [[settings] xepghours]]
if {$hours == 0} { set hours 4.0 }
@@ -139,7 +143,7 @@ foreach e $records {
puts "[$e channel_icon 30]&nbsp;"
if {$irinst} { puts "</a>" }
puts "$chnum
<a href=\"/cgi-bin/epg/service.jim?service=[$e get service_id]\"
<a href=\"/epg/$surl.jim?service=[$e get service_id]\"
title=\"[$e get channel_name]\">
[$e get channel_name]
</a></div>"
@@ -245,7 +249,7 @@ $('#xepgnow')
}
puts "
<a href=/cgi-bin/settings.jim>
<a href=/settings/settings.jim>
<img border=0 height=14 src=/images/421_1_00_CH_Title_2R_Arrow.png>
Visit settings to change EPG options.
</a><br>

View File

@@ -1,7 +1,7 @@
$(function() {
$('#epgswitch').button().click(function() {
window.location = '/epg.shtml';
window.location = '/epg/list.jim';
});
$('button.nav').click(function() {

View File

@@ -1,7 +1,7 @@
function refresh_files()
{
$('#backup_files').load('/cgi-bin/backup/files.jim', function() {
$('#backup_files').load('files.jim', function() {
$('input.restore').change(function() {
$('#restore_button').removeAttr('disabled')
.button('option', 'disabled', false);
@@ -20,7 +20,7 @@ $(document).ready(function() {
$('#backup_button').click(function() {
$('#backup_working').slideDown();
$('#results').load('/cgi-bin/backup/backup.jim?' +
$('#results').load('backup.jim?' +
$('#backup_name').serialize(), function() {
$('#results').slideDown(function() {
$('#backup_working').slideUp();
@@ -32,7 +32,7 @@ $(document).ready(function() {
var backup = $('input.restore:checked').val();
if (confirm('Confirm deletion of ' + backup))
{
$('#results').load('/cgi-bin/backup/delete.jim?' +
$('#results').load('delete.jim?' +
$('input.restore').serialize(), function() {
$('#results').slideDown(function() {
refresh_files();
@@ -42,7 +42,7 @@ $(document).ready(function() {
});
$('#view_button').click(function() {
var backup = $('input.restore:checked').val();
$('#results').load('/cgi-bin/backup/view.jim?' +
$('#results').load('view.jim?' +
$('input.restore').serialize(), function() {
$('#results').slideDown(function() {
refresh_files();
@@ -54,7 +54,7 @@ $(document).ready(function() {
if (confirm('!!!!!!!!!!!!!!!!!!!!!!!!! PLEASE CONFIRM !!!!!!!!!!!!!!!!!!!!!!!!!\n\nAre you sure you wish to erase all scheduled recordings and favourite channels and then restore them from\n' + backup + '?'))
{
$('#restore_working').slideDown();
$('#results').load('/cgi-bin/backup/restore.jim?' +
$('#results').load('restore.jim?' +
$('input.restore').serialize(), function() {
$('#results').slideDown(function() {
$('#restore_working').slideUp();

View File

@@ -3,8 +3,10 @@
source /mod/webif/lib/setup
require altrow rsv.class
jscss backup.js
header
puts {
<script type=text/javascript src=/cgi-bin/backup/backup.js></script>
<h2>Backup/Restore</h2>
<div id=restore_warning class="hidden warningbox">
@@ -64,3 +66,5 @@ puts {
</div>
}
footer

49
webif/html/browse/aexpiry.jim Executable file
View File

@@ -0,0 +1,49 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require browse.class
# dir=%2Fmedia%2FMy+Video%2FWeatherview
# aexpiry_days=13
set dir [cgi_get dir "-"]
if {$dir eq "-"} exit
set act [cgi_get act "update"]
if {$act eq "fetch"} {
httpheader "application/json"
set data [{dir expiry} $dir]
puts "{"
puts " \"days\": \"$data(days)\","
puts " \"keep\": \"$data(keep)\","
puts " \"type\": \"$data(type)\","
puts " \"keepnew\": \"$data(keepnew)\""
puts "}"
exit
}
if {$act eq "remove"} {
httpheader
if {[file exists "$dir/.autoexpire"]} {
file delete "$dir/.autoexpire"
}
exit
}
httpheader
set data(days) [cgi_get aexpiry_days 0]
set data(keep) [cgi_get aexpiry_min 0]
set data(type) [cgi_get aexpiry_timetype recorded]
set data(keepnew) [cgi_get aexpiry_unwatched 0]
if {![file isdirectory $dir]} {
puts "Not a directory."
exit
}
{dir expiry} $dir $data
puts "Ok."

View File

@@ -38,6 +38,16 @@ if $nicesplice {
puts {
<li class=separator><a href=#lock>Toggle Lock</a></li>
<li><a href=#new>Toggle New</a></li>
}
if {[llength $plugins(menu)]} {
foreach plugin $plugins(menu) {
lassign $plugin tag options
puts "<li class=$tag><a href=#$tag>$options(desc)</a></li>"
}
}
puts {
</ul>
<ul id=ooptmenu class=contextMenu style="width: 160px">
@@ -80,7 +90,7 @@ if $flatten {
}
puts {
<li class=clock><a href=#expire>Auto-Expire</a></li>
<li class=clock><a href=#expire>Auto-Expire Options</a></li>
}
if {[system pkginst ffmpeg]} {
@@ -90,6 +100,13 @@ if {[system pkginst ffmpeg]} {
}
}
if {[llength $plugins(dmenu)]} {
foreach plugin $plugins(dmenu) {
lassign $plugin tag options
puts "<li class=$tag><a href=#$tag>$options(desc)</a></li>"
}
}
puts {
</ul>
@@ -259,28 +276,76 @@ puts {
</form>
</div>
<div id=aexpiry title="Auto-Expiry" style="display: none">
<div id=aexpiry title="Auto-Expiry Settings"
style="display: none; line-height: 1em;">
<form id=aexpiry_form>
<input type=hidden name="dir" id="aexpiry_ldir" value="">
}
puts {
<table border=0>
<tr>
<th>
<tr><th align=right>
<label for="aexpiry_days">
<b>Expire after</b>
<span class=blood>(in days)</span>
<b>Remove recordings after</b> (in days)
<br><span class=footnote>
(Leave blank to skip age check)
</span>
</label>
</th>
<td>
</th><td>
<input name="aexpiry_days" id="aexpiry_days"
type=number value=0 size=5 maxlength=3
class="text ui-widget-content ui-corner-all">
</td>
</tr>
</td></tr>
<tr><th>
<label for="aexpiry_min">
<b>Keep at least</b>
(number of recordings)
<br>
<span class=footnote>(Oldest will be deleted first)
</span>
</label>
</th><td>
<input name="aexpiry_min" id="aexpiry_min"
type=number value=0 size=5 maxlength=3
class="text ui-widget-content ui-corner-all">
</td></tr>
<tr><th>
<label for="aexpiry_timetype">
<b>For date of recording, use</b>
</label>
</th><td>
<input name="aexpiry_timetype" id="aexpiry_timetype0"
type=radio value=0 checked
class="text ui-widget-content ui-corner-all">
Recording end time
<br>
<input name="aexpiry_timetype" id="aexpiry_timetype1"
type=radio value=1
class="text ui-widget-content ui-corner-all">
<span>
When last watched
<span class=bfootnote>(or end time if unwatched)</span>
</span>
</td></tr>
<tr><th>
<label for="aexpiry_unwatched">
<b>Never delete unwatched recordings</b>
</label>
</th><td>
<input name="aexpiry_unwatched" id="aexpiry_unwatched"
type=checkbox value=1
class="ui-widget-content ui-corner-all">
</td></tr>
</table>
<div id=aexpiry_working class=hidden>
<img src=/img/loading.gif> Applying auto-expiry...
<img src=/img/loading.gif> Applying changes...
</div>
<div id=aexpiry_loading class=hidden>
<img src=/img/loading.gif> Retrieving data...
</div>
</form>
</div>

View File

@@ -3,19 +3,21 @@
package require sqlite3
package require cgi
source /mod/webif/lib/setup
require ts.class system.class
require ts.class system.class settings.class
jqplugin progressbar
jscss audio.js
header
set s [settings]
set type [$s audiomp3descr [$s audiomp3]]
set rfile [cgi_get file]
set ts [ts fetch $rfile]
set dir [file dirname $rfile]
set len [$ts duration 1]
puts "
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=audio.js></script>
<fieldset class=cleft>
<legend>Audio Extraction</legend>
@@ -31,7 +33,7 @@ puts "
></span>
<div id=audiodiv style=\"padding: 1em\">
<button id=audioit>Perform audio extraction</button>
<button id=audioit>Perform audio extraction - $type</button>
</div>
<div id=progressdiv class=hidden>

View File

@@ -3,7 +3,7 @@
package require sqlite3
package require cgi
source /mod/webif/lib/setup
require ts.class system.class
require ts.class system.class settings.class
httpheader
@@ -18,9 +18,15 @@ set base [file rootname $rfile]
set shname [file tail $base]
puts "Processing $shname"
puts [exec /mod/bin/ffmpeg -y -benchmark -v 0 \
-i $rfile -f mp3 \
-vn -acodec copy "${base}.mp3"]
set cmd [list ffmpeg -y -benchmark -v 0 -i "$rfile" -f mp3 -vn]
if {![[settings] audiomp3]} {
lappend cmd -acodec copy
}
lappend cmd "${base}.mp3"
#puts "$cmd"
puts [exec {*}$cmd]
if {[system pkginst id3v2]} {
puts [exec /mod/bin/id3v2 \

View File

@@ -4,6 +4,8 @@ package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size
jqplugin progressbar
jscss chunk.js chunk.css
header
set rfile [cgi_get file]
@@ -19,10 +21,6 @@ set esttime $(int($len * 0.025))
if {[$ts get definition] eq "HD"} { set esttime $($esttime * 4) }
puts "
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=chunk.js></script>
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<link href=chunk.css rel=stylesheet type=text/css />
<fieldset class=cleft>
<legend>Split recording into 45 minute segments</legend>

View File

@@ -4,6 +4,8 @@ package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size
jqplugin progressbar
jscss crop.js
header
set rfile [cgi_get file]
@@ -13,10 +15,6 @@ set dir [file dirname $rfile]
set len [$ts duration 1]
puts "
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=crop.js></script>
<fieldset class=cleft>
<legend>Crop recording</legend>

View File

@@ -34,10 +34,12 @@ if {[file exists "$origdir/$shname.ts"]} {
}
puts "Moving recording to $origdir"
foreach f [glob -nocomplain "${base}.*"] {
set tail [file tail $f]
puts " $tail"
file rename $f "$origdir/$tail"
set tail [file tail $base]
foreach ext $tsgroup {
if {![file exists "$base.$ext"]} continue
puts " $tail.$ext"
file rename "$base.$ext" "${origdir}/$tail.$ext"
}
puts [exec /mod/bin/nicesplice \

View File

@@ -5,6 +5,8 @@ package require cgi
source /mod/webif/lib/setup
require ts.class
jqplugin progressbar
jscss decrypt.js
header
set rfile [cgi_get file]
@@ -14,9 +16,6 @@ set len [$ts duration 1]
lassign [$ts dlnaloc "127.0.0.1"] url
puts "
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=decrypt.js></script>
<fieldset class=cleft>
<legend>Decrypt in-place</legend>

View File

@@ -42,20 +42,22 @@ 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"
set tail [file tail $base]
foreach ext $tsgroup {
if {![file exists "$base.$ext"]} continue
puts " $tail.$ext"
file rename "$base.$ext" "${origdir}/$tail.$ext"
}
file rename "$rfile.decrypting" $rfile
file touch $rfile "$origdir/$tail.ts"
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"
file touch "$dir/$sidecar" "$origdir/$tail.ts"
}
}

View File

@@ -2,7 +2,7 @@
package require cgi
source /mod/webif/lib/setup
require pretty_size
require pretty_size progressbar
httpheader
@@ -11,8 +11,7 @@ set type [cgi_get type]
if {$file == 0} exit
file stat $file st
set sz [pretty_size $st(size)]
set sz [pretty_size [file size $file]]
if {$type eq "ts"} {
require epg.class ts.class
@@ -80,6 +79,11 @@ if {$type eq "ts"} {
<td>[$ts duration] minute(s).
<font class=also>(Scheduled: [expr [$ts get scheddur] / 60])
</font></td>
</tr><tr>
<th>Resumes</th>
<td>[expr [$ts get resume] / 60] minutes into recording.
[progressbar $([$ts get resume] * 100 / [$ts duration 1])]
</td>
</tr><tr>
<th>Size</th>
<td>$sz</td>

View File

@@ -2,7 +2,14 @@
package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size system.class settings.class escape browse.class
require ts.class pretty_size system.class settings.class escape browse.class \
plugin
jqplugin contextMenu bar enadis
jscss script.js style.css
set plugins { dmenu {} menu {} }
eval_plugins browse
header
@@ -12,8 +19,8 @@ set flatten [system pkginst flatten]
set ignore {.nts .thm .hmi}
set include {.ts .avi .mpg .mpeg .wmv .mkv .mp3 .mp4 .mov .hmt}
if {![dict exists $env REQUEST_URI]} {
set env(REQUEST_URI) ""
if {![dict exists $env SCRIPT_NAME]} {
set env(SCRIPT_NAME) ""
cgi_input
set _cgi(dir) "/media/My Video/"
}
@@ -50,7 +57,7 @@ proc directory {file bfile tbfile} {
if {!$::nofcount} { puts "<span class=foldernum></span>" }
puts "<input class=\"fs fsdir\" type=checkbox>"
puts "<a class=dbf
href=\"$::env(REQUEST_URI)?dir=[cgi_quote_url $file]\"
href=\"$::env(SCRIPT_NAME)?dir=[cgi_quote_url $file]\"
file=\"[cgi_quote_url $file]\">"
puts "$bfile</a><span class=filesize id=\"$tbfile\">
</span>"
@@ -86,7 +93,7 @@ set dircount 0
set filecount 0
proc entry {file} {{i 0}} {
global dircount filecount
global dircount filecount dinuse
set bfile [file tail $file]
regsub -all " +" $bfile "" tbfile
@@ -101,8 +108,7 @@ proc entry {file} {{i 0}} {
set ext [string tolower [file extension $file]]
if {$ext in $::ignore || $ext ni $::include} { return }
file stat $file st
set rsz $st(size)
set rsz [file size $file]
set sz [pretty_size $rsz]
set base [file rootname $file]
@@ -168,6 +174,9 @@ proc entry {file} {{i 0}} {
set dlna 0
set shrunk 0
if {$type eq "ts"} {
if {$bfile in $dinuse} {
icon "/img/inuse.png"
}
set genre [$ts get genre]
set glist [ts genrelist]
if {[dict exists $glist $genre]} {
@@ -249,16 +258,6 @@ set dir [cgi_get dir $mroot]
######################################################################
# Render web page
puts {
<link href=/css/jquery.contextMenu.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.contextMenu.js></script>
<link href=/css/jquery.bar.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.bar.js></script>
<script type=text/javascript src=/js/enadis.js></script>
<script type=text/javascript src=script.js></script>
<link type=text/css rel=stylesheet href=style.css />
}
source assets.jim
puts "
@@ -273,7 +272,7 @@ 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 "<a href=\"$env(SCRIPT_NAME)?dir=[cgi_quote_url $stub]\">$name</a>
}
puts "<span class=filesize id=dirsize></span>"
puts "</legend>"
@@ -283,7 +282,7 @@ 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]\">
<a href=\"$env(SCRIPT_NAME)?dir=[cgi_quote_url $parent]\">
<img border=0 src=/images/711_3_09_Media_Folder_UP.png class=va>
\[parent directory\]</a>
</div>
@@ -308,9 +307,9 @@ proc s_time {a b} {
}
if {[catch {file stat $a l}]} { return 0}
set at $l(ctime)
set at $l(mtime)
if {[catch {file stat $b l}]} { return 0}
set bt $l(ctime)
set bt $l(mtime)
if {$at < $bt} { return -1 }
if {$at > $bt} { return 1 }
@@ -323,6 +322,7 @@ switch $order {
default { set files [lsort -nocase $files] }
}
set dinuse [system dirinuse $dir]
foreach file $files { entry "$dir/$file" }
puts "
@@ -342,7 +342,7 @@ foreach sl $sortlist {
set tag "Currently sorting"
if {$order != $index} {
puts "
<a href=\"$env(REQUEST_URI)?$env(QUERY_STRING)&order=$index\">"
<a href=\"$env(SCRIPT_NAME)?$env(QUERY_STRING)&order=$index\">"
set tag "Sort"
}
puts "<img class=va border=0 src=/img/$img.gif> $tag by $descr"

View File

@@ -4,18 +4,14 @@ package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size
jqplugin progressbar touchbridge
jscss join.js join.css
header
cgi_input 1
#cgi_dump
puts "
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<link href=join.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=/js/touchbridge.js></script>
<script type/text/javascript src=join.js></script>
<p><b>
Drag the files below into order, enter a name for the resulting file and then
click the <i>Join</i> button.</b>

View File

@@ -5,6 +5,8 @@ package require cgi
source /mod/webif/lib/setup
require ts.class system.class
jqplugin progressbar
jscss mpg.js
header
set rfile [cgi_get file]
@@ -13,9 +15,6 @@ set dir [file dirname $rfile]
set len [$ts duration 1]
puts "
<link href=/css/jquery.progressbar.css rel=stylesheet type=text/css />
<script type=text/javascript src=/js/jquery.progressbar.js></script>
<script type=text/javascript src=mpg.js></script>
<fieldset class=cleft>
<legend>Extract to MPG</legend>

Some files were not shown because too many files have changed in this diff Show More