From: pk910 Date: Mon, 23 Jan 2012 20:38:10 +0000 (+0100) Subject: added stats command X-Git-Url: http://git.pk910.de/?p=ZNCAdmin.git;a=commitdiff_plain;h=d8a263cc8a2dda8ac9ac4932dc74af598a67d4a2 added stats command --- 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