X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=zncadmin.php;h=28fce11803c4dadf58844750b95331b2a535284d;hb=refs%2Fheads%2Fdev;hp=3ca2fa8ff579306fbd20e08ef5f8231d6d51eb2e;hpb=32b656ead6ec6b4c56eebfe3ccaaa65aed957b2c;p=ZNCAdmin.git diff --git a/zncadmin.php b/zncadmin.php index 3ca2fa8..28fce11 100644 --- a/zncadmin.php +++ b/zncadmin.php @@ -1,19 +1,19 @@ . + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ error_reporting(E_ALL & ~E_NOTICE); @@ -47,7 +47,7 @@ switch(strtolower($argv[1])) { case "search": zncadmin_search(); break; - case "seen": + case "seen": zncadmin_seen(); break; case "resetpass": @@ -77,7 +77,7 @@ function preg_prepare($string,$wildcards = true,$pregstart = "#") { foreach($in as $item) { $out[] = "\\".$item; } - if($wildcards) { + if($wildcards) { array_push($in,"*"); array_push($out,"(.*)"); } @@ -159,10 +159,10 @@ function zncadmin_search() { } $mask = preg_prepare($mask); $table = new Table(5); - $table->add("Server", "User", "Clients", "Server"); + $table->add("Server", "User", "Clients", "Server", ""); $count = 0; foreach($zncservers as $zncserver) { - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { $skip = false; @@ -201,7 +201,7 @@ function zncadmin_search() { $skip = (preg_match("#^".preg_prepare($flagval)."$#i", $zncserver['name']) != $positive); break; default: - + break; } if($skip) @@ -209,7 +209,13 @@ function zncadmin_search() { } if($skip) continue; if(preg_match("#^".$mask."$#i", $user['user'])) { - $table->add($zncserver['name'], $user['user'], $user['clients'], $user['server']); + $extra = ""; + if(isset($user['nick'])) { + if($extra != "") + $extra .= ", "; + $extra .= "Nick: ".$user['nick']; + } + $table->add($zncserver['name'], $user['user'], $user['clients'], $user['server'], $extra); $count++; } } @@ -227,13 +233,13 @@ function zncadmin_search() { //SUBCOMMAND: search function zncadmin_seen() { global $argv, $zncservers; - $time = $argv[2]; - $over_time = true; - if($time[0] == '>' || $time[0] == '<') { - if($time[0] == '<') $over_time = false; - $time = substr($time, 1); - } - $time = time() - str2time($time); + $time = $argv[2]; + $over_time = true; + if($time[0] == '>' || $time[0] == '<') { + if($time[0] == '<') $over_time = false; + $time = substr($time, 1); + } + $time = time() - str2time($time); $mask = $argv[3]; if(!$time) { error("missing time parameter"); @@ -247,7 +253,7 @@ function zncadmin_seen() { $table->add("Server", "User", "Seen", "Info"); $found = false; foreach($zncservers as $zncserver) { - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getSeenList() as $user) { if(preg_match("#^".$mask."$#i", $user['user']) && (($over_time && $user['seen_unix'] < $time) || (!$over_time && $user['seen_unix'] > $time))) { @@ -277,7 +283,7 @@ function zncadmin_del() { foreach($zncservers as $zncserver) { if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue; if($username == strtolower($zncserver['auser'])) continue; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { if(strtolower($user['user']) == $username) { @@ -320,7 +326,7 @@ function zncadmin_add() { error("Access denied\n"); return; } - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); $zncserver['users'] = $zncserver['conn']->getUserList(); $existing = false; @@ -363,7 +369,7 @@ function zncadmin_add() { echo " Server Host: ".$addserv['public']." Port: ".$addserv['port']." SSL Port: ".$addserv['sslport']."\n"; echo " Password: ".$password."\n"; echo "[mIRC]\n"; - echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g ."$add_settings['mirccmds']['groupname']." -w ".$argv[2].":".$password." -d KryptonZNC\n"; + echo " /server -a ".$addserv['public']." -p ".$addserv['port']." -g ".$add_settings['mirccmds']['groupname']." -w ".$argv[2].":".$password." -d ".$add_settings['mirccmds']['groupname']."\n"; foreach($add_settings['mirccmds']['hosts'] AS $host) { echo " /AS addmask *@*.".$host."\n"; } @@ -388,7 +394,7 @@ function zncadmin_resetpass() { foreach($zncservers as $zncserver) { if($argv[3] && (strtolower($argv[3]) != strtolower($zncserver['name']))) continue; if($username == strtolower($zncserver['auser'])) continue; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { if(strtolower($user['user']) == $username) { @@ -446,7 +452,7 @@ function zncadmin_simul() { foreach($zncservers as $zncserver) { if($server && (strtolower($server) != strtolower($zncserver['name']))) continue; if($username == strtolower($zncserver['auser'])) continue; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { if(strtolower($user['user']) == $username) { @@ -489,7 +495,7 @@ function zncadmin_block() { foreach($zncservers as $zncserver) { if($server && (strtolower($server) != strtolower($zncserver['name']))) continue; if($username == strtolower($zncserver['auser'])) continue; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { if(strtolower($user['user']) == $username) { @@ -532,7 +538,7 @@ function zncadmin_unblock() { foreach($zncservers as $zncserver) { if($server && (strtolower($server) != strtolower($zncserver['name']))) continue; if($username == strtolower($zncserver['auser'])) continue; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); foreach($zncserver['conn']->getUserList() as $user) { if(strtolower($user['user']) == $username) { @@ -564,22 +570,36 @@ function zncadmin_unblock() { //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)"); + global $argv, $zncservers, $force; + $server = $argv[2]; + $table = new Table(6); + $table->add("Server", "Port / SSL Port", "Total ZNC's", "Connected (IRC)", "Online (User)", "Protected?"); $count = 0; foreach($zncservers as $zncserver) { + if($server > 0 && $zncserver['name'] != $server) continue; + if($server > 0 && $zncserver['name'] == $server && $zncserver['protected'] === true && !$force) { + error("Access denied\n"); + return; + } elseif($server > 0 && $zncserver['name'] == $server && (($zncserver['protected'] === true && $force) || $zncserver['protected'] === false)) { + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); + $zncserver['conn']->login($zncserver['auser'], $zncserver['apass']); + $trafficStats = $zncserver['conn']->getTrafficStats(); + } else { + echo "No Servers configured...\n"; + return; + } + $total = 0; $connected = 0; $online = 0; - $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port']); + $zncserver['conn'] = new ZNCServer($zncserver['host'], $zncserver['port'], (isset($zncserver['version']) ? $zncserver['version'] : NULL)); $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); + $table->add($zncserver['name'], $zncserver['port'].($zncserver['sslport'] ? "/".$zncserver['sslport'] : ""), $total.($zncserver['maxznc'] ? "/".$zncserver['maxznc'] : ""), $connected, $online, ($zncserver['protected'] === true ? "X" : "")); $count++; } if($count) {