refactor download_list
authorChristian Garbs <mitch@cgarbs.de>
Sun, 28 Dec 2008 11:28:22 +0000 (12:28 +0100)
committerRalf Ertzinger <sun@lain.camperquake.de>
Sun, 28 Dec 2008 21:21:42 +0000 (22:21 +0100)
keep RPC stuff out of main

xmlrtorrent.pl
xmlrtorrent.pm

index 32d3b13..7d9e290 100644 (file)
@@ -121,35 +121,6 @@ sub write_debug {
     }
 }
 
-# This is shamelessly stolen from pythons urlgrabber
-sub format_number {
-    my $number = shift;
-    my $SI = shift || 0;
-    my @symbols = ('', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');
-    my $step = $SI?1000:1024;
-    my $thresh = 999;
-    my $depth = 0;
-    my $max_depth = $#symbols;
-    my $format;
-
-    while (($number > $thresh) and ($depth < $max_depth)) {
-        $depth += 1;
-        $number /= $step;
-    }
-
-    if ($number =~ /^[+-]?\d+$/) {
-        # Integer.
-        $format = '%i%s';
-    } elsif ($number < 9.95) {
-        $format = '%.1f%s';
-    } else {
-        $format = '%.0f%s';
-    }
-    return sprintf($format, $number, $symbols[$depth]);
-}
-
-
-
 sub check_for_link {
     my ($signal,$parammessage,$paramchannel,$paramnick,$paramserver) = @_;
     my $server = $signal->[$paramserver];
@@ -255,13 +226,12 @@ sub cmd_remote {
         } else {
             foreach (@{$rqueue}) {
                 write_irssi('  %s%s: %sB/%sB done (%d%%), %sB/s up, %sB/s down',
-                        $_->[5]->value()?'*':' ',
-                        $_->[0]->value(),
-                        format_number($_->[2]->value()),
-                        format_number($_->[1]->value()),
-                        ($_->[2]->value()*100)/$_->[1]->value(),
-                        format_number($_->[3]->value()),
-                        format_number($_->[4]->value()));
+                           $_->{'ACTIVE'}?'*':' ',
+                           $_->{'NAME'},
+                           $_->{'BYTES_DONE'},
+                           $_->{'SIZE_BYTES'},
+                           $_->{'UP_RATE'},
+                           $_->{'DOWN_RATE'});
             }
         }
     }
index d50d5ac..12ec405 100644 (file)
@@ -10,6 +10,35 @@ sub new {
     return bless($self, $class);
 }
 
+# This is shamelessly stolen from pythons urlgrabber
+sub _format_number {
+    my $number = shift;
+    my $SI = shift || 0;
+    my @symbols = ('', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y');
+    my $step = $SI?1000:1024;
+    my $thresh = 999;
+    my $depth = 0;
+    my $max_depth = $#symbols;
+    my $format;
+
+    while (($number > $thresh) and ($depth < $max_depth)) {
+        $depth += 1;
+        $number /= $step;
+    }
+
+    if ($number =~ /^[+-]?\d+$/) {
+        # Integer.
+        $format = '%i%s';
+    } elsif ($number < 9.95) {
+        $format = '%.1f%s';
+    } else {
+        $format = '%.0f%s';
+    }
+    return sprintf($format, $number, $symbols[$depth]);
+}
+
+
+
 sub load_start {
     my $self = shift;
     my $talker = shift;
@@ -52,7 +81,20 @@ sub download_list {
         return undef;
     }
 
-    return $res->value();
+    my @ret = ();
+    foreach (@{$res->value()}) {
+       push @ret,
+       {
+           'NAME'       => $_->[0]->value(),
+           'SIZE_BYTES' => _format_number($_->[1]->value()),
+           'BYTES_DONE' => _format_number($_->[2]->value()),
+           'UP_RATE'    => _format_number($_->[3]->value()),
+           'DOWN_RATES' => _format_number($_->[4]->value()),
+           'ACTIVE'     => $_->[5]->value(),
+       };
+    }
+
+    return \@ret;
 }
 
 sub errstr {