summaryrefslogtreecommitdiff
path: root/pages/api/wear
diff options
context:
space:
mode:
Diffstat (limited to 'pages/api/wear')
-rw-r--r--pages/api/wear/schedule.php117
1 files changed, 117 insertions, 0 deletions
diff --git a/pages/api/wear/schedule.php b/pages/api/wear/schedule.php
new file mode 100644
index 0000000..cf053d8
--- /dev/null
+++ b/pages/api/wear/schedule.php
@@ -0,0 +1,117 @@
+<?php
+
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/session.inc"; global $isLoggedIn; global $_PROFILE;
+require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc";
+if (!$isLoggedIn) header("Location: /-/login") and die();
+
+header("Content-Type: application/json");
+
+$obj = [
+ "today" => [],
+ "tomorrow" => []
+];
+
+$raindrops = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/planner/gdapd.json"), true);
+$cloudburst = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/planner/ynmuc.json"), true);
+
+if (isset($raindrops[date('Y-m-d', time())]) || isset($cloudburst[date('Y-m-d', time())])) {
+ $rd = $raindrops[date('Y-m-d', time())];
+ $cb = $cloudburst[date('Y-m-d', time())];
+ $longest = max(count($rd), count($cb));
+
+ for ($x = 0; $x < $longest; $x++) {
+ $item = [];
+ $item["raindrops"] = null;
+ $item["cloudburst"] = null;
+
+ if (isset($rd[$x])) {
+ $item["raindrops"] = array_map(function ($i) use ($x, $longest) {
+ $member = getMemberWithoutSystem($i);
+
+ return [
+ "id" => $member["id"],
+ "name" => $member["display_name"] ?? $member["name"],
+ "avatar" => "https://ponies.equestria.horse" . getAsset($member["_system"], $member["id"]),
+ "flags" => [
+ "pacifier" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["pacifier"] ?? false) && ($x === ($longest - 1)),
+ "plush" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["sleep_plush"] ?? false) && ($x === ($longest - 1)),
+ ]
+ ];
+ }, array_filter($rd[$x], function ($i) { return isset($i); }));
+ } else if (isset($obj["today"][$x - 1]["raindrops"])) {
+ $item["raindrops"] = $obj["today"][$x - 1]["raindrops"];
+ }
+
+ if (isset($cb[$x])) {
+ $item["cloudburst"] = array_map(function ($i) use ($x, $longest) {
+ $member = getMemberWithoutSystem($i);
+
+ return [
+ "id" => $member["id"],
+ "name" => $member["display_name"] ?? $member["name"],
+ "avatar" => "https://ponies.equestria.horse" . getAsset($member["_system"], $member["id"]),
+ "flags" => [
+ "pacifier" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["pacifier"] ?? false) && ($x === ($longest - 1)),
+ "plush" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["sleep_plush"] ?? false) && ($x === ($longest - 1)),
+ ]
+ ];
+ }, array_filter($cb[$x], function ($i) { return isset($i); }));
+ } else if (isset($obj["today"][$x - 1]["cloudburst"])) {
+ $item["cloudburst"] = $obj["today"][$x - 1]["cloudburst"];
+ }
+
+ $obj["today"][] = $item;
+ }
+}
+
+if (isset($raindrops[date('Y-m-d', time() + 86400)]) || isset($cloudburst[date('Y-m-d', time() + 86400)])) {
+ $rd = $raindrops[date('Y-m-d', time() + 86400)];
+ $cb = $cloudburst[date('Y-m-d', time() + 86400)];
+ $longest = max(count($rd), count($cb));
+
+ for ($x = 0; $x < $longest; $x++) {
+ $item = [];
+ $item["raindrops"] = null;
+ $item["cloudburst"] = null;
+
+ if (isset($rd[$x])) {
+ $item["raindrops"] = array_map(function ($i) use ($x, $longest) {
+ $member = getMemberWithoutSystem($i);
+
+ return [
+ "id" => $member["id"],
+ "name" => $member["display_name"] ?? $member["name"],
+ "avatar" => "https://ponies.equestria.horse" . getAsset($member["_system"], $member["id"]),
+ "flags" => [
+ "pacifier" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["pacifier"] ?? false) && ($x === ($longest - 1)),
+ "plush" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["sleep_plush"] ?? false) && ($x === ($longest - 1)),
+ ]
+ ];
+ }, array_filter($rd[$x], function ($i) { return isset($i); }));
+ } else if (isset($obj["tomorrow"][$x - 1]["raindrops"])) {
+ $item["raindrops"] = $obj["tomorrow"][$x - 1]["raindrops"];
+ }
+
+ if (isset($cb[$x])) {
+ $item["cloudburst"] = array_map(function ($i) use ($x, $longest) {
+ $member = getMemberWithoutSystem($i);
+
+ return [
+ "id" => $member["id"],
+ "name" => $member["display_name"] ?? $member["name"],
+ "avatar" => "https://ponies.equestria.horse" . getAsset($member["_system"], $member["id"]),
+ "flags" => [
+ "pacifier" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["pacifier"] ?? false) && ($x === ($longest - 1)),
+ "plush" => (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $member["id"] . ".json"), true)["sleep_plush"] ?? false) && ($x === ($longest - 1)),
+ ]
+ ];
+ }, array_filter($cb[$x], function ($i) { return isset($i); }));
+ } else if (isset($obj["tomorrow"][$x - 1]["cloudburst"])) {
+ $item["cloudburst"] = $obj["tomorrow"][$x - 1]["cloudburst"];
+ }
+
+ $obj["tomorrow"][] = $item;
+ }
+}
+
+die(json_encode($obj, JSON_PRETTY_PRINT)); \ No newline at end of file