summaryrefslogtreecommitdiff
path: root/includes/util/travelling.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/util/travelling.inc')
-rw-r--r--includes/util/travelling.inc62
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