diff options
Diffstat (limited to 'Matchmaking')
-rw-r--r-- | Matchmaking/Server/db | bin | 16384 -> 0 bytes | |||
-rw-r--r-- | Matchmaking/Server/index.php | 139 |
2 files changed, 0 insertions, 139 deletions
diff --git a/Matchmaking/Server/db b/Matchmaking/Server/db Binary files differdeleted file mode 100644 index 9e551a0..0000000 --- a/Matchmaking/Server/db +++ /dev/null diff --git a/Matchmaking/Server/index.php b/Matchmaking/Server/index.php deleted file mode 100644 index de7d5c0..0000000 --- a/Matchmaking/Server/index.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php - -/* - * Routes: - * /host ?host&port=$port&name=$name - * /get-list ?get-list - * /join ?join=$id - */ - -global $db; -$db = new PDO('sqlite:./db', options: [ - PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, -]); - -if (php_sapi_name() == 'cli') { - if ($argv[$argc - 1] == 'init-db') { - $db->query(<<<SQL - create table if not exists games ( - id text primary key, - ip text unique, - port integer, - timestamp integer, - name text - ); - SQL) - ->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(<<<SQL - insert into games (id, ip, port, timestamp, name) values (:id, :ip, :port, :timestamp, :name) - SQL) - ->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(<<<SQL - select id, name from games - SQL); - $statement->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(<<<SQL - select ip, port from games - where id = :id - SQL); - $statement->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(<<<SQL - delete from games where id = :id - SQL) - ->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); |