Guest User

Untitled

a guest
Jul 24th, 2017
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. // Pobiera dane z pliku
  2. $file = json_decode(file_get_contents('stats.json'), true);
  3.  
  4. // Porównuje czas z pliku, do konfiguracyjnych danych
  5. $need_ts = ((time() - $file['time']) > connect_ts_interval_sec) ? true : false;
  6.  
  7. // Tworzy tablicę na statystyki
  8. $stats = array('admins' => 0, 'clients' => 0, 'real_clients' => 0);
  9.  
  10.  
  11. if($need_ts){
  12.  
  13. // Łączy z serwerem TeamSpeak 3
  14. try{
  15. $ts = TeamSpeak3::factory("serverquery://".ts_query_username.":".ts_query_password."@".ts_query_ip.":".ts_query_port."/?server_port=".ts_server_port);
  16. }
  17. catch(Exception $e){
  18. // Przypisuje błąd do $e
  19. echo '<h1>Nie można połączyć się z serwerem, sprawdź poprawność danych konfiguracyjnych</h1>';
  20. // Wyświetla kod błędu oraz jego treść i kończy skrypt
  21. exit('Kod błędu: <b>'.$e->getCode().'</b> oraz treść błędu: <b>'.$e->getMessage().'</b>');
  22. }
  23.  
  24. // Pobiera listę klientów
  25. $clients = $ts->clientList();
  26. // Pobiera listę kanałów
  27. $channels = $ts->channelList();
  28.  
  29. // Dodaje wpis do tablicy z liczbą kanałów
  30. $stats['channels'] = count($channels);
  31. // Dodaje wpis do tablicy z aktualnym czasem
  32. $stats['time'] = time();
  33.  
  34. // Pętla do liczenia klientów
  35. foreach($clients as $client){
  36.  
  37. // Wszyscy klienci
  38. $stats['clients']++;
  39.  
  40. // Pomija wybrane rangi
  41. if(empty(array_intersect(explode(',', ts_sgid_skip_count), explode(',', $client['client_servergroups'])))){
  42. $stats['real_clients']++;
  43. }
  44.  
  45. // Szuka administratorów
  46. if(!empty(array_intersect(explode(',', ts_sgid_admins), explode(',', $client['client_servergroups'])))){
  47. $stats['admins']++;
  48. }
  49. }
  50. // Wrzuca do pliku potrzebne dane, kodując je w JSON
  51. file_put_contents('stats.json', json_encode($stats), LOCK_EX);
  52. }
  53. else{
  54. $stats = $file;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment