diff options
Diffstat (limited to 'pages/api/wear/schedule.php')
-rw-r--r-- | pages/api/wear/schedule.php | 117 |
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 |