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);