<?php global $system; global $systemCommonName; global $systemID; global $member; global $memberData; global $memberCommonName; global $memberID; global $lang; global $pages; if ($memberData["name"] === "fusion") { $title = ($memberCommonName === "fusion" ? $lang["member"]["merge"] : $memberCommonName); } else { $title = $memberCommonName . " ยท " . $systemCommonName; } require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/header.inc'; $travelling = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/travelling/travelling.json"), true); if ($memberData["name"] !== "unknown" && $memberData["name"] !== "fusion") { $metadata = parseMetadata(json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/" . $memberID . ".json"), true)); } global $isLoggedIn; $frontersRaindrops = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/gdapd/fronters.json"), true); $frontersCloudburst = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/ynmuc/fronters.json"), true); $fusionRaindrops = false; if ($memberData["name"] === "fusion") { if (in_array("fusion", array_map(function ($i) { return $i["name"]; }, $frontersRaindrops["members"]))) { $fusionRaindrops = true; $memberData = array_values(array_filter($frontersRaindrops["members"], function ($i) { return $i["name"] === "fusion"; }))[0]; $memberCommonName = $memberData['display_name'] ?? $memberData['name']; $memberID = $memberData['id']; $system = $systemID === "gdapd" ? "cloudburst" : "raindrops"; $systemID = $system === "cloudburst" ? "ynmuc" : "gdapd"; } } ?> <div id="member-banner-container" style="width: calc(100% - 300px);height: 65vh;position: fixed;background-image: url('<?= getAsset($systemID, $memberID, "banners") ?>');background-size: cover;background-position: center; top: 0;"> <div id="member-banner-inner" style="height: 100%;width: 100%;background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,1) 100%);"></div> </div> <script> window.onscroll = () => { document.getElementById("member-banner-container").style.height = (65 - ((window.scrollY / window.screen.availHeight) * 100)) + "vh"; } </script> <br> <div class="container"> <div id="member-page" style="background-color: rgba(26,26,26,0.8);border-radius: 10px;padding:20px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);margin-top:30vh;"> <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/fullbanner.inc"; ?> <div id="page-content"> <?php if ($memberData["name"] === "unknown"): ?> <div class="alert alert-secondary"> <p><?= $lang["member"]["unknown"][0] ?></p> <p><?= $lang["member"]["unknown"][1] ?></p> <p><?= $lang["member"]["unknown"][2] ?></p> <span><?= $lang["member"]["unknown"][3] ?></span> </div> <?php elseif ($memberData["name"] === "fusion"): ?> <div class="alert alert-secondary"> <p><?= $lang["member"]["fusion"][0] ?></p> <p><?= $lang["member"]["fusion"][1] ?></p> <p><?= $lang["member"]["fusion"][2] ?></p> <div class="list-group"> <?php $foundFusion = false; $fusionOn = false; foreach ($fusionRaindrops ? $frontersRaindrops['members'] : $frontersCloudburst['members'] as $fronter): if ($fronter["name"] !== "fusion"): if ($fusionOn): $foundFusion = true; $name = str_ends_with($fronter['name'], "-travelling") ? substr($fronter['name'], 0, strlen($fronter['name']) - 11) : $fronter['name'] ?> <a class="list-group-item list-group-item-action text-black" href="/<?= $name ?>"><img src="<?= getAsset($system, $fronter["id"], "heads") ?>" style="filter:invert(1) hue-rotate(180deg);width:24px;"> <?= $fronter["display_name"] ?? $name ?></a> <?php endif; else: $fusionOn = true; endif; endforeach; ?> </div> <?php if (!$foundFusion): ?> <i><?= $lang["member"]["no_fusion"] ?></i> <?php endif; ?> </div> <?php else: ?> <?php global $isLoggedIn; if ($isLoggedIn): ?> <details> <summary style="list-style: none;"> <small style="opacity:.5;display:block;">(edit: <a href="/-/metadata/<?= $system ?>/<?= $memberData['name'] ?>">metadata</a>, <a href="/-/edit/<?= $system ?>/<?= $memberData['name'] ?>">public</a>, <a href="/-/edit-private/<?= $system ?>/<?= $memberData['name'] ?>">private</a>)</small> </summary> <div class="alert alert-dark"> <ul style="margin-bottom:0;"> <li><b>ID:</b> <code><?= $memberID ?></code> (<code><?= $systemID . "/" . $memberID ?></code>, <?= $memberData["name"] ?>)</li> <li><b>Files:</b> <ul> <li><code><?= $_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$memberID.json" ?></code> (<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$memberID.json") ? filesize($_SERVER['DOCUMENT_ROOT'] . "/includes/data/metadata/$memberID.json") . " bytes" : "not found" ?>)</li> <li><code><?= $_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID.html" ?></code> (<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID.html") ? filesize($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID.html") . " bytes" : "not found" ?>)</li> <li><code><?= $_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID-private.html" ?></code> (<?= file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID-private.html") ? filesize($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID-private.html") . " bytes" : "not found" ?>)</li> </ul> </li> <li><b>Date added:</b> <?= date('l j F Y', strtotime($memberData["created"])) ?> (<?= timeAgo($memberData["created"]) ?>, <code><?= $memberData["created"] ?></code>)</li> <li><b>Pronouns:</b> <?= implode(", ", getPronounsFromMark($memberData['pronouns'])) ?></li> <li><b>Pronouns usage:</b> <ul><?php foreach (getMemberPronouns($memberData['pronouns']) as $type => $usage) { if (is_string($usage) && $type !== "color") { echo("<li><b>" . $type . ":</b> " . $usage . "</li>"); } } ?></ul></li> <li><b>Color:</b> <span style="border:1px solid rgba(255, 255, 255, .5);background-color:#<?= $memberData["color"] ?? "ffffff" ?>;display:inline-block;width:16px;height:16px;border-radius:5px;vertical-align: middle;filter: invert(1) hue-rotate(180deg);"></span> <span style="vertical-align: middle;"><code>#<?= $memberData["color"] ?? "ffffff" ?></code></span> <li><b>Bitset:</b><?php if (isset($metadata["bitset"])): ?> <code><?= str_repeat("0", 48 - strlen(decbin($metadata["bitset"]))) . decbin($metadata["bitset"]) ?></code> (0x<?= str_repeat("0", 12 - strlen(dechex($metadata["bitset"]))) . dechex($metadata["bitset"]) ?>, <?= $metadata["bitset"] ?>)</li><?php else: ?> <span class="text-warning" style="filter:invert(1) hue-rotate(180deg);">Not using bitset; please update.</span><?php endif; ?> <li><b>Reduced name:</b> <?= getMiniName($memberData["display_name"] ?? $member["name"]) ?></li> <li><b>Shared memory access:</b> <code><?= $metadata["shared_memory"] ?></code> (<?= $metadata["shared_memory"] === 2 ? "Full direct access" : ($metadata["shared_memory"] === 0 ? "No direct access" : "Partial direct access") ?>)</li> <li><b>Protector:</b> <code><?= $metadata["protector"] ? "1" : "0" ?></code> (<?= $metadata["protector"] ? "Yes" : "No" ?>)</li> <li><b>Little:</b> <code><?= $metadata["little"] ?></code> (<?= $metadata["little"] === 2 ? "Is a little" : ($metadata["little"] === 1 ? "Is an age regressor" : ($metadata["little"] === 3 ? "Not a little, but younger" : "No")) ?>)</li> <li><b>Relations count:</b> <code><?= count($metadata["marefriends"]) + count($metadata["sisters"]) ?></code></li> <?php require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/score.inc"; $score = calculateScore($metadata, $memberData["display_name"] ?? $memberData["name"]); ?> <li> <b>Score breakdown:</b> <code><?= $score["total"] ?></code> <ul><?php foreach ($metadata as $type => $usage) { if (is_string($usage)) { echo("<li><b>" . $type . ":</b> " . $usage . "</li>"); } else if (is_array($usage)) { if (count($usage) === 0) { echo("<li><b>" . $type . ":</b> []</li>"); } else { echo("<li><b>" . $type . ":</b><ul>"); foreach ($usage as $key => $item) { if (is_string($item)) { echo("<li><b>" . $key . ":</b> " . $item . "</li>"); } else { echo("<li><b>" . $key . ":</b> " . json_encode($item, JSON_UNESCAPED_SLASHES) . "</li>"); } } echo("</ul></li>"); } } else { echo("<li><b>" . $type . ":</b> " . json_encode($usage, JSON_UNESCAPED_SLASHES) . "</li>"); } } ?></ul></li> </ul> </div> </details> <?php endif; ?> <?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID-private.html") && $isLoggedIn): ?> <?= file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID-private.html") ?> <hr> <?php endif; ?> <?php if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID.html")): ?> <?= file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/data/content/$memberID.html") ?> <?php endif; ?> <?php endif; ?> </div> </div> </div> <?php require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/footer.inc'; ?>