PDO::FETCH_ASSOC, ]); if (php_sapi_name() == 'cli') { if ($argv[$argc - 1] == 'init-db') { $db->query(<<execute(); } return; } $response = []; if (isset($_POST['host'])) { $ip = filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP); if ($ip === false) { $response = [ 'success' => false, 'error' => 'Invalid IP.', ]; } else { $port = intval($_POST['port']); $name = $_POST['name']; $success = $db->prepare(<<execute([ 'id' => md5($name . time()), 'ip' => $ip, 'port' => $port, 'timestamp' => time(), 'name' => $name, ]); $response = [ 'success' => $success, ]; } } else if (isset($_GET['get-list'])) { $statement = $db->prepare(<<execute(); $results = $statement->fetchAll(); $list = []; foreach ($results as $row) { $list[] = [ 'id' => $row['id'], 'name' => $row['name'], ]; } $response = [ 'success' => true, 'data' => $list, ]; } else if (isset($_GET['join'])) { $id = $_GET['join']; $statement = $db->prepare(<<execute(['id' => $id]); $result = $statement->fetch(); if ($result === false) { $response = [ 'success' => false, 'error' => 'Game not found.' ]; http_response_code(404); } else { $response = [ 'success' => true, 'data' => [ 'ip' => $result['ip'], 'port' => $result['port'], ], ]; } } else if (isset($_POST['close'])) { $id = $_POST['close']; $success = $db->prepare(<<execute([ 'id' => $id, ]); $response = [ 'success' => $success, ]; } else { $response = [ 'success' => false, 'error' => 'Route not found.' ]; http_response_code(404); } header('Content-Type: application/json'); echo json_encode($response);