<?php function scoreOrder($members, $system, $useDominant = false) { global $isLowerLoggedIn; global $isLoggedIn; $ordered = []; foreach ($members as $member) { if ($member["name"] !== "unknown" && $member["name"] !== "fusion" && $member["name"] !== "new" && !str_starts_with($member["name"], "smol") && !str_ends_with($member["name"], "-travelling") && file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json")) { if (isset($member["color"])) { if ($useDominant) { $rgb = [ hexdec(substr($member["dominant_color"] ?? $member["color"], 0, 2)), hexdec(substr($member["dominant_color"] ?? $member["color"], 2, 2)), hexdec(substr($member["dominant_color"] ?? $member["color"], 4, 2)) ]; } else { $rgb = [ hexdec(substr($member["color"], 0, 2)), hexdec(substr($member["color"], 2, 2)), hexdec(substr($member["color"], 4, 2)) ]; } $hsl = rgbToHsl( $rgb[0], $rgb[1], $rgb[2] ); } else { $rgb = [255, 255, 255]; $hsl = rgbToHsl(255, 255, 255); } $systemID = $member["system"] ?? $system; $member["_system"] = $member["system"] = $systemID; $member["_metadata"] = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json"), true)); $member["_score"] = $hsl[0]; if (!isset($member["_metadata"]["private"]) || !$member["_metadata"]["private"] || $isLoggedIn || $isLowerLoggedIn) { $ordered[] = $member; } } } uasort($ordered, function($a, $b) { return $a["_score"] - $b["_score"]; }); return $ordered; } function scoreOrderGlobal() { global $isLowerLoggedIn; global $isLoggedIn; $ordered = []; foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/members.json"), true) as $member) { if ($member["name"] !== "unknown" && $member["name"] !== "fusion" && $member["name"] !== "new" && !str_starts_with($member["name"], "smol") && !str_ends_with($member["name"], "-travelling") && file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json")) { if (isset($member["color"])) { $rgb = [ hexdec(substr($member["color"], 0, 2)), hexdec(substr($member["color"], 2, 2)), hexdec(substr($member["color"], 4, 2)) ]; $hsl = rgbToHsl( $rgb[0], $rgb[1], $rgb[2] ); } else { $rgb = [255, 255, 255]; $hsl = rgbToHsl(255, 255, 255); } $member["_score"] = $hsl[0]; $member["_system"] = "gdapd"; $member["system"] = "gdapd"; $member["_metadata"] = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json"), true)); if (!isset($member["_metadata"]["private"]) || !$member["_metadata"]["private"] || $isLoggedIn || $isLowerLoggedIn) { $ordered[] = $member; } } } foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc/members.json"), true) as $member) { if ($member["name"] !== "unknown" && $member["name"] !== "fusion" && $member["name"] !== "new" && !str_starts_with($member["name"], "smol") && !str_ends_with($member["name"], "-travelling") && file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json")) { if (isset($member["color"])) { $rgb = [ hexdec(substr($member["color"], 0, 2)), hexdec(substr($member["color"], 2, 2)), hexdec(substr($member["color"], 4, 2)) ]; $hsl = rgbToHsl( $rgb[0], $rgb[1], $rgb[2] ); } else { $rgb = [255, 255, 255]; $hsl = rgbToHsl(255, 255, 255); } $member["_score"] = $hsl[0]; $member["_system"] = "ynmuc"; $member["system"] = "ynmuc"; $member["_metadata"] = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json"), true)); if (!isset($member["_metadata"]["private"]) || !$member["_metadata"]["private"] || $isLoggedIn || $isLowerLoggedIn) { $ordered[] = $member; } } } if ($isLowerLoggedIn || $isLoggedIn) { $app = $GLOBALS["ColdHazeApp"] ?? json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true); foreach (json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/other/members.json"), true) as $member) { if ($member["name"] !== "unknown" && $member["name"] !== "fusion" && $member["name"] !== "new" && !str_starts_with($member["name"], "smol") && !str_ends_with($member["name"], "-travelling") && file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json")) { if (isset($member["color"])) { $rgb = [ hexdec(substr($member["color"], 0, 2)), hexdec(substr($member["color"], 2, 2)), hexdec(substr($member["color"], 4, 2)) ]; $hsl = rgbToHsl( $rgb[0], $rgb[1], $rgb[2] ); } else { $rgb = [255, 255, 255]; $hsl = rgbToHsl(255, 255, 255); } $member["_score"] = $hsl[0]; $member["_system"] = $app["other"]["id"]; $member["system"] = $app["other"]["id"]; $member["_metadata"] = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$member[id].json"), true)); $ordered[] = $member; } } } uasort($ordered, function($a, $b) { return $a["_score"] - $b["_score"]; }); return array_values($ordered); }