[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}
);
}
Files:
btinfo.pl
