— |
#!/usr/bin/perl
print ( "usage: $0 [adc|dchub://]host[:port] [bot_nick] [share_delim]\n" ), exit if ! $ARGV [0]; $ARGV [0] =~ m|^(?:\w+\://)?(.+?)(?:\:(\d+))?$|;
my $dc = Net::DirectConnect->new(
'host' => $ARGV [0],
'Nick' => ( $ARGV [1] or 'dcpppCnt' ),
auto_GetINFO => 1,
);
my ( $share ) = 0;
$dc ->wait_connect();
$dc ->work(5);
if ( $dc ->{nmdc} ) { $share += $dc ->{ 'NickList' }{ $_ }{ 'sharesize' } for keys %{ $dc ->{ 'NickList' } }; }
else { $share += $dc ->{ 'peers' }{ $_ }{INF}{ 'SS' } for keys %{ $dc ->{ 'peers' } }; }
$share /= $ARGV [2] if $ARGV [2];
print ( ( scalar keys %{ $dc ->{ 'NickList' } } or scalar keys %{ $dc ->{ 'peers' } } or 0 ), "\n$share\n$ARGV[0]\nz\n" );
|