Compare commits

..

4 Commits

Author SHA1 Message Date
hummypkg
7356e6e220 add strip
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1046 2a923420-c742-0410-a762-8d5b09965624
2012-06-10 21:16:22 +00:00
hummypkg
7d1331f1aa add Humax version to main screen, fix shtml footer;
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1029 2a923420-c742-0410-a762-8d5b09965624
2012-06-03 20:12:31 +00:00
hummypkg
895dda6dee favourite order
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1020 2a923420-c742-0410-a762-8d5b09965624
2012-05-30 19:51:20 +00:00
hummypkg
d7284ff3ef 0.9.9
git-svn-id: file:///root/webif/svn/humax/pkg/src/webif/trunk@1016 2a923420-c742-0410-a762-8d5b09965624
2012-05-21 20:23:41 +00:00
107 changed files with 581 additions and 204 deletions

View File

@@ -1,9 +1,9 @@
Package: webif
Priority: optional
Section: web
Version: 0.9.8-3
Version: 0.9.11
Architecture: mipsel
Maintainer: af123@hummypkg.org.uk
Depends: webif-channelicons(>=1.0.1),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.1)
Depends: webif-channelicons(>=1.0.1),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
Suggests: ffmpeg,webif-iphone
Description: An evolving web interface for the Humax.

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class
@@ -68,16 +68,17 @@ set grp 0
foreach res [$rsvdb query {
select eFavGroup,
TBL_FAV.eSvcType,
substr(szSvcName, 2) as szSvcName
substr(szSvcName, 2) as szSvcName,
favIdx
from TBL_FAV join TBL_SVC using (hSvc)
order by eFavGroup
order by eFavGroup, favIdx
}] {
if {$res(eFavGroup) != $grp} {
set grp $res(eFavGroup)
puts " Group $grp"
}
puts " $res(szSvcName)"
puts $fd "fav\t$res(eFavGroup)\t$res(eSvcType)\t$res(szSvcName)"
puts $fd "fav\t$res(eFavGroup)\t$res(eSvcType)\t$res(szSvcName)\t$res(favIdx)"
}
puts "Done."

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
set dir /mod/var/backup

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class findhsvc system.class
@@ -108,6 +108,8 @@ foreach line $data {
set group [lindex $vals 1]
set type [lindex $vals 2]
set chan [lindex $vals 3]
set idx [lindex $vals 4]
if {$idx eq ""} { set idx 0 }
set hsvc [get_channel_attr $chan]
if {$grp != $group} {
@@ -123,8 +125,8 @@ foreach line $data {
}
set query "
insert into pending.fav(hSvc, eFavGroup, eSvcType)
values($hsvc, $group, $type);
insert into pending.fav(favIdx, hSvc, eFavGroup, eSvcType)
values($idx, $hsvc, $group, $type);
"
$rsvdb query $query

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size system.class settings.class escape
puts "Content-Type: text/html"
@@ -100,16 +100,19 @@ proc entry {file} {{i 0}} {
set type ts
set ts [ts fetch $file 1]
set img Video_TS
set omenu opt
} elseif {$ext eq ".hmt"} {
if {[file exists "${base}.ts"]} { continue }
# Sole hmt file indicates failure to track.
set type bad
set ts 0
set img Video_Failed
set omenu oopt
} else {
set type gen
set ts 0
set img Video_Other
set omenu oopt
}
set new 0
@@ -194,7 +197,7 @@ proc entry {file} {{i 0}} {
puts "
<a href=#>
<img class=\"opt va\" border=0 width=45 type=$type did=$i
<img class=\"$omenu va\" border=0 width=45 type=$type did=$i
locked=$locked encd=$encd def=$def new=$new bx=$bx
rsize=$rsz
odencd=$odencd dlna=$dlna
@@ -222,7 +225,7 @@ puts {
<link type=text/css rel=stylesheet href=/cgi-bin/browse/style.css />
}
source /mod/var/mongoose/cgi-bin/browse/assets.jim
source browse/assets.jim
puts "
<span style=\"display:none\" id=dir>$dir</span>

View File

@@ -15,6 +15,9 @@ puts {
}
if {$model eq "HDR"} {
puts { <li class="separator"><a href=#decrypt>Decrypt</a></li> }
puts { <li class="cut"><a href=#strip>Strip</a></li> }
} else {
puts { <li class="cut separator"><a href=#strip>Strip</a></li> }
}
if {[system pkginst ffmpeg]} {
puts {
@@ -33,6 +36,15 @@ puts {
<li><a href=#new>Toggle New</a></li>
</ul>
<ul id=ooptmenu class=contextMenu style="width: 160px">
<li class=delete><a href=#delete>Delete</a></li>
<li class=cut><a href=#cut>Cut to clipboard</a></li>
<li class=pwcopy><a href=#copy>Copy to clipboard</a></li>
<li class=separator><a href=#rename>Rename</a></li>
<li><a href=#download>Download</a></li>
</ul>
<ul id=doptmenu class=contextMenu style="width: 160px">
<li class=delete><a href=#delete>Delete</a></li>
<li class=cut><a href=#cut>Cut to clipboard</a></li>

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class system.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class system.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -218,6 +218,11 @@ function preparemenu(el, menu)
else
$(menu).disableContextMenuItems('#crop');
if (el.attr('def') == 'HD')
$(menu).disableContextMenuItems('#strip');
else
$(menu).enableContextMenuItems('#strip');
if (el.attr('rsize') > 4294967296)
$(menu).enableContextMenuItems('#chunk');
else
@@ -268,6 +273,7 @@ function preparemenu(el, menu)
$(menu).disableContextMenuItems('#audio');
$(menu).disableContextMenuItems('#mpg');
$(menu).disableContextMenuItems('#crop');
$(menu).disableContextMenuItems('#strip');
$(menu).disableContextMenuItems('#chunk');
}
@@ -357,6 +363,11 @@ var menuclick = function(action, el, pos)
file;
break;
case 'strip':
window.location.href = '/cgi-bin/browse/strip/strip.jim?file=' +
file;
break;
case 'chunk':
window.location.href = '/cgi-bin/browse/chunk/chunk.jim?file=' +
file;
@@ -457,6 +468,16 @@ var dmenuclick = function(action, el, pos)
menuclick
);
// Bind context menu to opt+ image
$('img.oopt').contextMenu(
{
menu: 'ooptmenu',
leftButton: true,
beforeShow: preparemenu
},
menuclick
);
$('img.dopt').contextMenu(
{
menu: 'doptmenu',

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require clipboard.class ts.class
puts "Content-Type: text/html; no-cache"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size system.class tdelete
puts "Content-Type: text/html\r\n"

View File

@@ -2,7 +2,7 @@
package require cgi
package require sqlite3
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
#puts "Content-Type: text/plain\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/ts.class
puts "Content-Type: text/html"
puts ""

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/ts.class
puts "Content-Type: application/json"
puts ""

View File

@@ -10,7 +10,7 @@ cgi_input
if [file exists /mod/bin/ffmpeg] {
set file [dict get $_cgi file]
puts [exec /mod/var/mongoose/lib/ffmpeg -i $file]
puts [exec /mod/webif/lib/ffmpeg -i $file]
} else {
puts "Install ffmpeg package for more information..."
}

View File

@@ -1,7 +1,8 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/pretty_size
source /mod/webif/lib/setup
require pretty_size
puts "Content-Type: text/html"
puts ""
@@ -20,8 +21,7 @@ file stat $file st
set sz [pretty_size $st(size)]
if {$type eq "ts"} {
source /mod/var/mongoose/lib/epg.class
source /mod/var/mongoose/lib/ts.class
require epg.class ts.class
set ts [ts fetch $file]

View File

@@ -1,7 +1,8 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html"
puts ""

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
#source /mod/var/mongoose/lib/setup
#source /mod/webif/lib/setup
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,8 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html"
puts ""

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class system.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -2,7 +2,7 @@
package require sqlite3
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class system.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n"

View File

@@ -1,7 +1,8 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html"
puts ""

View File

@@ -2,7 +2,7 @@
package require cgi
package require pack
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class hexdump
puts "Content-Type: text/html"

View File

@@ -1,7 +1,8 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/ts.class
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html"
puts ""

View File

@@ -0,0 +1,52 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"
cgi_input
#cgi_dump
set rfile [cgi_get file]
set ts [ts fetch $rfile]
set dir [file dirname $rfile]
set len [$ts duration 1]
set stripstart [clock milliseconds]
set base [file rootname $rfile]
set origdir "$dir/_original"
if {![file exists $origdir]} { file mkdir $origdir }
set shname [file tail $base]
puts "Processing $shname"
if {[file exists "$origdir/$shname.ts"]} {
puts "This recording already exists within _original"
puts "Cannot continue."
exit
}
puts "Moving recording to $origdir"
foreach f [glob -nocomplain "${base}.*"] {
set tail [file tail $f]
puts " $tail"
file rename $f "$origdir/$tail"
}
puts [exec /mod/bin/stripts \
"$origdir/$shname" \
"$dir/$shname" \
]
set newname "$shname-[clock seconds]"
puts "Renaming file group to $newname"
ts renamegroup "$dir/$shname.ts" $newname
exec /mod/bin/hmt "+setfilename=$newname" "$dir/$newname.hmt"
set striptime [expr [expr [clock milliseconds] - $stripstart] / 1000.0]
puts "Time taken: $striptime"

View File

@@ -0,0 +1,27 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require ts.class
puts "Content-Type: text/html\r\n\r\n"
cgi_input
#cgi_dump
set tsfile [file normalize [cgi_get file]]
set ntsfile "[file rootname $tsfile].nts"
set origfile "[file dirname $tsfile]/_original/[file tail $ntsfile]"
if {![file exists $ntsfile]} {
puts "0"
} else {
set sz [file size $origfile]
set nsz [file size $ntsfile]
set perc [expr $nsz * 100 / $sz]
if {$perc > 100} { set perc 100 }
puts $perc
}

View File

@@ -0,0 +1,62 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"
cgi_input
#cgi_dump
set rfile [cgi_get file]
set ts [ts fetch $rfile]
set dir [file dirname $rfile]
set len [$ts duration 1]
set esttime $([$ts size] / 5700000)
header
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=strip.js></script>
<fieldset class=cleft>
<legend>Strip unecessary frames from recording</legend>
<p><i>This process will remove freeview EIT packets from the recording.<br>
These packets are not required but typically increase the size of the
recording file by as much as 20%.<br>
Your original recording files will be retained in a folder called _original.
</i>
<table class=keyval cellpadding=5>
<tr><th>File:</th><td>$rfile</td></tr>
<tr><th>Length:</th><td>[clock format $len -format %T]</td></tr>
<tr><th>Size:</th><td>[pretty_size [$ts size]] ([$ts get definition])</td></tr>
<tr><th>Time:</th>
<td>Stripping will take around [clock format $esttime -format "%T"]</td></tr>
</table>
<span class=hidden id=params
file=\"[cgi_quote_url $rfile]\"
dir=\"[cgi_quote_url $dir]\"
></span>
<div id=stripdiv style=\"padding: 1em\">
<button id=stripit>Perform strip operation</button>
</div>
<div id=progressdiv class=hidden>
Stripping: <div id=progressbar></div>
</div>
<button id=back class=hidden>Back to media list</button>
<div id=output class=pre style=\"margin-top: 10px\"></div>
</fieldset>
"

View File

@@ -0,0 +1,37 @@
var handle = 0;
function update()
{
var file = $('#params').attr('file');
$.get('progress.jim' + '?file=' + file,
function(data) {
if (handle)
$('#progressbar').reportprogress(data);
});
}
$(document).ready(function() {
$('#progressbar').reportprogress(0);
$('#back').button().click(function() {
window.location = '/cgi-bin/browse.jim?dir=' + $('#params').attr('dir');
});
$('#stripit').button().click(function() {
$('#stripdiv').hide('slow');
$('#progressdiv').show('slow');
handle = setInterval("update()", 1000);
$('#output').text('Please do not interrupt...')
.load('execute.jim?file=' + $('#params').attr('file'),
function() {
clearInterval(handle);
handle = 0;
$('#back').show();
$('#progressbar').reportprogress(100);
});
});
});

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class chunked pretty_size
cgi_input

View File

@@ -2,7 +2,7 @@
package require cgi
package require sqlite3
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require altrow progressbar epg.class
puts "Content-Type: text/html"

View File

@@ -2,7 +2,7 @@
package require cgi
package require sqlite3
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require altrow
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class system.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class spinner.class altrow
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class spinner.class altrow
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require pkg.class chunked
cgi_input
@@ -11,7 +11,7 @@ set cmd [cgi_get cmd update]
proc opkg {cmd} {
chunk ">>> opkg $cmd\r\n"
set bcmd "|/mod/var/mongoose/lib/opkg $cmd"
set bcmd "|/mod/webif/lib/opkg $cmd"
set fd [open $bcmd r]
while {[gets $fd line] >= 0} {
chunk "$line\r\n"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require settings.class pkg.class altrow
if {[[settings] pkgdev]} { set filter 0 } else { set filter 1 }

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class system.class
puts "Content-Type: text/html"

View File

@@ -3,5 +3,5 @@
puts "Content-Type: text/html"
puts ""
source /mod/var/mongoose/include/restart.jim
source /mod/webif/include/restart.jim

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require settings.class
require plugin
@@ -29,6 +29,7 @@ set smtp_server [$settings smtp_server]
set channel_group [$settings channel_group]
set epg_style [$settings epg_style]
set pkgdev [$settings pkgdev]
set notoolbar [$settings notoolbar]
# Handle updates
@@ -65,6 +66,7 @@ _handle_update ascii smtp_server $smtp_server "SMTP Server"
handle_int_update channel_group $channel_group "Channel Group"
handle_str_update epg_style $epg_style "EPG Type"
handle_int_update pkgdev $pkgdev "Development Package Display"
handle_int_update notoolbar $notoolbar "Disable toolbar"
set acluser [cgi_get acluser "-"]
set aclpass [cgi_get aclpass "-"]
@@ -140,6 +142,17 @@ puts ">
</tr>
"
puts -nonewline "
<tr>
<th class=key>Slide-down toolbar?</th>
<td><input id=toolbar_toggle name=toolbar type=checkbox value=yes"
if {$notoolbar == 0} { puts -nonewline " checked" }
puts ">
<div id=toolbar_output></div>
</td>
</tr>
"
puts "
<tr>
<form class=auto id=epg_style method=get action=$env(REQUEST_URI)>

View File

@@ -73,5 +73,24 @@ $(document).ready(function () {
.delay(2000).fadeOut('slow');
});
});
$('#toolbar_toggle').change(function() {
var arg = '1';
if ($(this).attr('checked'))
arg = '0';
$(this).disable();
$('#toolbar_output')
.empty()
.show('slow')
.load('/cgi-bin/settings.jim?notoolbar=' + arg,
function() {
$('#toolbar_toggle').enable();
$('#toolbar_output')
.css('font-style', 'italic')
.delay(2000).fadeOut('slow');
});
});
});

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class findhsvc epg.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
puts "Content-Type: text/html"
puts ""
@@ -29,7 +29,7 @@ if {$stt <= [clock seconds]} {
set current 0
}
set favlist [epg favlist]
set favgroup [[settings] channel_group]
set hours 4.0
set seconds $($hours * 3600)
@@ -51,7 +51,13 @@ set secpx $($minpx / 60.0)
set start [clock milliseconds]
if {$::qepg} {
set records [epg dbfetch dump -trange "$stt:$ett"]
if {$favgroup} {
set records [epg dbfetch dump \
-trange "$stt:$ett" -fav $favgroup]
} else {
set records [epg dbfetch dump -trange "$stt:$ett"]
}
} else {
require channelsort
set records [channelsort [epg fetch dump -trange "$stt:$ett"]]
@@ -87,9 +93,6 @@ set lcn 0
set bg "odd"
foreach e $records {
if {$favlist != "" && [$e get service_id] ni $favlist} {
continue
}
set chnum [$e get channel_num]
if {$chnum == 0} { continue }
@@ -218,12 +221,12 @@ puts "
</a><br>
"
epg cleanup
set end [clock milliseconds]
puts "<font class=footnote>
Retrieved in: [expr [expr $got - $start] / 1000.0] seconds.
</font>"
epg cleanup
footer

View File

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

View File

@@ -1,10 +1,10 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class
source /mod/var/mongoose/html/dedup/normalise.jim
source /mod/var/mongoose/html/dedup/process.jim
source /mod/webif/html/dedup/normalise.jim
source /mod/webif/html/dedup/process.jim
set dirs {}
@@ -23,6 +23,7 @@ foreach dir $dirs {
set dir [string range $dir 0 end-1]
}
puts "\[$dir\]"
loadseries $dir
foreach file [readdir $dir] {
if {[file extension $file] ne ".hmt"} { continue }
@@ -67,7 +68,7 @@ foreach dir $dirs {
# Dooooo, it.
$ts settitle $syn
ts renamegroup $file $fn
puts -nonewline "Done"
puts -nonewline " ... Done"
}
}
}

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size altrow
source normalise.jim
@@ -31,8 +31,7 @@ puts "<fieldset style=\"display: inline\">
</tr>
"
set seen {}
loadseries $dir
foreach file [readdir $dir] {
set file "$dir/$file"
if {[file extension $file] ne ".hmt"} { continue }

View File

@@ -8,8 +8,32 @@ set dedup_prefixes {
{^\.+}
}
proc loadseries {dir} {
global seriesmap
set seriesmap [dict create]
if {![file exists "$dir/series.info"]} { return }
if {[catch {set fd [open "$dir/series.info" "r"]} msg]} {
puts "Error opening series.info: $msg"
return
}
foreach line [split [read $fd] "\n\r"] {
set i [string first " ==> " $line]
if {$i == -1} { continue }
set name [string range $line 0 $($i - 1)]
set prefix [string range $line $($i + 5) end]
if {$prefix eq ""} { continue }
dict set seriesmap $name $prefix
regsub -all -- {[[:space:]]+} [string tolower $name] "" name
dict set seriesmap $name $prefix
}
$fd close
}
proc dedupnormalise {title {reserve ""}} {
global dedup_prefixes
global dedup_prefixes seriesmap
# Strip common prefixes
foreach prefix $dedup_prefixes {
@@ -38,6 +62,16 @@ proc dedupnormalise {title {reserve ""}} {
}
}
if {[dict exists $seriesmap $title]} {
set ntitle "$seriesmap($title): $title"
set title $ntitle
} else {
regsub -all -- {[[:space:]]+} [string tolower $title] "" ntitle
if {[dict exists $seriesmap $ntitle]} {
set title "$seriesmap($ntitle): $title"
}
}
# Shorten if too long.
if {[string length $title] > 40} {
set title [string range $title 0 39]

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require pretty_size
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class chunked
cgi_input

View File

@@ -2,7 +2,7 @@
package require cgi
package require sqlite3
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require ts.class pretty_size
puts "Content-Type: text/html\r\n\r\n"

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class
puts "Content-Type: text/html"

View File

@@ -0,0 +1,18 @@
#!/mod/bin/jimsh
package require cgi
source /mod/webif/lib/setup
cgi_input
#cgi_dump
set file [cgi_get file "/tmp/hosts"]
if {$file eq "-"} { exit }
puts "Content-Type: text/plain\n"
if {[file exists $file]} {
puts ">>> File already exists."
exit
}

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
puts "Content-Type: text/html"
puts ""
@@ -33,6 +33,7 @@ Use the <i>Open</i> button below to begin.
<button class=xeditactive id=open>Open</button>
<button class=editactive id=save>Save</button>
<button class=editactive id=revert>Revert</button>
<button class=xeditactive id=create>Create File</button>
<div id=result class="blood hidden" />
@@ -47,6 +48,26 @@ Use the <i>Open</i> button below to begin.
<div id=chooser></div>
</div>
<div id=createf title="Create new file" style="display: none">
<form id=createf_form>
<table border=0>
<tr>
<th>
<label for="createf_name">
<b>Filename</b>
</label>
</th>
<td>
<input type=text name="createf_name"
id="createf_name"
value="/mod/" size=70 maxlength=255
class="text ui-widget-content ui-corner-all">
</td>
</tr>
</table>
</form>
</div>
}
footer

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
cgi_input
#cgi_dump

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require chunked pretty_size
cgi_input

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
puts "Content-Type: text/html"
puts ""

View File

@@ -103,5 +103,45 @@ $('#back').click(function() {
window.location = '/diag/diag.jim';
});
function createf_submit()
{
var f = $('#createf_name').val();
console.log('Creating: ' + f);
$('#createf').dialog('close');
$.get('create.jim?file=' + encodeURIComponent(f), function(data) {
if (data.match('^>>>'))
{
$('#msg').text(data);
file = null;
changed = false;
}
else
{
$('#editor').val('').enable();
$('button.editactive').enable();
$('#msg').html('Editing new file <i>' + f + '</i>');
file = f;
changed = false;
}
});
}
$('#createf').dialog({
autoOpen: false,
height: 'auto', width: 'auto',
modal: true,
buttons: {
"Create File": createf_submit,
"Cancel": function() {
$(this).dialog('close');
}
}
});
$('#create').click(function() {
console.log('opening dialog');
$('#createf').dialog('open');
});
});

View File

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

View File

@@ -18,10 +18,10 @@ $(document).ready(function() {
});
</script>
<!--#exec cmd="/mod/var/mongoose/include/menuicons.jim" -->
<!--#exec cmd="/mod/webif/include/menuicons.jim" -->
<div style="clear: both; padding-top: 1em">
<!--#exec cmd="/mod/var/mongoose/include/menuplugins.jim" -->
<!--#exec cmd="/mod/webif/include/menuplugins.jim" -->
</div>
<div class=footer>
@@ -34,7 +34,7 @@ Firmware</a> |
<a target=_blank href="http://wiki.hummy.tv/wiki/Webif_release_notes">Webif</a>
</li>
</ul>
<!--#exec cmd="/mod/var/mongoose/include/modversion.jim" -->
<!--#exec cmd="/mod/webif/include/modversion.jim" -->
</div>
<!--#include virtual="/lib/footer.shtml" -->

9
var/mongoose/html/lib/footer.jim Normal file → Executable file
View File

@@ -1,12 +1,15 @@
#!/mod/bin/jimsh
puts {
<!-- Start of footer -->
<div class=footer>
}
set rendertime [expr [expr [clock milliseconds] - $renderstart] / 1000.0]
puts "<font class=footnote>Rendered in: $rendertime seconds</font>"
if {![catch {
set rendertime [expr [expr [clock milliseconds] - $renderstart] / 1000.0]
}]} {
puts "<font class=footnote>Rendered in: $rendertime seconds</font>"
}
puts {
</div>

View File

@@ -1,7 +1 @@
<!-- Start of footer -->
<div class=footer>
</div>
</div>
</body>
</html>
<!--#exec cmd="/mod/webif/html/lib/footer.jim" -->

8
var/mongoose/html/lib/header.jim Normal file → Executable file
View File

@@ -1,10 +1,12 @@
#!/mod/bin/jimsh
puts {
<!doctype html>
<html>
<head>
<title>
}
source /mod/var/mongoose/include/model.jim
source /mod/webif/include/model.jim
puts {
</title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
@@ -17,9 +19,9 @@ puts {
<body>
}
source /mod/var/mongoose/html/lib/topbar.jim
source /mod/webif/html/lib/topbar.jim
puts "<div id=restart_block>"
source /mod/var/mongoose/include/restart.jim
source /mod/webif/include/restart.jim
puts "</div>"
puts {

View File

@@ -1,23 +1 @@
<!doctype html>
<html>
<head>
<title><!--#exec cmd="/mod/var/mongoose/include/model.jim" --></title>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
<meta http-equiv="expires" value="Thu, 01 Jan 1970 00:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="shortcut icon" href=/img/favicon.ico />
<link type="text/css" href="/css/jquery-ui.css" rel="Stylesheet" />
<link href=/css/style.css rel=stylesheet type=text/css />
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery-ui.js"></script>
</head>
<body>
<!--#include virtual="/lib/topbar.shtml" -->
<div id=restart_block>
<!--#exec cmd="/mod/var/mongoose/include/restart.jim" -->
</div>
<div style="clear: both">
<!-- end of header -->
<!--#exec cmd="/mod/webif/html/lib/header.jim" -->

View File

@@ -6,21 +6,21 @@ puts {
<div class=middle>
<!-- Start include diskspace - above other items to work around IE feature.. -->
}
source /mod/var/mongoose/include/diskspace.jim
source /mod/webif/include/diskspace.jim
puts {
<!-- End include diskspace -->
<img border=0 src=/images/516_1_26_Freeview_Logo.png>
<span style="display: inline; font-size: 150%;
padding: 0 0 0 2em;">
}
source /mod/var/mongoose/include/model.jim
source /mod/webif/include/model.jim
puts {
</span>
</div>
<div class=right><img src=/images/154_1_00_WIN_MD116_3R.png></div>
</div>
}
source /mod/var/mongoose/include/toolbar.jim
source /mod/webif/include/toolbar.jim
puts {
<script type=text/javascript>
$('#topbar').hover(

View File

@@ -1,27 +0,0 @@
<!-- start of topbar -->
<div id=topbar class=container onclick="location.href='/'; return false;">
<div class=left><img src=/images/154_1_00_WIN_MD116_1L.png></div>
<div class=middle>
<!-- Start include diskspace - above other items to work around IE feature.. -->
<!--#exec cmd="/mod/var/mongoose/include/diskspace.jim" -->
<!-- End include diskspace -->
<img border=0 src=/images/516_1_26_Freeview_Logo.png>
<span style="font-size: 1.5em; padding: 0 0 0 2em;">
<!--#exec cmd="/mod/var/mongoose/include/model.jim" -->
</span>
</div>
<div class=right><img src=/images/154_1_00_WIN_MD116_3R.png></div>
</div>
<!--#exec cmd="/mod/var/mongoose/include/toolbar.jim" -->
<script type=text/javascript>
$('#topbar').hover(
function() {
$(this).css('cursor', 'pointer');
}, function() {
$(this).css('cursor', 'auto');
}
);
</script>
<!-- end of topbar -->

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class system.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class system.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class system.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class progressbar
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require rsv.class system.class
puts "Content-Type: text/html"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require altrow rsv.class progressbar epg.class system.class
puts "Content-Type: text/html"

View File

@@ -40,6 +40,6 @@ Results...
<th>Auto Startup</th>
<th>Status</th>
</tr>
<!--#exec cmd="/mod/var/mongoose/include/services.jim" -->
<!--#exec cmd="/mod/webif/include/services.jim" -->
</table>
<!--#include virtual="/lib/footer.shtml" -->

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require altrow rsv.class
puts {

View File

@@ -1,9 +1,9 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class
lassign [system diskspace] size used perc
lassign [system diskspace] size used perc free fperc
set file [format "%02d" [expr {$perc * 25 / 100 + 1}]]
# The HD model only has the USB images which are blue. I prefer the green
@@ -25,7 +25,8 @@ puts "
<span style=\"float: right\">
<br>
Total space: $size<br>
Used: $used ($perc%)
Used: $used ($perc%)<br>
Free: $free ($fperc%)
</span>
"

View File

@@ -1,7 +1,7 @@
#!/mod/bin/jimsh
package require cgi
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require epg.class spinner.class altrow epg_search totop
[spinner new {
@@ -15,15 +15,20 @@ require epg_popup
set start [clock milliseconds]
set now [clock seconds]
set then $($now + 14400)
set favgroup [[settings] channel_group]
if {$::qepg} {
set records [epg dbfetch dump -trange "$now:$then"]
if {$favgroup} {
set records [epg dbfetch dump \
-trange "$now:$then" -fav $favgroup]
} else {
set records [epg dbfetch dump -trange "$now:$then"]
}
} else {
require channelsort
set records [channelsort [epg fetch dump -trange "$now:$then"]]
}
set got [clock milliseconds]
set favlist [epg favlist]
puts {
<small><button id=switch>Switch to grid-style Now/Next</button></small>
@@ -43,9 +48,6 @@ puts {
set lcn 0
set num 0
foreach record $records {
if {$favlist != "" && [$record get service_id] ni $favlist} {
continue
}
set chnum [$record get channel_num]
if {$chnum == 0} { continue }

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require settings.class
if {[[settings] epg_style] eq "grid"} {

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require settings.class
proc menuitem {title icon link {width 217} {height 0} {extra ""}} {

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require plugin system.class
proc menuitem {title icon link {width 217} {height 0} {extra ""}} {

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class
puts "Humax [system model] Fox T2 ([system hostname])"

View File

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

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
puts {
<script type=text/javascript src=/js/packages.js></script>

View File

@@ -1,6 +1,6 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
require system.class
if {[file exists /tmp/.restartpending]} {

View File

@@ -1,7 +1,10 @@
#!/mod/bin/jimsh
source /mod/var/mongoose/lib/setup
require plugin settings.class system.class
source /mod/webif/lib/setup
require settings.class
if {[[settings] notoolbar] eq "0"} {
require plugin system.class
if {[[settings] epg_style] eq "grid"} {
set epglink "/cgi-bin/xepg.jim"
@@ -26,8 +29,10 @@ proc tb {icon txt link {height 50} {width 0}} {
}
puts {
<!-- start of toolbar -->
<div class=toolbarouter>
<div id=toolbar class=toolbar>
<div id=toolbar class=toolbar style="display: none">
}
tb "/images/323_1_10_Menu_Video.png" "Browse" "/cgi-bin/browse.jim"
@@ -48,8 +53,8 @@ puts {
var lastupd = 0;
if (window.location.pathname != '/' &&
window.location.pathname != '/index.shtml')
$('#topbar, #toolbar').hover(
function() {
{
var down = function() {
$('#toolbar').stop(true, true).delay(200).slideDown(400,
function() {
if (+new Date() - lastupd > 5000)
@@ -62,10 +67,12 @@ if (window.location.pathname != '/' &&
.load('/cgi-bin/status.jim');
}
});
}, function() {
};
var up = function() {
$('#toolbar').stop(true, true).delay(200).slideUp();
}
);
};
$('#topbar, #toolbar').hover(down, up);
}
$('span.toolbarcell').hover(
function() {
@@ -75,5 +82,9 @@ $('span.toolbarcell').hover(
});
</script>
<!-- end of toolbar -->
}
}

View File

@@ -1,4 +1,4 @@
source /mod/var/mongoose/lib/setup
source /mod/webif/lib/setup
if {![exists -proc class]} { package require oo }
if {![exists -proc sqlite3.open]} { package require sqlite3 }
@@ -334,13 +334,24 @@ proc {epg exec} {mode args} {
proc {epg dbfetch} {mode args} {
set records {}
set extra ""
set q "select distinct *,
set select "
select distinct *,
usLcn as channel_num,
substr(szSvcName, 2) as channel_name,
aucDefaultAuthority as channel_crid,
hSvc as channel_hsvc
"
set from "
from epg.epg e join TBL_SVC c
on e.service_id = c.usSvcId where 1 "
on e.service_id = c.usSvcId
"
set q "where 1 "
set sort "order by channel_num, start"
foreach arg $args {
if {[string first "-" $arg] == 0} {
set v $args($arg)
@@ -365,17 +376,23 @@ proc {epg dbfetch} {mode args} {
(e.start < $stt and e.end > $stt)
) "
}
-fav {
append from \
"join TBL_FAV f using(hSvc) "
append q "and f.eFavGroup = $v "
set sort "order by f.favIdx, start"
}
default { error "Invalid option, $arg" }
}
}
}
append q "order by channel_num, start"
#puts "QUERY -$q-"
set query "$select $from $q $sort"
#puts "QUERY -$query-"
set records {}
foreach rec [$::channeldb query $q] {
foreach rec [$::channeldb query $query] {
lappend records [epg new $rec]
}
return $records
@@ -401,6 +418,7 @@ proc {epg favlist} {} {
from TBL_SVC join TBL_FAV
using(hSvc)
where TBL_FAV.eFavGroup == $num
order by TBL_FAV.favIdx
"] { lindex $i end }]
}

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