diff options
Diffstat (limited to 'pages')
-rw-r--r-- | pages/api/overage.php | 47 | ||||
-rw-r--r-- | pages/api/schedule.php | 69 | ||||
-rw-r--r-- | pages/rules.inc | 12 |
3 files changed, 124 insertions, 4 deletions
diff --git a/pages/api/overage.php b/pages/api/overage.php new file mode 100644 index 0000000..aef4ac6 --- /dev/null +++ b/pages/api/overage.php @@ -0,0 +1,47 @@ +<?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 = [ + "raindrops" => null, + "cloudburst" => null +]; + +foreach (["raindrops", "cloudburst"] as $userName) { + $allowNsfw = null; + $fronters = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($userName === "raindrops" ? "gdapd" : "ynmuc") . "/fronters.json"), true); + + if (count($fronters["members"]) > 0) { + $id = $fronters["members"][0]["id"]; + + if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $id . ".json")) { + $info = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $id . ".json"), true); + + if (isset($info["birth"]["age"]) && $info["birth"]["age"] < 15 && $info["birth"]["age"] > 0) { + $allowNsfw = false; + } else if (isset($info["birth"]["year"]) && $info["birth"]["year"] > 1900) { + if (!isset($info["birth"]["date"])) $info["birth"]["date"] = "01-01"; + + $age = (int)date('Y') - $info["birth"]["year"] + (strtotime(date('Y') . "-" . $info["birth"]["date"]) <= time() ? 0 : -1); + + if ($age < 15) { + $allowNsfw = false; + } else { + $allowNsfw = true; + } + } else if ((!isset($info["birth"]["age"]) || $info["birth"]["age"] === 0) && (!isset($info["birth"]["year"]) || $info["birth"]["year"] > 1900)) { + $allowNsfw = false; + } else { + $allowNsfw = true; + } + } + } + + $obj[$userName] = $allowNsfw; +} + +die(json_encode($obj, JSON_PRETTY_PRINT));
\ No newline at end of file diff --git a/pages/api/schedule.php b/pages/api/schedule.php new file mode 100644 index 0000000..489e28f --- /dev/null +++ b/pages/api/schedule.php @@ -0,0 +1,69 @@ +<?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) { return getMemberWithoutSystem($i)["display_name"] ?? getMemberWithoutSystem($i)["name"]; }, 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) { return getMemberWithoutSystem($i)["display_name"] ?? getMemberWithoutSystem($i)["name"]; }, 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) { return getMemberWithoutSystem($i)["display_name"] ?? getMemberWithoutSystem($i)["name"]; }, 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) { return getMemberWithoutSystem($i)["display_name"] ?? getMemberWithoutSystem($i)["name"]; }, 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["tomorrow"][] = $item; + } +} + +die(json_encode($obj, JSON_PRETTY_PRINT));
\ No newline at end of file diff --git a/pages/rules.inc b/pages/rules.inc index 23447f2..0c57819 100644 --- a/pages/rules.inc +++ b/pages/rules.inc @@ -1,5 +1,9 @@ <?php +if (time() >= 1682985600) { + peh_error("Page not found: rules", 404); +} + require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc"; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/init.inc"; global $title; global $isLoggedIn; global $lang; global $pages; require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/Parsedown.php"; $Parsedown = new Parsedown(); @@ -44,14 +48,16 @@ $cache = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/da ?> -<?php if (!isset($cache["content"])): ob_start(); ?> - <br> <div class="container"> <div id="page-content"> <h2>Rules</h2> <p><a onclick="event.target.blur();" href="#" data-bs-toggle="modal" data-bs-target="#editor">Edit rules</a></p> + <div class="alert alert-warning"> + The rules system will be removed on May 2<sup>nd</sup> 2023 at midnight UTC. This page will not be accessible anymore. If there is any data you want to keep, ask Raindrops System for a copy of the rules database. + </div> + <?php $rules = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/rules/rules.json"), true); @@ -279,7 +285,5 @@ $cache = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/da filter: invert(1); } </style> -<?php $cache["content"] = ob_get_contents(); ob_end_clean(); endif; -echo($cache["content"]); file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/cache/rules.json", json_encode($cache)); ?> <?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?> |