diff options
Diffstat (limited to 'pluralkit')
-rw-r--r-- | pluralkit/index.php | 32 | ||||
-rw-r--r-- | pluralkit/refresh/index.php | 51 |
2 files changed, 83 insertions, 0 deletions
diff --git a/pluralkit/index.php b/pluralkit/index.php new file mode 100644 index 0000000..1bcf53a --- /dev/null +++ b/pluralkit/index.php @@ -0,0 +1,32 @@ +<?php + +$user = $_GET['user'] ?? null; +$inputJSON = file_get_contents('php://input'); +$input = json_decode($inputJSON, true); +$data = json_decode(file_get_contents("../data/fronters.json"), true); + +if ($user === null) { + header("HTTP/1.1 500 Internal Server Error") and die(); +} + +if (!in_array($user, array_keys($data))) { + header("HTTP/1.1 404 Not Found") and die(); +} + +if ($input["signing_token"] !== $data[$user]["token"]) { + header("HTTP/1.1 401 Unauthorized") and die(); +} + +if ($input["type"] === "CREATE_SWITCH" || $input["type"] === "UPDATE_SWITCH" || $input["type"] === "DELETE_SWITCH") { + $data[$user]["system"] = $input["system_id"]; + if (isset($input["data"]) && isset($input["data"]["members"])) { + $data[$user]["fronters"] = $input["data"]["members"]; + } else { + sleep(rand(1, 3)); + $data[$user]["fronters"] = array_map(function ($i) { + return $i['uuid']; + }, json_decode(file_get_contents("https://api.pluralkit.me/v2/systems/$input[system_id]/fronters"), true)["members"]); + } +} + +file_put_contents("../data/fronters.json", json_encode($data, JSON_PRETTY_PRINT));
\ No newline at end of file diff --git a/pluralkit/refresh/index.php b/pluralkit/refresh/index.php new file mode 100644 index 0000000..857c8a2 --- /dev/null +++ b/pluralkit/refresh/index.php @@ -0,0 +1,51 @@ +<?php + +if (php_sapi_name() !== "cli") die(); +$data = json_decode(file_get_contents("../../data/pluralkit.json"), true); + +foreach ($data as $name => $info) { + if (json_decode(file_get_contents("https://api.pluralkit.me/v2/systems/exmpl"), true)["uuid"] !== "3be61c07-9a44-43a5-8d06-9d1253f2a830") die(); + + $data[$name] = [ + "id" => $info["id"], + ]; + + sleep(rand(1, 3)); + + $system = json_decode(file_get_contents("https://api.pluralkit.me/v2/systems/$info[id]"), true); + $data[$name]["system"] = [ + "name" => $system["name"], + "avatar" => $system["avatar_url"] + ]; + sleep(1); + + $data[$name]["members"] = []; + + foreach (json_decode(file_get_contents("https://api.pluralkit.me/v2/systems/$info[id]/members"), true) as $member) { + $url = $member["avatar_url"] ?? $system["avatar_url"]; + + if (!file_exists("../../public/assets")) mkdir("../../public/assets"); + if (!file_exists("../../public/assets/" . $member["uuid"])) mkdir("../../public/assets/" . $member["uuid"]); + + exec("convert -resize 512x512 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/512.jpg\""); + exec("convert -resize 256x256 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/256.jpg\""); + exec("convert -resize 128x128 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/128.jpg\""); + exec("convert -resize 96x96 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/96.jpg\""); + exec("convert -resize 64x64 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/64.jpg\""); + exec("convert -resize 48x48 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/48.jpg\""); + exec("convert -resize 32x32 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/32.jpg\""); + exec("convert -resize 24x24 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/24.jpg\""); + exec("convert -resize 16x16 \"" . $url . "\" \"../../public/assets/" . $member["uuid"] . "/16.jpg\""); + + $data[$name]["members"][$member["uuid"]] = [ + "id" => $member["uuid"], + "name" => $member["display_name"] ?? $member["name"], + "avatar" => "/assets/" . $member["uuid"] . "/128.jpg", + "color" => $member["color"] ?? "ffffff", + "proxy" => $member["proxy_tags"] ?? [], + ]; + } + sleep(1); +} + +file_put_contents("../../data/pluralkit.json", json_encode($data, JSON_PRETTY_PRINT));
\ No newline at end of file |