diff options
Diffstat (limited to 'server_status')
-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(); |