diff options
Diffstat (limited to 'includes/util/travelling.inc')
-rw-r--r-- | includes/util/travelling.inc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/includes/util/travelling.inc b/includes/util/travelling.inc new file mode 100644 index 0000000..0d1696a --- /dev/null +++ b/includes/util/travelling.inc @@ -0,0 +1,62 @@ +<?php + +$app = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); +$travelling = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/travelling/travelling.json"), true); + +$json_cloudburst = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc/members.json"), true); +$json_raindrops = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/members.json"), true); +$json_other = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/other/members.json"), true); + +if (!isset($json_cloudburst)) $json_cloudburst = []; +if (!isset($json_raindrops)) $json_raindrops = []; +if (!isset($json_other)) $json_other = []; + +$members = [...array_map(function ($i) { + $i["_system"] = "ynmuc"; + return $i; +}, $json_cloudburst), ...array_map(function ($i) { + $i["_system"] = "gdapd"; + return $i; +}, $json_raindrops), ...array_map(function ($i) use ($app) { + $i["_system"] = $app["other"]["id"]; + return $i; +}, $json_other)]; + +foreach ($members as $member) { + if (!isset($travelling[$member["id"]])) { + $travelling[$member["id"]] = [ + "travelling" => false, + "history" => [] + ]; + + @file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/travelling/travelling.json", utf8_encode(json_encode($travelling, JSON_PRETTY_PRINT))); + } + + if (!isset($travelling[$member["id"]]["equestria"])) { + $travelling[$member["id"]]["equestria"] = false; + } +} + +function withTravelers(array $members, string $system): array { + global $travelling; + global $app; + + if ($system === $app["other"]["id"]) { + return $members; + } else { + return [ + ...array_map(function ($i) use ($system) { + $i['system'] = $system; + return $i; + }, array_filter($members, function ($i) use ($travelling) { + return !(isset($travelling[$i['id']]) && $travelling[$i['id']]['travelling'] && (!isset($travelling[$i['id']]['equestria']) || !$travelling[$i['id']]['equestria'])); + })), + ...array_filter(array_map(function ($i) use ($system) { + $i['system'] = $system === "gdapd" ? "ynmuc" : "gdapd"; + return $i; + }, json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/" . ($system === "gdapd" ? "ynmuc" : "gdapd") . "/members.json"), true)), function ($i) use ($travelling) { + return isset($travelling[$i['id']]) && $travelling[$i['id']]['travelling'] && (!isset($travelling[$i['id']]['equestria']) || !$travelling[$i['id']]['equestria']); + }) + ]; + } +}
\ No newline at end of file |