mike.mg2.org
the rants of me... mikey g
[+ all]
[Bad Code Snippits] btinfo.pl - stat and list for btcli by Michael @ 07/29/07 03:47:26 PM

#!/usr/bin/env perl

my @btstat = `btcli stat -i`;
my @btlist = `btcli list`;

my $data = {};

foreach my $line (@btlist) {
    chomp($line);
    next if $line =~ /^NAME.*RATIO$/;
    $line =~ /^(.{1,40})\s*(.+)$/;
    my $name = $1;
    my ( $num, $state, $have, $size, $ratio ) = split( /\s+/, $2 );

    $name =~ s/\s+$//g;

    $data->{$num}->{state} = $state;
    $data->{$num}->{name}  = $name;
    $data->{$num}->{have}  = $have;
    $data->{$num}->{size}  = $size;
    $data->{$num}->{ratio} = $ratio;
}

foreach my $line (@btstat) {
    chomp($line);
    next if $line =~ /^\s*NUM.*AVAIL$/;

    $line =~ /^(.{1,4})\s*(.+)$/;
    my $num = $1;
    my (
        $state,         $have,        $downloaded,
        $download_rate, $uploaded,    $upload_rate,
        $ratio,         $connections, $avail
    ) = split( /\s+/, $2 );

    $num =~ s/\s+//g;

    next if $num eq '';

    $data->{$num}->{have}          = $have;
    $data->{$num}->{downloaded}    = $downloaded;
    $data->{$num}->{download_rate} = $download_rate;
    $data->{$num}->{uploaded}      = $uploaded;
    $data->{$num}->{upload_rate}   = $upload_rate;
    $data->{$num}->{connections}   = $connections;
    $data->{$num}->{available}     = $avail;
}

printf( "%4s %-20s %7s %9s %7s %9s %6s %4s %6s\n",
    qw/NUM NAME DLOAD RTDWN ULOAD RTUP RATIO CONN AVAIL/ );

foreach
  my $key ( sort { $data->{$b}->{upload_rate} <=> $data->{$a}->{upload_rate} }
    keys %$data )
{
    printf(
        "%4s %-20s %7s %9s %7s %9s %6s %4s %6s\n",
        $key,                        substr( $data->{$key}->{name}, 0, 20 ),
        $data->{$key}->{downloaded}, $data->{$key}->{download_rate},
        $data->{$key}->{uploaded},   $data->{$key}->{upload_rate},
        $data->{$key}->{ratio},      $data->{$key}->{connections},
        $data->{$key}->{available}
    );
}


Name:   Url:
Subject:
C:
Files: btinfo.pl

back to the main page