summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOthmar Gsenger <otti@wirdorange.org>2011-01-15 05:21:19 +0000
committerOthmar Gsenger <otti@wirdorange.org>2011-01-15 05:21:19 +0000
commit4cecda2089b57842b54f40deb2145e1a3e06ec3a (patch)
treee90f81d562616294447c360aa28da5c53a73e7e7
parentwhatever (diff)
added completed mark
-rwxr-xr-xcancel.pl4
-rwxr-xr-xenqueue.pl4
-rwxr-xr-xgroups.pl9
-rw-r--r--local/db.pm11
-rw-r--r--local/user.pm7
-rwxr-xr-xmark_completed.pl8
-rwxr-xr-xmydl.pl5
-rwxr-xr-xpre_enqueue.pl12
-rwxr-xr-xremove.pl2
-rwxr-xr-xsearch.pl6
10 files changed, 53 insertions, 15 deletions
diff --git a/cancel.pl b/cancel.pl
index c3b7573..6e3bc78 100755
--- a/cancel.pl
+++ b/cancel.pl
@@ -23,7 +23,9 @@ foreach my $value ( @$row)
{
my $status = $cli->send_request('editqueue','GroupDelete',0,"",[$value->{LastID}->value]) or die "Can't connect to nzbget";
sleep 1;
- remove_tree('/srv/nzbget/done/'.$dl->category->name.'/'.$dl->download_id
+ remove_tree('/srv/nzbget/done/'.$dl->category->name.'/'.$dl->download_id);
+ $user->obj->quota_used($user->obj->quota_used - $dl->size);
+ $user->obj->update;
$dl->delete();
}
}
diff --git a/enqueue.pl b/enqueue.pl
index 2fbea0d..7faa226 100755
--- a/enqueue.pl
+++ b/enqueue.pl
@@ -4,10 +4,14 @@ use CGI qw(:standard);
use CGI::Carp 'fatalsToBrowser';
use local::db;
use local::nzbget;
+use utf8;
use local::user;
my $user = new local::user($ENV{REMOTE_USER});
my $nzbget = new local::nzbget;
+die "Kein name angegeben" if not param('name');
+
+die 'Kein freier Speicher' if $user->obj->quota_used>$user->obj->quoata;
my $cat = local::db::category->retrieve(name=>param('cat'));
die "Ungültige category" if not $cat;
diff --git a/groups.pl b/groups.pl
index 15291d2..cd7623c 100755
--- a/groups.pl
+++ b/groups.pl
@@ -6,6 +6,7 @@ use CGI::Carp 'fatalsToBrowser';
use local::nzbget;
use local::db;
use local::user;
+use utf8;
my $user = new local::user($ENV{REMOTE_USER});
use CGI::Ajax;
@@ -29,6 +30,7 @@ sub get_download_table
my $cli = new local::nzbget;
my $row = $cli->send_request('listgroups') or die "Can't connect to nzbget";
$html.= CGI::start_table();
+ $html.= Tr(th([qw/Kategorie Name Besitzer Größe(MB) Fortschritt Abbrechen/]));
foreach my $value ( @$row)
{
my ($download) = local::db::download->retrieve($value->{NZBNicename}->value) or die ' Error in groups';
@@ -39,10 +41,12 @@ sub get_download_table
{
$download->size($total);
$download->update();
+ $user->obj->quota_used($user->obj->quota_used+$total);
+ $user->obj->update();
}
my $cancel;
$cancel=a({href=>'/cgi-bin/nzbget/cancel.pl?id='.$value->{NZBNicename}->value},'Abbrechen') if ($download->owner->owner_id() eq $user->get_id());
- $html.= Tr(td([$download->category->name,$download->name,$download->owner->name,$percent.'%',$cancel]));
+ $html.= Tr(td([$download->category->name,$download->name,$download->owner->name,$total,$percent.'%',$cancel]));
#foreach my $key (keys %$value)
#{
# $html.= Tr(td([$key,$value->{$key}->value]));
@@ -64,8 +68,7 @@ sub Show_HTML
//--></script>
LALALA
;
- $html.= table({class=>'nohigh'},Tr(td['download speed', div({id=>'speed'},get_download_speed())]),Tr(td(['&nbsp;'])));
- $html.= table(Tr(th([qw/Kategorie Name Besitzer Fortschritt Abbrechen/])));
+ $html.= table({class=>'nohigh'},Tr(td['download speed &nbsp; '. span({id=>'speed'},get_download_speed())]),Tr(td(['&nbsp;'])));
$html.= div({id=>'dls'},get_download_table());
$html.= $menu->end_html();
diff --git a/local/db.pm b/local/db.pm
index 344b5a8..94c5941 100644
--- a/local/db.pm
+++ b/local/db.pm
@@ -5,9 +5,10 @@ local::db::dbi->connection('dbi:SQLite:/srv/nzbget/datenbank.sqlite', '', '');
package local::db::download;
use base 'local::db::dbi';
local::db::download->table('download');
-local::db::download->columns(All => qw/download_id owner size time category name description/);
+local::db::download->columns(All => qw/download_id owner size time category name description completed/);
local::db::download->has_a(owner => 'local::db::owner');
local::db::download->has_a(category => 'local::db::category');
+local::db::download->has_many(seen => 'local::db::seen');
package local::db::category;
use base 'local::db::dbi';
@@ -20,3 +21,11 @@ use base 'local::db::dbi';
local::db::owner->table('owner');
local::db::owner->columns(All => qw/owner_id name quoata quota_used/);
local::db::owner->has_many(download => 'local::db::download');
+local::db::owner->has_many(seen => 'local::db::seen');
+
+package local::db::seen;
+use base 'local::db::dbi';
+local::db::seen->table('seen');
+local::db::seen->columns(All => qw/seen_id download user/);
+local::db::seen->has_a(download => 'local::db::download');
+local::db::seen->has_a(user => 'local::db::owner');
diff --git a/local/user.pm b/local/user.pm
index 8e134a8..5b727ba 100644
--- a/local/user.pm
+++ b/local/user.pm
@@ -21,6 +21,13 @@ sub new
return $self;
}
+sub obj
+{
+ my $self = shift;
+ return local::db::owner->retrieve($self->{id});
+}
+
+
sub get_name
{
my $self = shift;
diff --git a/mark_completed.pl b/mark_completed.pl
new file mode 100755
index 0000000..f456011
--- /dev/null
+++ b/mark_completed.pl
@@ -0,0 +1,8 @@
+#!/usr/bin/perl
+use strict;
+use local::db;
+my $dl_id = $ARGV[0] or die "missing argument download id";
+my $dl = local::db::download->retrieve($dl_id) or die 'cannont find download';
+$dl->completed(1);
+$dl->update;
+exit 0;
diff --git a/mydl.pl b/mydl.pl
index d5ef969..f012743 100755
--- a/mydl.pl
+++ b/mydl.pl
@@ -13,15 +13,16 @@ print header;
use local::menu;
my $menu=new local::menu(%ENV);
print $menu->start_html('my downloads');
+print table({class=>'nohigh'},Tr(td({align=>'right'},['benutzter Speicherplatz &nbsp; '. $user->obj->quota_used().' / '.$user->obj->quoata().' MB']))) if (param('only_me'));
print CGI::start_table();
print Tr(th([qw/Kategorie Name Größe Löschen /]));
my @downloads;
if (param('only_me'))
{
- @downloads = local::db::download->search(owner=>$user->get_id(),{ order_by => 'time DESC'});
+ @downloads = local::db::download->search(owner=>$user->get_id(),completed=>1,{ order_by => 'time DESC'});
} else {
- @downloads = reverse local::db::download->retrieve_all();
+ @downloads = local::db::download->search(completed=>1,{ order_by => 'time DESC'});
}
foreach my $dl ( @downloads)
{
diff --git a/pre_enqueue.pl b/pre_enqueue.pl
index 7b3df63..fea581e 100755
--- a/pre_enqueue.pl
+++ b/pre_enqueue.pl
@@ -3,18 +3,20 @@ use strict;
use CGI qw(:standard);
use CGI::Carp 'fatalsToBrowser';
use local::db;
+use local::menu;
my @cat = local::db::category->retrieve_all();
die "Ungültige category" if not @cat;
print header;
-print start_html('nzbget pre_enqueue');
+my $menu = new local::menu(%ENV);
+print $menu->start_html('nzbget pre_enqueue');
print CGI::start_form(-action=>'/cgi-bin/nzbget/enqueue.pl');
-print table(
+print table({class=>'nohigh'},
Tr(td(param('title'))),
Tr(td(param('description'))),
),
-table(
+table({class=>'nohigh'},
Tr(td(['name',textfield('name').hidden('description',param('description')).hidden('url',param('url')).hidden('title',param('title'))])),
Tr(td(['category',
CGI::popup_menu(
@@ -22,7 +24,7 @@ table(
-values=>[0,map {$_->name()} @cat],
-labels => {0=>'---', map { ($_->category_id() => $_->name() ) } @cat}
)])),
- Tr(td([submit()])),
+ Tr(td(['&nbsp;',submit("Download starten")])),
);
print CGI::end_form;
-print end_html();
+print $menu->end_html();
diff --git a/remove.pl b/remove.pl
index 5c76462..3e62c08 100755
--- a/remove.pl
+++ b/remove.pl
@@ -13,6 +13,8 @@ my $del_id = param('id');
my ($dl) = local::db::download->retrieve($del_id) or die 'Error in cancel';
die "Not allowed" if not $dl->owner->owner_id() eq $user->get_id();
remove_tree('/srv/nzbget/done/'.$dl->category->name.'/'.$dl->download_id);
+$user->obj->quota_used($user->obj->quota_used - $dl->size);
+$user->obj->update;
$dl->delete();
print CGI::redirect('/cgi-bin/nzbget/mydl.pl?only_me=1');
diff --git a/search.pl b/search.pl
index aefec96..aad6747 100755
--- a/search.pl
+++ b/search.pl
@@ -16,9 +16,9 @@ print CGI::start_table();
print CGI::start_form(-action=>'/cgi-bin/nzbget/search.pl');
print
table({class=>'nohigh'},
- Tr(td(['Search',textfield('q'),])),
- Tr(td(['min Size',textfield('minsize')])),
- Tr(td(['max Size',textfield('maxsize').hidden('more',1)])),
+ Tr(td(['Search',textfield({size=>100,name=>'q'}),])),
+ Tr(td(['min Size',textfield({size=>5,name=>'minsize'}).' MB'])),
+ Tr(td(['max Size',textfield({size=>5, name=>'maxsize'}).' MB'.hidden('more',1)])),
Tr(td(['results',CGI::popup_menu(
-name => 'max',
-values => ['25','100','500'],