Files
frontend/loader.html
2025-09-29 15:49:22 -04:00

79 lines
3.4 KiB
HTML
Executable File

<!DOCTYPE html>
<html class="sl-theme-dark" lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
<!-- initialize externals -->
<meta content="Selenite" property="og:title" />
<meta content="Selenite is the best unblocked games site. With over 400 games, an account system, and a free AI chat bot, no other websites come close to Selenite." property="og:description" />
<meta content="/favicon.png" property="og:image" />
<meta content="#c77dff" data-react-helmet="true" name="theme-color" />
<!-- initialize my stuff -->
<script src="/js/all.min.js"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
let gameData = {};
if (location.search != "") {
let items = {};
location.search.substr(1).split("&").forEach((e)=>{
items[e.split("=")[0]] = e.split("=")[1]
});
if(items.type == "g") {
items.type = "semag";
gameData["type"] = "g";
} else {
items.type = "sppa";
gameData["type"] = "a";
}
document.getElementById("gameFrame").setAttribute("src", `/resources/${items.type}/${items.dir}/index.html`);
document.getElementById("gameImage").setAttribute("src", `/resources/${items.type}/${items.dir}/${items.img}`);
document.getElementById("gameName").innerText = decodeURIComponent(items.title);
gameData["path"] = items.dir;
} else if(localStorage.getItem("selenite.lastGame")) {
let game = JSON.parse(decodeURIComponent(atob(localStorage.getItem("selenite.lastGame"))));
document.getElementById("gameFrame").setAttribute("src", `/resources/${items.type}/${game[0]}/index.html`);
document.getElementById("gameImage").setAttribute("src", `/resources/${items.type}/${game[0]}/${decodeURIComponent(game[1])}`);
document.getElementById("gameName").innerText = game[2];
gameData["path"] = game[0];
gameData["type"] = items.type == "semag" ? "g" : "a";
}
document.getElementById("fullscreen").addEventListener("click", () => {
document.getElementById("gameFrame").requestFullscreen();
});
document.getElementById("reload").addEventListener("click", () => {
document.getElementById("gameFrame").src = document.getElementById("gameFrame").src;
});
document.getElementById("open").addEventListener("click", () => {
window.open(document.getElementById("gameFrame").src);
});
document.getElementById("share").addEventListener("click", () => {
let link = location.origin + "#/" + gameData["type"] + "/" + gameData["path"];
navigator.clipboard.writeText(link);
});
});
</script>
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/pages.css" />
<link rel="stylesheet" href="/css/loader.css" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
</head>
<body>
<iframe id="gameFrame" sandbox="allow-downloads allow-forms allow-modals allow-pointer-lock allow-scripts allow-same-origin"></iframe>
<div id="infobox">
<img id="gameImage" src="favicon.png" />
<h2 id="gameName">Selenite</h2>
<div class="opposite">
<img class="button" id="reload" src="/img/reload.svg">
<img class="button" id="fullscreen" src="/img/fullscreen.svg">
<img class="button" id="open" src="/img/open.svg">
<img class="button" id="share" src="/img/share.svg">
</div>
</div>
</body>
</html>