summaryrefslogtreecommitdiff
path: root/groups.pl
diff options
context:
space:
mode:
Diffstat (limited to 'groups.pl')
-rwxr-xr-xgroups.pl96
1 files changed, 61 insertions, 35 deletions
diff --git a/groups.pl b/groups.pl
index f810659..cf5a029 100755
--- a/groups.pl
+++ b/groups.pl
@@ -1,45 +1,71 @@
#!/usr/bin/perl
+
use strict;
use CGI qw(:standard);
use CGI::Carp 'fatalsToBrowser';
use local::nzbget;
use local::db;
-print header;
-print start_html('nzbget groups');
-
-my $cli = new local::nzbget;
-print <<LALALA
-<script type="text/javascript" language="JavaScript"><!--
- window.setTimeout('document.location.reload()', 10000);
- //--></script>
-LALALA
-;
-print hr();
-print CGI::start_table();
-my $status = $cli->send_request('status') or die "Can't connect to nubget";
-#print Tr(td['download speed', 'cur', int($status->{DownloadRate}->value/(1024*1024)).'MB/s','average',int($status->{AverageDownloadRate}->value/(1024*1024)).'MB/s']);
-print Tr(td['download speed', int($status->{DownloadRate}->value/(1024*1024)).'MB/s']);
-print CGI::end_table();
-print hr();
-
-my $row = $cli->send_request('listgroups') or die "Can't connect to nubget";
-print CGI::start_table();
-foreach my $value ( @$row)
+
+use CGI::Ajax;
+
+my $cgi = new CGI;
+my $pjx = new CGI::Ajax( 'get_download_speed' => \&get_download_speed,
+ 'get_download_table' => \&get_download_table
+ );
+print $pjx->build_html( $cgi, \&Show_HTML);
+
+sub get_download_speed
{
- my ($download) = local::db::download->retrieve($value->{NZBNicename}->value) or die ' Error in groups';
- my $remaining=$value->{RemainingSizeMB}->value;
- my $total=$value->{FileSizeMB}->value;
- my $percent = int(100-100*$remaining/$total);
- $download->size($total);
- $download->update();
- print Tr(td([$download->category->name,$download->name,$download->owner->name,$percent.'%']));
- #foreach my $key (keys %$value)
- #{
- # print Tr(td([$key,$value->{$key}->value]));
- #}
+ my $cli = new local::nzbget;
+ my $status = $cli->send_request('status') or die "Can't connect to nubget";
+ return int($status->{DownloadRate}->value/(1024*1024)).'MB/s';
}
-;
-print CGI::end_table();
-print end_html;
+sub get_download_table
+{
+ my $html;
+ my $cli = new local::nzbget;
+ my $row = $cli->send_request('listgroups') or die "Can't connect to nubget";
+ foreach my $value ( @$row)
+ {
+ my ($download) = local::db::download->retrieve($value->{NZBNicename}->value) or die ' Error in groups';
+ my $remaining=$value->{RemainingSizeMB}->value;
+ my $total=$value->{FileSizeMB}->value;
+ my $percent = int(100-100*$remaining/$total);
+ $download->size($total);
+ $download->update();
+ $html.= Tr(td([$download->category->name,$download->name,$download->owner->name,$percent.'%']));
+ #foreach my $key (keys %$value)
+ #{
+ # $html.= Tr(td([$key,$value->{$key}->value]));
+ #}
+ }
+ return $html;
+}
+sub Show_HTML
+{
+ use local::menu;
+ my $menu= new local::menu(%ENV);
+ my $html= $menu->start_html('nzbget status');
+
+ $html.= <<LALALA
+ <script type="text/javascript" language="JavaScript"><!--
+ window.setInterval("get_download_speed( [], ['speed'] );", 2000);
+ window.setInterval("get_download_table( [], ['dltable'] );", 2000);
+ //--></script>
+LALALA
+ ;
+ $html.= hr();
+ $html.= CGI::start_table();
+ $html.= Tr(td['download speed', div({id=>'speed'},get_download_speed())]);
+ $html.= CGI::end_table();
+ $html.= hr();
+
+ $html.= CGI::start_table(id=>'dltable');
+ $html.= get_download_table();
+ $html.= CGI::end_table();
+
+ $html.= $menu->end_html();
+ return $html
+}