diff options
Diffstat (limited to '')
| -rw-r--r-- | server_status/server_status.pl | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/server_status/server_status.pl b/server_status/server_status.pl new file mode 100644 index 0000000..0639991 --- /dev/null +++ b/server_status/server_status.pl @@ -0,0 +1,32 @@ +use Irssi; +use strict; + +my $server_status_count = ""; +my $timeout; + +Irssi::settings_add_int('misc', 'server_status_count_freq', 100000); + +sub server_status { +    Irssi::timeout_remove($timeout); +    my $connected_count = 0; +    my $unconnected_count = 0; + +    for my $server (Irssi::servers()) { +        if ($server->{'connected'}) { +            $connected_count++; +        } else { +            $unconnected_count++; +        } +    } + +    $server_status_count = $connected_count."/".$unconnected_count; + +    $timeout = Irssi::timeout_add_once(Irssi::settings_get_int('server_status_count_freq'), 'server_status' , undef); +} + +Irssi::expando_create('server_status_count', sub { +  return $server_status_count; +}, {}); + +$timeout = Irssi::timeout_add(Irssi::settings_get_int('server_status_count_freq'), 'server_status' , undef); +server_status(); | 
