From d8a263cc8a2dda8ac9ac4932dc74af598a67d4a2 Mon Sep 17 00:00:00 2001 From: pk910 Date: Mon, 23 Jan 2012 21:38:10 +0100 Subject: [PATCH] added stats command --- INSTALL | 1 + zncadmin.php | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/INSTALL b/INSTALL index 6377b47..88e301c 100644 --- a/INSTALL +++ b/INSTALL @@ -30,6 +30,7 @@ ZNCAdmin is made to be used as external scripts from NeonServV5. +bind znc_whois NeonServ.extscript php scripts/zncadmin.php search $1 $2- %1+ +bind znc_seen NeonServ.extscript php scripts/zncadmin.php seen $1 $2 %1+ +bind znc_simul NeonServ.extscript php scripts/zncadmin.php simul $1 $2 $3- %1+ + +bind znc_stats NeonServ.extscript php scripts/zncadmin.php stats $1 %1+ You may also bind the "admin commands" (override the protected option) +bind znc_admin_add NeonServ.extscript php scripts/zncadmin.php force add $1 $2 %1+ diff --git a/zncadmin.php b/zncadmin.php index 669fca5..4fffe0e 100644 --- a/zncadmin.php +++ b/zncadmin.php @@ -56,6 +56,9 @@ switch(strtolower($argv[1])) { case "simul": zncadmin_simul(); break; + case "stats": + zncadmin_stats(); + break; default: error("invalid subcommand '".$argv[1]."'"); break; @@ -456,4 +459,33 @@ function zncadmin_simul() { } } +//SUBCOMMAND: stats +function zncadmin_stats() { + global $argv, $zncservers; + $table = new Table(5); + $table->add("Server", "Port / SSL Port", "Total ZNC's", "Connected (IRC)", "Online (User)"); + $count = 0; + foreach($zncservers as $zncserver) { + $total = 0; + $connected = 0; + $online = 0; + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); + foreach($zncserver['conn']->getUserList() as $user) { + if($user['server'] != "-N/A-") $connected++; + if($user['clients'] > 0) $online++; + $total++; + } + $table->add($zncserver['name'], $zncserver['port'].($zncserver['sslport'] ? "/".$zncserver['sslport'] : ""), $total.($zncserver['maxznc'] ? "/".$zncserver['maxznc'] : ""), $connected, $online); + $count++; + } + if($count) { + foreach($table->end() as $line) { + echo$line."\n"; + } + } else { + echo "No Servers configured...\n"; + } +} + ?> \ No newline at end of file -- 2.20.1