api.php 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. if(!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
  4. class api
  5. {
  6. public function data($id)
  7. {
  8. global $sql, $cfg;
  9. $sql->query('SELECT `unit`, `tarif`, `address`, `game`, `slots_start`, `online`, `players`, `status`, `name`, `map`, `pack`, `fps`, `tickrate`, `ram`, `time`, `date`, `overdue` FROM `servers` WHERE `id`="'.$id.'" LIMIT 1');
  10. if(!$sql->num())
  11. return array('e' => 'сервер не найден');
  12. $server = $sql->get();
  13. $sql->query('SELECT `name` FROM `units` WHERE `id`="'.$server['unit'].'" LIMIT 1');
  14. if(!$sql->num())
  15. return array('e' => 'локация не найдена');
  16. $unit = $sql->get();
  17. $sql->query('SELECT `name`, `packs` FROM `tarifs` WHERE `id`="'.$server['tarif'].'" LIMIT 1');
  18. if(!$sql->num())
  19. return array('e' => 'тариф не найден');
  20. $tarif = $sql->get();
  21. $packs = sys::b64djs($tarif['packs']);
  22. $time_end = $server['status'] == 'overdue' ? 'Удаление через: '.sys::date('min', $server['overdue']+$cfg['server_delete']*86400) : 'Осталось: '.sys::date('min', $server['time']);
  23. return array(
  24. 'id' => $id,
  25. 'address' => $server['address'],
  26. 'unit' => $unit['name'],
  27. 'tarif' => games::info_tarif($server['game'], $tarif['name'], array('fps' => $server['fps'], 'tickrate' => $server['tickrate'], 'ram' => $server['ram'])),
  28. 'game' => $server['game'],
  29. 'name' => $server['name'],
  30. 'slots' => $server['slots_start'],
  31. 'online' => $server['online'],
  32. 'players' => $server['players'],
  33. 'status' => sys::status($server['status'], $server['game'], $server['map']),
  34. 'img' => sys::status($server['status'], $server['game'], $server['map'], 'img'),
  35. 'time_end' => $time_end,
  36. 'time' => sys::today($server['time']),
  37. 'date' => sys::today($server['date']),
  38. 'pack' => $packs[$server['pack']]
  39. );
  40. }
  41. public function load($id)
  42. {
  43. global $sql, $cfg;
  44. $sql->query('SELECT `online`, `slots_start`, `ram_use`, `cpu_use`, `hdd_use` FROM `servers` WHERE `id`="'.$id.'" LIMIT 1');
  45. if(!$sql->num())
  46. return array('e' => 'сервер не найден');
  47. $server = $sql->get();
  48. $online = 100/$server['slots_start']*$server['online'];
  49. $online = $online > 100 ? 100: $online;
  50. return array(
  51. 'id' => $id,
  52. 'cpu' => $server['cpu_use'],
  53. 'ram' => $server['ram_use'],
  54. 'hdd' => $server['hdd_use'],
  55. 'onl' => $online
  56. );
  57. }
  58. public function console($id, $cmd)
  59. {
  60. global $sql, $cfg;
  61. $aGames = array('cs', 'css', 'cssold', 'csgo', 'mc', 'mta');
  62. $sql->query('SELECT `game` FROM `servers` WHERE `id`="'.$id.'" LIMIT 1');
  63. if(!$sql->num())
  64. return 'сервер не найден';
  65. $server = $sql->get();
  66. if(!in_array($server['game'], $aGames))
  67. return 'Игра не поддерживает команды';
  68. $go = true;
  69. $_POST['command'] = isset($cmd{0}) ? urldecode($cmd) : '';
  70. include(SEC.'servers/'.$server['game'].'/console.php');
  71. }
  72. }
  73. ?>