frontend/apps.html
2024-06-02 22:46:59 -04:00

134 lines
4.6 KiB
HTML

<!DOCTYPE html>
<html class="sl-theme-dark" lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<script src=" https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js "></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
<!-- initialize my stuff -->
<script src="/js/all.js"></script>
<script src="/js/apps.js"></script>
<script src="/js/search.js"></script>
<script src="/js/main.js"></script>
<script src="/js/widget.js"></script>
<script src="/js/themes.js"></script>
<script src="/js/cookie.js"></script>
<link rel="stylesheet" href="/style.css" />
<!-- seo + other things -->
<title>Apps | Selenite</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<!-- toastify -->
<script></script>
</head>
<alerts>
<div id="toast"></div>
<script>
$.getJSON("data/changelog.json", (data) => {
if (localStorage.getItem("selenite.version") != data.version) {
toast({ title: "New Update!", message: data.desc, time: data.timestamp });
localStorage.setItem("selenite.version", data.version);
}
});
function toast(message, type) {
const toast = document.getElementById("toast");
toast.innerHTML = `<div class=samerow><h1>${message.title} - ${timeAgo(new Date(message.time * 1000))}</h1></div><p>${message.message}</p>`;
toast.style.animation = "toastFade 6s";
}
function timeAgo(input) {
const date = input instanceof Date ? input : new Date(input);
const formatter = new Intl.RelativeTimeFormat("en");
const ranges = {
years: 3600 * 24 * 365,
months: 3600 * 24 * 30,
weeks: 3600 * 24 * 7,
days: 3600 * 24,
hours: 3600,
minutes: 60,
seconds: 1,
};
const secondsElapsed = (date.getTime() - Date.now()) / 1000;
for (let key in ranges) {
if (ranges[key] < Math.abs(secondsElapsed)) {
const delta = secondsElapsed / ranges[key];
return formatter.format(Math.round(delta), key);
}
}
}
</script>
</alerts>
<body>
<header>
<a href="/index.html">Home</a>
<a href="/bookmarklets.html">Bookmarklets</a>
<a href="/projects.html">Games</a>
<a href="/apps.html">Apps</a>
<a href="/settings.html">Settings</a>
<a id="blank" href="#">Open Blank</a>
<div id="status">
<p id="time">00:00 AM</p>
</div>
</header>
<main>
<h3 id="popunder" style="display: none;">You may be redirected upon clicking on the screen. This is an ad. <a style="font-size: inherit;" href="ad.html">Learn more.</a></h3>
<input class="hiddenUpload" type="file" accept=".save" hidden />
<input type="text" class="searchbar" id="gamesearch" placeholder="Type here to search.." />
<div class="samerow">
<sl-tooltip content="Remember to download your save, so you don't lose your progress." trigger="manual" class="manual-tooltip">
<button onclick="downloadMainSave()">Download Save</button>
</sl-tooltip>
<button id="upload" onclick="uploadMainSave()">Upload Save</button>
</div>
<h2>Starred Apps</h2>
<p id="pinnedmessage">Star some apps for things to show up here!</p>
<div id="pinned"></div>
<h2>All Apps</h2>
<div id="games">
<a href="/suggest.html"
><div class="suggest">
<img src="img/addlink.svg" alt="Add Game logo" style="filter: invert(1) !important" />
<h1>Suggest a app!</h1>
</div></a
>
<p id="message">apps loading..</p>
<p id="message">apps not loading? click ctrl + shift + r</p>
<button id="message" onclick='$.getJSON("/data/apps.json", function (data) {loadGames(data)})'>Apps not loading? Click here.</button>
</div>
<br />
</main>
<footer>
<a href="https://codeberg.org/skysthelimitt/selenite">Source</a>
<a href="https://discord.gg/7jyufnwJNf">Discord</a>
<a href="/suggest.html">Suggestions & Bugs</a>
<a href="/contact.html">Contact</a>
<a href="/support.html">Donate</a>
<a href="/about.html">About</a>
</footer>
<script>
document.addEventListener("DOMContentLoaded", function () {
const adContainers = document.querySelectorAll("[id=adcontainer]");
if (adContainers.length > 0) {
for (let i = 0; i < adContainers.length; i++) {
if (Math.random() < 0.5 && localStorage.getItem("selenite.adblock") != "true") {
adContainers[i].innerHTML = "";
}
}
}
});
</script>
</body>
</html>