added stats command
[ZNCAdmin.git] / zncadmin.php
index 669fca5a00e73976a87bca76aa276309e819a232..4fffe0e22ca993503b5e095432da45b9e7819ea4 100644 (file)
@@ -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