diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-11-03 14:10:07 +0100 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-11-03 14:10:07 +0100 |
commit | 84365b6f901a9c0251a9f724a8d9f81a3787e97d (patch) | |
tree | 401e2bf99e6573d1d069f5044e7448067cdfb384 /Matchmaking/Server/index.php | |
parent | a43499efa6c228cea3633f9661f3ff09127bd82d (diff) |
next commit
Diffstat (limited to 'Matchmaking/Server/index.php')
-rw-r--r-- | Matchmaking/Server/index.php | 139 |
1 files changed, 0 insertions, 139 deletions
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); |