diff options
author | RaindropsSys <raindrops@equestria.dev> | 2024-03-29 22:05:35 +0100 |
---|---|---|
committer | RaindropsSys <raindrops@equestria.dev> | 2024-03-29 22:05:35 +0100 |
commit | 5860551daa0f60103ad24e93da29f401a653f144 (patch) | |
tree | 9ad97e04152a6edc11d5096c87880978df39086a /pages/ponytown.inc | |
parent | a51979ad60074db84af78a06d30fcb888ccb0b03 (diff) | |
download | pluralconnect-5860551daa0f60103ad24e93da29f401a653f144.tar.gz pluralconnect-5860551daa0f60103ad24e93da29f401a653f144.tar.bz2 pluralconnect-5860551daa0f60103ad24e93da29f401a653f144.zip |
Updated 20 files, added 6 files, deleted 144 files and renamed .idea/ponycule.iml (automated)
Diffstat (limited to 'pages/ponytown.inc')
-rw-r--r-- | pages/ponytown.inc | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/pages/ponytown.inc b/pages/ponytown.inc deleted file mode 100644 index b268aa3..0000000 --- a/pages/ponytown.inc +++ /dev/null @@ -1,258 +0,0 @@ -<?php - -require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; global $title; global $isLoggedIn; global $lang; global $pages; global $isLowerLoggedIn; global $app; - -$parts = explode("/", $_GET["_"]); - -if (!isset($parts[2])) { - peh_error("System member not found", 404); - return; -} - -if (getMemberWithoutSystem($parts[2]) === null) { - peh_error("System member not found", 404); - return; -} - -$member = getMemberWithoutSystem($parts[2]); - -if ($isLowerLoggedIn && $member["_system"] !== $app["other"]["id"] && $member["_system"] !== "hrbom") { - peh_error("System member not found", 404); - return; -} - -$title = ($member["display_name"] ?? $member["name"]) . " ยท " . $title; - -require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/header.inc'; - -$member = getMemberWithoutSystem($parts[2]); - -?> - -<br> -<div class="container"> - <div id="page-content"> - <h2>Pony Town uploader for <?= $member["display_name"] ?? $member["name"] ?></h2> - - <?php if (isset($_GET["updated"])): ?> - <div class="alert alert-success">Successfully uploaded a new Pony Town character for this member, it may take a few minutes to update across the website.</div> - <?php endif; ?> - - <div style="display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 20px; margin-top: 15px;"> - <div class="card"> - <div class="card-body"> - <h3>Current version</h3> - - <div style="display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 10px;"> - <div style="display: flex; align-items: center; justify-content: center;"> - <img src="data:image/png;base64,<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/ponies/" . $member["id"] . ".png") ? base64_encode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/assets/ponies/" . $member["id"] . ".png")) : "" ?>" style="width: 100%; border: 1px dashed rgba(255, 255, 255, .5); border-radius: 10px;"> - </div> - <div style="display: flex; align-items: center; justify-content: center;"> - <img src="data:image/png;base64,<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member["name"] . ".png") ? base64_encode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/assets/uploads/pt-" . $member["name"] . ".png")) : (file_exists($_SERVER['DOCUMENT_ROOT'] . getAsset($member["_system"], $member["id"], "heads")) ? base64_encode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . getAsset($member["_system"], $member["id"], "heads"))) : "") ?>" style="width: 100%; border: 1px dashed rgba(255, 255, 255, .5); border-radius: 10px;"> - </div> - </div> - - <?php - - if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/assets/ponies/" . $member["id"] . ".png")) { - $info = getimagesize($_SERVER['DOCUMENT_ROOT'] . "/assets/ponies/" . $member["id"] . ".png"); - } else { - $info = [null, 61]; - } - - if ($info[1] > 60): ?> - <p class="text-warning" style="margin-top: 15px; margin-bottom: 0; text-align: center;"><b>This Pony Town character needs to be updated.</b><br>Ponycule now relies on pixel-perfect versions of one's Pony Town character to work properly, and the current character for this member is not compliant or non-existant.</p> - <?php endif; ?> - </div> - </div> - - <div class="card"> - <div class="card-body"> - <h3>Upload a new version</h3> - - <div id="uploader"> - <ol> - <li>Open Pony Town [<a href="https://pony.town/" target="_blank">main</a>, <a href="https://event.pony.town/" target="_blank">event</a>, <a href="https://eventblue.pony.town/" target="_blank">eventblue</a>, <a href="https://eventgreen.pony.town/" target="_blank">eventgreen</a>, <a href="https://breezy.pony.town/" target="_blank">breezy</a>, <a href="https://building.pony.town/" target="_blank">building</a>], login if needed, and select the right pony</li> - <li>Click on <img class="antialias" alt="edit" src="/assets/editor/ponytown/step1.png" style="height: 2rem;"></li> - <li>Focus on <img class="antialias" alt="Export" src="/assets/editor/ponytown/step2.png" style="height: 2rem;"> and click on <img class="antialias" alt="Image export zoom" src="/assets/editor/ponytown/step2b.png" style="height: 2rem;"></li> - <li>In the menu, select <img class="antialias" alt="1x" src="/assets/editor/ponytown/step3.png" style="height: 2rem;"></li> - <li>Click on <img class="antialias" alt="Image export settings" src="/assets/editor/ponytown/step4.png" style="height: 2rem;"> and uncheck everything, like this:<br><img class="antialias" alt="[all settings unchecked]" src="/assets/editor/ponytown/step4b.png" style="width: 25%;"></li> - <li>Click on <img class="antialias" alt="PNG" src="/assets/editor/ponytown/step5.png" style="height: 2rem;"> and download the file to your device</li> - <li>Upload this file here (yes this is a button):<br><input type="file" id="file-uploader"></li> - <li>Go back to Pony Town, click on <img class="antialias" alt="Image export settings" src="/assets/editor/ponytown/step4.png" style="height: 2rem;"> again</li> - <li>Check "Head only", and nothing else, like this:<br><img class="antialias" alt="[Head only checked]" src="/assets/editor/ponytown/step9.png" style="width: 25%;"></li> - <li>Click on <img class="antialias" alt="PNG" src="/assets/editor/ponytown/step5.png" style="height: 2rem;"> once again and download the file to your device</li> - <li>Upload this file (the second one) here (yes this is also a button):<br><input type="file" id="file-uploader2"></li> - <li>We will check if you used the correct settings and save it if everything is good.</li> - </ol> - </div> - - <div id="checker" style="display: none;"> - <img src="/assets/editor/load.svg" style="width: 36px;"><span style="vertical-align: middle;" id="checker-message">Reading files...</span> - </div> - - <div id="error" style="display: none;"> - <p>Hmm, I don't think this is working! Check the errors below and try again:</p> - <ul id="errors"></ul> - <span class="btn btn-primary" onclick="upload();">Back</span> - </div> - - <div id="confirm" style="display: none;"> - <div style="display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 10px;"> - <div style="display: flex; align-items: center; justify-content: center;"> - <img id="confirm-preview-1" style="width: 100%; border: 1px dashed rgba(255, 255, 255, .5); border-radius: 10px;"> - </div> - <div style="display: flex; align-items: center; justify-content: center;"> - <img id="confirm-preview-2" style="width: 100%; border: 1px dashed rgba(255, 255, 255, .5); border-radius: 10px;"> - </div> - </div> - - <div style="margin-top: 10px;"> - <span class="btn btn-primary" onclick="uploadActual();">Upload</span> - <span class="btn btn-outline-primary" onclick='document.getElementById("file-uploader").value = "";document.getElementById("file-uploader2").value = "";upload();'>Cancel</span> - </div> - </div> - </div> - </div> - - <script> - function errors(list) { - document.getElementById("file-uploader").value = ""; - document.getElementById("file-uploader2").value = ""; - - document.getElementById("uploader").style.display = "none"; - document.getElementById("error").style.display = ""; - document.getElementById("checker").style.display = "none"; - document.getElementById("confirm").style.display = "none"; - - document.getElementById("errors").innerHTML = `<li>${list.map(i => i.replaceAll("<", "<").replaceAll(">", ">")).join("</li><li>")}</li>`; - } - - let files = [ - null, - null - ]; - - function uploadCandidate() { - if (files[0] && files[1]) { - document.getElementById("checker-message").innerText = "Uploading files for review..."; - - let data = JSON.stringify(files); - - if (data.length > 1024 ** 2) { - errors(["0xFF000001: The data being sent to the server is too large, your images are huge!"]); - return; - } - - window.fetch("/api/ponytown/?id=<?= $member["id"] ?>", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: data - }).then((res) => { - res.json().then((data) => { - document.getElementById("checker-message").innerText = "Processing response..."; - console.log(data); - - if (data.success) { - document.getElementById("confirm-preview-1").src = files[0]; - document.getElementById("confirm-preview-2").src = files[1]; - - document.getElementById("uploader").style.display = "none"; - document.getElementById("checker").style.display = "none"; - document.getElementById("confirm").style.display = ""; - document.getElementById("error").style.display = "none"; - } else { - errors(data.errors); - } - }) - }) - } - } - - function uploadActual() { - if (files[0] && files[1]) { - document.getElementById("checker-message").innerText = "Uploading final files..."; - - let data = JSON.stringify(files); - - if (data.length > 1024 ** 2) { - errors(["0xFF000001: The data being sent to the server is too large, your images are huge!"]); - return; - } - - window.fetch("/api/ponytown/?id=<?= $member["id"] ?>&real", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: data - }).then((res) => { - res.json().then((data) => { - document.getElementById("checker-message").innerText = "Processing response..."; - console.log(data); - - if (data.success) { - document.getElementById("checker-message").innerText = "Reloading..."; - location.href = "/-/ponytown/<?= $member["id"] ?>/?updated"; - } else { - errors(data.errors); - } - }) - }) - } - } - - document.getElementById("file-uploader").onchange = document.getElementById("file-uploader2").onchange = upload = () => { - files = [ - null, - null - ]; - - if (document.getElementById("file-uploader").files.length >= 1 && document.getElementById("file-uploader2").files.length >= 1) { - document.getElementById("errors").innerHTML = ""; - - document.getElementById("uploader").style.display = "none"; - document.getElementById("checker").style.display = ""; - document.getElementById("confirm").style.display = "none"; - document.getElementById("error").style.display = "none"; - - let file1 = document.getElementById("file-uploader").files[0]; - let file2 = document.getElementById("file-uploader2").files[0]; - - let reader1 = new FileReader(); - let reader2 = new FileReader(); - - reader1.readAsDataURL(file1); - reader2.readAsDataURL(file2); - - reader1.onerror = () => { - errors(["Unable to read file #1, an internal error occurred"]); - } - reader2.onerror = () => { - errors(["Unable to read file #2, an internal error occurred"]); - } - - reader1.onload = () => { - files[0] = reader1.result; - uploadCandidate(); - } - - reader2.onload = () => { - files[1] = reader2.result; - uploadCandidate(); - } - } else { - document.getElementById("uploader").style.display = ""; - document.getElementById("checker").style.display = "none"; - document.getElementById("confirm").style.display = "none"; - document.getElementById("error").style.display = "none"; - } - } - </script> - </div> - </div> -</div> - -<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?>
\ No newline at end of file |