46 lines
1.3 KiB
PHP
46 lines
1.3 KiB
PHP
<?php
|
|
header("Content-type:application/json;charset=utf-8");
|
|
|
|
if (!isset($_GET["action"]))
|
|
exit("null");
|
|
$action = $_GET["action"];
|
|
|
|
$db = new SQLite3(".fo76-dumps-ids.db", SQLITE3_OPEN_READONLY);
|
|
switch ($action) {
|
|
case "list-signatures":
|
|
$results = $db->query("SELECT DISTINCT Signature FROM IDs ORDER BY Signature;");
|
|
|
|
$signatures = [];
|
|
while ($row = $results->fetchArray())
|
|
array_push($signatures, $row["Signature"]);
|
|
|
|
print(json_encode($signatures, JSON_PRETTY_PRINT));
|
|
break;
|
|
case "get-random":
|
|
if (!isset($_GET["signatures"])) {
|
|
print("null");
|
|
break;
|
|
}
|
|
if (empty($_GET["signatures"])) {
|
|
print("null");
|
|
break;
|
|
}
|
|
$signatures = $_GET["signatures"];
|
|
|
|
$signatures = explode(",", $signatures);
|
|
$in_params = implode(",", array_fill(0, count($signatures), "?"));
|
|
|
|
$stmt = $db->prepare("SELECT * FROM IDs WHERE Signature IN ({$in_params}) ORDER BY RANDOM() LIMIT 1;");
|
|
foreach ($signatures as $i => $signature)
|
|
$stmt->bindValue($i + 1, $signature);
|
|
$results = $stmt->execute();
|
|
|
|
while ($row = $results->fetchArray(SQLITE3_ASSOC))
|
|
print(json_encode($row, JSON_PRETTY_PRINT));
|
|
break;
|
|
default:
|
|
print("null");
|
|
break;
|
|
}
|
|
$db->close();
|