diff options
-rw-r--r-- | .idea/deployment.xml | 9 | ||||
-rw-r--r-- | .idea/discord.xml | 5 | ||||
-rw-r--r-- | includes/external/next/index.php | 115 | ||||
-rw-r--r-- | includes/fragments/dashboard.inc | 6 |
4 files changed, 133 insertions, 2 deletions
diff --git a/.idea/deployment.xml b/.idea/deployment.xml index 0a2a236..df08611 100644 --- a/.idea/deployment.xml +++ b/.idea/deployment.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="PublishConfigData" autoUpload="Always" serverName="bridlewood" confirmBeforeDeletion="false" autoUploadExternalChanges="true"> + <component name="PublishConfigData" autoUpload="Always" serverName="watson" confirmBeforeDeletion="false" autoUploadExternalChanges="true"> <option name="confirmBeforeDeletion" value="false" /> <serverData> <paths name="bridlewood"> @@ -18,6 +18,13 @@ </excludedPaths> </serverdata> </paths> + <paths name="watson"> + <serverdata> + <mappings> + <mapping deploy="/opt/peh" local="$PROJECT_DIR$" web="/" /> + </mappings> + </serverdata> + </paths> </serverData> <option name="myAutoUpload" value="ALWAYS" /> </component> diff --git a/.idea/discord.xml b/.idea/discord.xml index d8e9561..3aef922 100644 --- a/.idea/discord.xml +++ b/.idea/discord.xml @@ -3,5 +3,10 @@ <component name="DiscordProjectSettings"> <option name="show" value="PROJECT_FILES" /> <option name="description" value="" /> + <option name="theme" value="material" /> + <option name="button1Title" value="" /> + <option name="button1Url" value="" /> + <option name="button2Title" value="" /> + <option name="button2Url" value="" /> </component> </project>
\ No newline at end of file diff --git a/includes/external/next/index.php b/includes/external/next/index.php new file mode 100644 index 0000000..5e96fb7 --- /dev/null +++ b/includes/external/next/index.php @@ -0,0 +1,115 @@ +<?php + +$_SERVER['DOCUMENT_ROOT'] = "../../.."; + +$ntfy = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true)["ntfy"]; +require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/util/functions.inc"; +$pairs = []; + +$pairs2 = [ + ["lqolg"], + ["tfbob"], + ["zajrk"], + ["ktrdb"], + ["hpwyq"], + ["qbzxm"], + ["qraku"], + ["mhnqy"], + ["ztfjz"], + ["ufadt"], + ["ckqsw"] +]; + +$special = ["ckqsw"]; + +// -------------------- + +function getRelativeDay($offset) { + if ($offset === 0) return "Today"; + if ($offset === 1) return "Tomorrow"; + return "On " . date('l', time() + ($offset * 86400)) . " (in $offset days, " . date('j M', time() + ($offset * 86400)) . ")"; +} + +$members = array_map(function ($i) { + $system = "gdapd"; + $i["_lastFronted"] = -1; + $id = $i["id"]; + $memberData = $i; + + $fronters = array_map(function ($item) { + return $item["id"]; + }, json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/fronters.json"), true)["members"]); + + if (in_array($id, $fronters)) { + $i["_lastFronted"] = time(); + } else { + $switches = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/$system/switches.json"), true); + + $thisMember = array_filter($switches, function ($item) use ($memberData) { + return in_array($memberData["id"], $item["members"]); + }); + + $thisMember = array_values($thisMember); + $frontingEnd = null; + + if (count($thisMember) > 0) { + $thisIndex = array_search($thisMember[0], $switches); + + $frontingStart = $thisMember[0]; + $frontingEnd = $switches[$thisIndex - 1]; + } + + if ($frontingEnd !== null && isset($frontingStart)) { + $i["_lastFronted"] = strtotime($frontingEnd["timestamp"]); + } + } + + return $i; +}, array_values(array_filter(scoreOrderGlobal(), function ($i) { + return $i["_system"] === "gdapd"; +}))); + +$requested = []; +foreach ([...$pairs, ...$pairs2] as $pair) { + array_push($requested, ...$pair); +} + +$fronters = array_map(function ($i) { + return $i["id"]; +}, json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/fronters.json"), true)["members"]); + +$requested = array_values(array_filter(array_reverse(array_unique($requested)), function ($i) use ($fronters) { + return !in_array($i, $fronters); +})); + +$i = 0; +$list = [$requested[$i]]; +while (in_array($list[count($list) - 1], $special)) { + $i++; + $list[] = $requested[$i]; +} + +if (count($list) > 1) { + $str = implode(" or ", array_map(function ($i) { + return (getMemberWithoutSystem($i)["display_name"] ?? getMemberWithoutSystem($i)["name"]); + }, $list)) . " is fronting today."; +} elseif (count($list) > 0) { + $str = (getMemberWithoutSystem($list[0])["display_name"] ?? getMemberWithoutSystem($list[0])["name"]) . " is fronting today."; +} else { + $str = "We couldn't tell who will front today, sorry."; +} + +$context = stream_context_create([ + 'http' => [ + 'method' => 'POST', + 'header' => + "Content-Type: text/plain\r\n" . + "Title: " . formatPonypush("🎠Pony fronting today") . "\r\n" . + "Priority: high\r\n" . + "Tags: schedule\r\n" . + "Authorization: Basic " . base64_encode($ntfy["user"] . ":" . $ntfy["password"]), + 'content' => formatPonypush($str) + ] +]); + +file_get_contents('https://' . $ntfy["server"] . '/main', false, $context); diff --git a/includes/fragments/dashboard.inc b/includes/fragments/dashboard.inc index 3cf8d6f..29b5b84 100644 --- a/includes/fragments/dashboard.inc +++ b/includes/fragments/dashboard.inc @@ -24,6 +24,10 @@ global $use2023UI; <b>GPU acceleration is turned off or not supported.</b> A lot of visual effects on this website rely on GPU acceleration, which is currently disabled on your browser, meaning the website's overall look will be affected. Please enable GPU acceleration in your browser settings. </div> + <div class="alert alert-warning"> + <b>Ponycule's user-space pages are going away.</b> Starting in April 2024, we will be discontinuing all the Ponycule public pages to better focus on making Ponycule a central hub for plural integrations with other services. If you need access to all your content, you may request a backup to the administrators. + </div> + <style> .day-gradient { background-image: linear-gradient(180deg, rgba(7,15,36,1) 0%, rgba(36,56,83,1) 14%, rgba(165,126,57,1) 28%, rgba(37,109,201,1) 42%, rgba(47,165,208,1) 57%, rgba(252,120,15,1) 71%, rgba(38,66,97,1) 85%, rgba(7,15,36,1) 100%); @@ -240,4 +244,4 @@ global $use2023UI; </div> </div> </div> -<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?>
\ No newline at end of file +<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/components/footer.inc'; ?> |