]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
added server_status.pl, gives a count of connected/disconnected servers as an expando
authorterminaldweller <redacted>
Wed, 6 Dec 2023 04:29:57 +0000 (23:29 -0500)
committerterminaldweller <redacted>
Wed, 6 Dec 2023 04:29:57 +0000 (23:29 -0500)
scripts/server_status.pl [new file with mode: 0644]

diff --git a/scripts/server_status.pl b/scripts/server_status.pl
new file mode 100644 (file)
index 0000000..bd0d641
--- /dev/null
@@ -0,0 +1,43 @@
+use Irssi;
+use strict;
+use warnings;
+
+our $VERSION = "1.0.0";
+our %IRSSI = (
+    authors     => 'terminaldweller',
+    contact     => 'https://terminaldweller.com',
+    name        => 'server_status',
+    description => 'gives you the count of connected and unconnected servers as an expando',
+    license     => 'GPL3 or newer',
+    url         => 'https://github.com/irssi/scripts.irssi.org',
+);
+
+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();
git clone https://git.99rst.org/PROJECT