aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server_status/server_status.pl32
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();