forked from hummypkg/sweeper
various bug fixes
This commit is contained in:
parent
173df12fa7
commit
b8833af068
@ -1,7 +1,7 @@
|
||||
Package: sweeper
|
||||
Priority: optional
|
||||
Section: misc
|
||||
Version: 2.0.8-4
|
||||
Version: 2.0.8-5
|
||||
Architecture: mipsel
|
||||
Maintainer: af123@hummypkg.org.uk
|
||||
Depends: webif(>=1.2.3-2)
|
||||
|
@ -87,6 +87,9 @@ proc ::sweeper::expand {ts str {orig ""}} {
|
||||
"%channel" [$ts get channel_name] \
|
||||
"%duration" [$ts duration] \
|
||||
\
|
||||
%epname [$ts episode_name] \
|
||||
%episode [$ts epstr] \
|
||||
\
|
||||
"%timestamp" $timestamp \
|
||||
"%yyyymmdd" $yyyymmdd \
|
||||
"%hhmm" $hhmm \
|
||||
@ -740,16 +743,11 @@ proc ::sweeper::clause {folder cmd arg ts} {
|
||||
|
||||
######################################################################
|
||||
|
||||
proc ::sweeper::runrule {ts rule} {
|
||||
proc ::sweeper::runrule {ts rule folder} {
|
||||
log "Processing \[$rule]" 2
|
||||
|
||||
if {[string index $rule 0] eq "#" || [llength $rule] < 2} { return 0 }
|
||||
|
||||
set folder 0
|
||||
if {[lindex $rule 0] eq "folder"} {
|
||||
set folder 1
|
||||
set rule [lrange $rule 1 end]
|
||||
}
|
||||
while {[llength $rule] > 1} {
|
||||
set rule [lassign $rule cmd arg]
|
||||
set ret [::sweeper::clause $folder $cmd $arg $ts]
|
||||
@ -777,7 +775,10 @@ proc ::sweeper::apply {dir cf} {
|
||||
set runfolder 0
|
||||
set nrules 0
|
||||
foreach rule $rules {
|
||||
if {[lindex $rule 0] eq "folder"} { incr runfolder }
|
||||
switch -- [lindex $rule 0] {
|
||||
folder -
|
||||
global { incr runfolder }
|
||||
}
|
||||
if {[string index $rule 0] ne "#" && [llength $rule] > 1} {
|
||||
incr nrules
|
||||
}
|
||||
@ -812,10 +813,13 @@ proc ::sweeper::apply {dir cf} {
|
||||
}
|
||||
|
||||
foreach rule $rules {
|
||||
if {[lindex $rule 0] eq "folder"} continue
|
||||
if {[string index $rule 0] eq "#" ||
|
||||
[llength $rule] < 2} continue
|
||||
if {[::sweeper::runrule $ts $rule]} break
|
||||
switch -- [lindex $rule 0] {
|
||||
folder continue
|
||||
global { set rule [lrange $rule 1 end] }
|
||||
}
|
||||
if {[::sweeper::runrule $ts $rule 0]} break
|
||||
}
|
||||
}
|
||||
|
||||
@ -840,14 +844,12 @@ proc ::sweeper::apply {dir cf} {
|
||||
}
|
||||
|
||||
set ts 0
|
||||
foreach de [readdir -nocomplain $entry] {
|
||||
foreach de [lsort -command [lambda {a b} {
|
||||
upvar entry e
|
||||
return $([file mtime "$e/$b"] - [file mtime "$e/$a"])
|
||||
}] [lsearch -glob -all -inline \
|
||||
[readdir -nocomplain $entry] {*.ts}]] {
|
||||
set dentry "$entry/$de"
|
||||
if {[file isdirectory $dentry]} {
|
||||
set ts 0
|
||||
break
|
||||
}
|
||||
if {$ts ne "0"} continue
|
||||
if {![string match {*.ts} $dentry]} continue
|
||||
|
||||
log " --- Considering $dentry" 2
|
||||
|
||||
@ -876,9 +878,13 @@ proc ::sweeper::apply {dir cf} {
|
||||
|
||||
foreach rule $rules {
|
||||
if {[string index $rule 0] eq "#" ||
|
||||
[llength $rule] < 2} continue
|
||||
if {[lindex $rule 0] ne "folder"} continue
|
||||
if {[::sweeper::runrule $ts $rule]} break
|
||||
[llength $rule] < 3} continue
|
||||
switch -- [lindex $rule 0] {
|
||||
folder -
|
||||
global { set rule [lrange $rule 1 end] }
|
||||
default continue
|
||||
}
|
||||
if {[::sweeper::runrule $ts $rule 1]} break
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -61,10 +61,10 @@ Add pre-defined ruleset:
|
||||
<fieldset class=rule>
|
||||
<legend class=comment>
|
||||
<span class=commentleft>
|
||||
<span class="ruleicon folder hidden">
|
||||
<span class="ruleicon folder global hidden">
|
||||
<img src=/images/711_1_09_Media_Folder.png>
|
||||
</span>
|
||||
<span class="ruleicon file hidden">
|
||||
<span class="ruleicon file global hidden">
|
||||
<img src=/img/Video_TS_New.png>
|
||||
</span>
|
||||
<span class=comment>Unnamed rule</span>
|
||||
@ -101,6 +101,10 @@ Add pre-defined ruleset:
|
||||
<div class="foldercomment hidden">
|
||||
For each sub-folder, inspect a recording within and:
|
||||
</div>
|
||||
<div class="globalcomment hidden">
|
||||
For each recording and sub-folder, inspect a recording
|
||||
within and:
|
||||
</div>
|
||||
<a href=# class=addcriterion>
|
||||
<img src=img/plus.png
|
||||
title="Add condition">
|
||||
@ -164,6 +168,8 @@ For pattern matching, the following special sequences may appear in the pattern:
|
||||
value='file' checked />Process Files
|
||||
<input name=newrule_type id=newrule_type_folder type=radio
|
||||
value='folder' />Process Folders
|
||||
<input name=newrule_type id=newrule_type_global type=radio
|
||||
value='global' />Process Files & Folders
|
||||
<br>
|
||||
Description:
|
||||
<input name=newrule_comment id=newrule_comment size=80 maxlength=255 />
|
||||
|
@ -96,11 +96,18 @@ proc rule {id rule} {
|
||||
}
|
||||
|
||||
if {$lcomment eq ""} { set lcomment "Unnamed rule" }
|
||||
if {[lindex $rule 0] eq "folder"} {
|
||||
set type "folder"
|
||||
set rule [lrange $rule 1 end]
|
||||
} else {
|
||||
set type "file"
|
||||
switch -- [lindex $rule 0] {
|
||||
folder {
|
||||
set type "folder"
|
||||
set rule [lrange $rule 1 end]
|
||||
}
|
||||
global {
|
||||
set type "global"
|
||||
set rule [lrange $rule 1 end]
|
||||
}
|
||||
default {
|
||||
set type "file"
|
||||
}
|
||||
}
|
||||
|
||||
if {$id > 1} { add_json ",\n" }
|
||||
@ -135,7 +142,7 @@ proc rule {id rule} {
|
||||
set arg "continue"
|
||||
}
|
||||
}
|
||||
lassign $arg cmd arg
|
||||
lassign "$arg" cmd arg
|
||||
if {$cmd eq "preserve"} { set cmd 'stop' }
|
||||
add_json " ],\n"
|
||||
add_json " \"action\": {\n"
|
||||
|
@ -467,6 +467,7 @@ var macros = {
|
||||
|
||||
var select_file_criteria = {};
|
||||
var select_folder_criteria = {};
|
||||
var select_global_criteria = {};
|
||||
$.each(schema.criterion, function(k, v) {
|
||||
if (v.deprecated)
|
||||
return;
|
||||
@ -478,15 +479,20 @@ $.each(schema.criterion, function(k, v) {
|
||||
case 'folder':
|
||||
select_folder_criteria[k] = v.desc;
|
||||
break;
|
||||
case 'global':
|
||||
select_global_criteria[k] = v.desc;
|
||||
break;
|
||||
case 'all':
|
||||
select_file_criteria[k] = v.desc;
|
||||
select_folder_criteria[k] = v.desc;
|
||||
select_global_criteria[k] = v.desc;
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
var select_file_actions = {};
|
||||
var select_folder_actions = {};
|
||||
var select_global_actions = {};
|
||||
$.each(schema.action, function(k, v) {
|
||||
if (v.deprecated)
|
||||
return;
|
||||
@ -498,9 +504,13 @@ $.each(schema.action, function(k, v) {
|
||||
case 'folder':
|
||||
select_folder_actions[k] = v.desc;
|
||||
break;
|
||||
case 'global':
|
||||
select_global_actions[k] = v.desc;
|
||||
break;
|
||||
case 'all':
|
||||
select_file_actions[k] = v.desc;
|
||||
select_folder_actions[k] = v.desc;
|
||||
select_global_actions[k] = v.desc;
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
@ -6,7 +6,8 @@ function quot(str)
|
||||
if (!str)
|
||||
return '""';
|
||||
|
||||
if (str.indexOf(" ") == -1 && str.indexOf('"') == -1)
|
||||
if (str.indexOf(" ") == -1 && str.indexOf('"') == -1
|
||||
&& str.indexOf("\\") == -1)
|
||||
return str;
|
||||
return '{' + str + '}';
|
||||
}
|
||||
@ -132,6 +133,8 @@ function ruleconf(rule)
|
||||
s += '## ';
|
||||
if (rule.attr('type') == 'folder')
|
||||
s += 'folder ';
|
||||
else if (rule.attr('type') == 'global')
|
||||
s += 'global ';
|
||||
|
||||
s += clauseconf(rule);
|
||||
|
||||
@ -318,13 +321,20 @@ function addrule(id, data)
|
||||
.removeClass('hidden');
|
||||
|
||||
rule.find('span.comment').html(data.name);
|
||||
if (data.type == 'folder')
|
||||
switch (data.type)
|
||||
{
|
||||
case 'global':
|
||||
rule.find('.commentleft > span.global').show();
|
||||
rule.find('.globalcomment').show();
|
||||
break;
|
||||
case 'folder':
|
||||
rule.find('.commentleft > span.folder').show();
|
||||
rule.find('.foldercomment').show();
|
||||
}
|
||||
else
|
||||
break;
|
||||
default:
|
||||
rule.find('.commentleft > span.file').show();
|
||||
break;
|
||||
}
|
||||
rule.attr('type', data.type);
|
||||
|
||||
var $c = rule.find('table.criteria');
|
||||
@ -725,10 +735,18 @@ function addcriterion(rule, target)
|
||||
{
|
||||
var type = rule.attr('type');
|
||||
|
||||
if (type == 'folder')
|
||||
switch (type)
|
||||
{
|
||||
case 'folder':
|
||||
options = select_folder_criteria;
|
||||
else
|
||||
break;
|
||||
case 'global':
|
||||
options = select_global_criteria;
|
||||
break;
|
||||
default:
|
||||
options = select_file_criteria;
|
||||
break;
|
||||
}
|
||||
|
||||
// Populate select box and reset form.
|
||||
$('#newcondition_cmd').empty();
|
||||
@ -862,10 +880,18 @@ $('#ruleset')
|
||||
var rule = $(this).closest('div.rule');
|
||||
var type = rule.attr('type');
|
||||
|
||||
if (type == 'folder')
|
||||
switch (type)
|
||||
{
|
||||
case 'folder':
|
||||
options = select_folder_actions;
|
||||
else
|
||||
break;
|
||||
case 'global':
|
||||
options = select_global_actions;
|
||||
break;
|
||||
default:
|
||||
options = select_file_actions;
|
||||
break;
|
||||
}
|
||||
|
||||
$('#edit_action_act').empty();
|
||||
$.each(options, function(k, v) {
|
||||
|
Loading…
Reference in New Issue
Block a user