Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Pobiera dane z pliku
- $file = json_decode(file_get_contents('stats.json'), true);
- // Porównuje czas z pliku, do konfiguracyjnych danych
- $need_ts = ((time() - $file['time']) > connect_ts_interval_sec) ? true : false;
- // Tworzy tablicę na statystyki
- $stats = array('admins' => 0, 'clients' => 0, 'real_clients' => 0);
- if($need_ts){
- // Łączy z serwerem TeamSpeak 3
- try{
- $ts = TeamSpeak3::factory("serverquery://".ts_query_username.":".ts_query_password."@".ts_query_ip.":".ts_query_port."/?server_port=".ts_server_port);
- }
- catch(Exception $e){
- // Przypisuje błąd do $e
- echo '<h1>Nie można połączyć się z serwerem, sprawdź poprawność danych konfiguracyjnych</h1>';
- // Wyświetla kod błędu oraz jego treść i kończy skrypt
- exit('Kod błędu: <b>'.$e->getCode().'</b> oraz treść błędu: <b>'.$e->getMessage().'</b>');
- }
- // Pobiera listę klientów
- $clients = $ts->clientList();
- // Pobiera listę kanałów
- $channels = $ts->channelList();
- // Dodaje wpis do tablicy z liczbą kanałów
- $stats['channels'] = count($channels);
- // Dodaje wpis do tablicy z aktualnym czasem
- $stats['time'] = time();
- // Pętla do liczenia klientów
- foreach($clients as $client){
- // Wszyscy klienci
- $stats['clients']++;
- // Pomija wybrane rangi
- if(empty(array_intersect(explode(',', ts_sgid_skip_count), explode(',', $client['client_servergroups'])))){
- $stats['real_clients']++;
- }
- // Szuka administratorów
- if(!empty(array_intersect(explode(',', ts_sgid_admins), explode(',', $client['client_servergroups'])))){
- $stats['admins']++;
- }
- }
- // Wrzuca do pliku potrzebne dane, kodując je w JSON
- file_put_contents('stats.json', json_encode($stats), LOCK_EX);
- }
- else{
- $stats = $file;
- }
Advertisement
Add Comment
Please, Sign In to add comment