Compare commits

2 Commits

Author SHA1 Message Date
sky
5d0a1b87df some fuckery to get dev branch working 2025-06-22 11:53:54 -04:00
sky
c34e53111c first dev commit 2025-06-22 11:51:44 -04:00
108 changed files with 909 additions and 913 deletions

1
.gitignore vendored Normal file → Executable file
View File

@ -0,0 +1 @@
resources/

4
.prettierrc Normal file
View File

@ -0,0 +1,4 @@
{
"tabWidth": 4,
"printWidth": 10000
}

33
404.html Normal file → Executable file
View File

@ -32,9 +32,16 @@
<!-- toastify --> <!-- toastify -->
<script> <script>
if(document.href.contains("eg1.8") || document.href.contains("eaglercraft")) { document.addEventListener("DOMContentLoaded", () => {
document.href = "/semag/eg/"
} })
$.getJSON("/data/games.json", (data) => {
for(let i = 0;i < data.length;i++) {
if(location.pathname.includes(data[i]["directory"])) {
location.href = "/semag/" + data[i]["directory"] + "/index.html"
}
}
})
</script> </script>
</head> </head>
<alerts> <alerts>
@ -57,8 +64,28 @@
<p>Trying to access a page such as login, register, or a user page? Those are only available on official links.</p> <p>Trying to access a page such as login, register, or a user page? Those are only available on official links.</p>
<p><a href="https://discord.gg/7jyufnwJNf">Join the Discord to find official links.</a></p> <p><a href="https://discord.gg/7jyufnwJNf">Join the Discord to find official links.</a></p>
<a href="/index.html"><button>Go home</button></a> <a href="/index.html"><button>Go home</button></a>
<button onclick="statsForNerds()">Stats for nerds</button>
<div id="sfn" style="display: none;" class="message">
Please report this to our <a href="https://discord.gg/7jyufnwJNf">Discord</a> or <a href="mailto:support@selenite.cc">email.</a> <br>
Requested URL: <span id="full">You need Javascript to show the Stats for nerds</span><br>
Referrer: <span id="ref">You need Javascript to show the Stats for nerds</span><br>
Title: <span id="title">You need Javascript to show the Stats for nerds</span><br>
Screen height: <span id="height">You need Javascript to show the Stats for nerds</span><br>
Screen width: <span id="width">You need Javascript to show the Stats for nerds</span><br>
Window height: <span id="winheight">You need Javascript to show the Stats for nerds</span><br>
Window width: <span id="winwidth">You need Javascript to show the Stats for nerds</span><br>
Cookies: <span id="cookie">You need Javascript to show the Stats for nerds</span><br>
User agent: <span id="ua">You need Javascript to show the Stats for nerds</span><br>
OS platform: <span id="plat">You need Javascript to show the Stats for nerds</span><br>
Online: <span id="online">You need Javascript to show the Stats for nerds</span>
<br />IP: <span id="ip">You need Javascript to show the Stats for nerds</span><br>
Error code: 404<br>
</div> </div>
<script>
"innerText"in document.body||Object.defineProperty(HTMLElement.prototype,"innerText",{get:function(){return this.textContent},set:function(a){this.textContent=a}}),window.fetch||(window.fetch=function(a){return new Promise(function(b,c){var d=new XMLHttpRequest;d.open("GET",a),d.onload=function(){200===d.status?b(JSON.parse(d.responseText)):c(Error(d.statusText))},d.onerror=function(){c(Error("Network Error"))},d.send()})}),window.XMLHttpRequest||(window.XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(a){}throw new Error("This browser does not support XMLHttpRequest.")});function statsForNerds(){var a=document.getElementById("sfn");"none"===a.style.display?(a.style.display="block",console.log("[\u2139\uFE0F] Showing the stats for nerds!")):(a.style.display="none",console.log("[\u2139\uFE0F] Hiding the stats for nerds!"))}document.getElementById("full").innerText=window.location.href,document.getElementById("ref").innerHTML=document.referrer,document.getElementById("title").innerText=document.title,document.getElementById("height").innerHTML=screen.height+"px",document.getElementById("width").innerHTML=screen.width+"px",document.getElementById("winheight").innerHTML=window.innerHeight+"px",document.getElementById("winwidth").innerHTML=window.innerWidth+"px",document.getElementById("cookie").innerText=navigator.cookieEnabled,document.getElementById("ua").innerHTML=navigator.userAgent,document.getElementById("plat").innerHTML=navigator.platform,document.getElementById("online").innerHTML=navigator.onLine;var echolog={};fetch("//wtfismyip.com/json").then(function(a){return a.json()}).then(function(a){var b={ipAddress:a.YourFuckingIPAddress,hostname:a.YourFuckingHostname},c=document.getElementById("ip");c.innerText=b.ipAddress})["catch"](function(a){return console.error(a)});
</script>
</main> </main>
<footer class="noscroll"> <footer class="noscroll">

0
README.md Normal file → Executable file
View File

0
about.html Normal file → Executable file
View File

0
ad.html Normal file → Executable file
View File

0
ads.txt Normal file → Executable file
View File

0
apps.html Normal file → Executable file
View File

0
backgrounds.html Normal file → Executable file
View File

0
blank.html Normal file → Executable file
View File

0
bookmarklets.html Normal file → Executable file
View File

0
contact.html Normal file → Executable file
View File

48
css/games.css Executable file
View File

@ -0,0 +1,48 @@
game {
width: 20vw;
height: 10vh;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
border-radius: 20px;
margin: 15px;
transition-duration: 0.25s;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
}
game:hover {
transform: scale(1.1);
filter:brightness(1.15);
}
game img {
height: 80%;
border-radius: 15px;
aspect-ratio: 1 / 1;
margin: 10px;
justify-self: left;
margin-right: auto;
}
game h1 {
font-size: 14px;
margin: 15px;
max-width: 50%;
}
#games {
width: 90vw;
height: 100%;
display: flex;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
min-height: calc(100vh - (18px * 2 + 5px * 2 + 20px * 2));
gap: 0px;
}
#noResults {
display: none;
font-size: 28px;
color: var(--color-1);
text-shadow: var(--color-1) 0 0 10px;
}

32
css/loader.css Normal file
View File

@ -0,0 +1,32 @@
#gamecontainer {
width: 90vw;
height: auto;
border-radius: 15px;
background-color: color-mix(in srgb, var(--color-2) 50%, #00000000 50%);
box-shadow: 0 0 10px var(--color-2);
backdrop-filter: blur(6px);
}
#gameFrame {
width: 99%;
height: 75vh;
margin: 0.5%;
margin-bottom: 0;
border-radius: 10px;
}
#infobox {
height: 8vh;
width: 100%;
margin: 1% 0;
display: flex;
justify-content: center;
align-items: center;
}
#infobox img {
height: 100%;
margin: 1.5%;
aspect-ratio: 1 / 1;
border-radius: 8px;
}
#infobox h2 {
margin-right: auto;
}

70
css/main.css Executable file
View File

@ -0,0 +1,70 @@
@import url("/css/themes.css");
@import url('https://fonts.googleapis.com/css2?family=Mulish&display=swap');
:root {
--text-color: #fff;
--bg-1: #5a189a;
--bg-2: #10002b;
--color-1: #E0AAFF;
--color-2: #7B2CBF;
--color-3: #3C096C;
--color-4: #240046;
}
html,
body {
/* height: 100vh; */
width: 100vw;
color: white;
background-color: black;
}
* {
padding: 0;
margin: 0;
border: none;
font-family: "Mulish", serif;
}
body {
animation: 1s ease-out loadIn;
}
@keyframes loadIn {
from {opacity: 0;transform: translateY(-32px);}
to {opacity: 1;transform: translateY(0px);}
}
body {
display: flex;
filter: drop-shadow(0px 0px 4px #ffffff99);
}
.samerow {
display: flex;
justify-content: center;
gap: 0;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
.samerow img {
width: 80px;
aspect-ratio: 1 / 1;
padding: 5px;
margin: 10px;
user-select: none;
}
h1 {
font-size: 48px;
margin: 10px;
}
h2 {
font-size: 32px;
margin: 8px;
}
h3 {
font-size: 24px;
margin: 4px;
}
p {
font-size: 16px;
margin: 2px;
}

0
css/style.css → css/oldstyle.css Normal file → Executable file
View File

107
css/pages.css Executable file
View File

@ -0,0 +1,107 @@
@property --gradient-x {
syntax: "<percentage>";
inherits: false;
initial-value: 100%;
}
@property --gradient-y {
syntax: "<percentage>";
inherits: false;
initial-value: 0%;
}
body {
background: rgb(16, 0, 43);
background: radial-gradient(
circle at var(--gradient-x) var(--gradient-y),
var(--bg-1) 0%,
var(--bg-2) 100%
);
background-size: 100vw 100vh;
background-repeat: no-repeat;
background-attachment: fixed;
transition: --gradient-x 30s ease-in-out,
--gradient-y 30s ease-in-out;
overflow-x: hidden;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
width: 100vw;
min-height: 100vh;
position: relative;
}
#particles-js {
width: 100vw;
height: 100vh;
position: absolute;
z-index: -1000;
border: none;
overflow-y: hidden;
top: 0;
transition-duration: 0.05s;
transition-timing-function: ease-out;
}
input[type=text] {
width: 70%;
border-style: solid;
border-width: 2px;
padding: 18px;
margin: 5px;
text-align: center;
border-radius: 10px;
background-color: var(--color-2);
border-color: var(--color-3);
color: var(--text-color);
outline: none;
transition-duration: 0.25s;
font-size: 20px;
text-shadow: var(--color-1) 0 0 10px;
}
input[type=text]:focus {
filter:brightness(1.25) !important;
}
input[type=text]:hover {
filter:brightness(1.1);
}
input[type=text]::placeholder {
color: color-mix(in srgb, var(--text-color) 20%, #00000000 80%);
text-shadow: color-mix(in srgb, var(--text-color) 40%, #00000000 60%) 0 0 10px;
}
/* Chrome, Edge and Safari */
*::-webkit-scrollbar {
height: 10px;
width: 8px;
}
*::-webkit-scrollbar-track {
border-radius: 5px;
background-color: var(--color-4);
}
*::-webkit-scrollbar-track:hover {
filter:brightness(1.1);
}
*::-webkit-scrollbar-track:active {
filter:brightness(1.25);
}
*::-webkit-scrollbar-thumb {
border-radius: 5px;
background-color: var(--color-2);
}
*::-webkit-scrollbar-thumb:hover {
filter:brightness(1.1);
}
*::-webkit-scrollbar-thumb:active {
filter:brightness(1.25);
}
.title {
color: var(--color-1);
text-shadow: var(--color-1) 0 0 24px;
}

58
css/sidebar.css Executable file
View File

@ -0,0 +1,58 @@
body {
overflow: hidden;
}
sidebar {
background-color: linear-gradient(19deg,rgba(87, 199, 133, 1) 0%, rgba(237, 221, 83, 1) 100%);;
height: 100%;
width: 50px;
display: flex;
flex-direction: column;
align-items: center;
}
.sidebar-item {
margin: 6px;
padding: 6px;
height: 26px;
width: 26px;
transition-duration: 0.5s;
transition-timing-function: ease-in-out;
}
iframe {
width: calc(100% - 50px - 10px);
height: calc(100vh - 20px);
margin: 10px;
margin-right: 0px;
border-radius: 8px;
}
.sidebar-divider {
height: 2px;
border-radius: 20px;
width: 80%;
background-color: #ffffff22;
/* auto is being stupid
100vh minus height of 1 object 7 times minus the margin and padding of 7 objects (multiplied twice bc margin and padding on top and bottom) */
margin-bottom: calc(100vh - 26px * 7 - ((6px + 6px) * 2) * 7);
}
.sidebar-item-descriptor {
position: fixed;
right: 25px;
opacity: 0;
transform: translateY(-32px);
text-align: left;
background-color: black;
border-radius: 10px;
padding: 8px;
color: white;
font-size: 12px;
user-select: none;
pointer-events: none;
transition: opacity 0.5s 0.2s, right 0.5s 0.2s;
font-family: "Mulish", serif;
}
.sidebar-item:hover .sidebar-item-descriptor {
opacity: 1;
right: 55px;
}

302
css/themes.css Normal file → Executable file
View File

@ -1,295 +1,9 @@
:root {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
}
body { body {
--inputbg: #3c096c; --text-color: #fff;
--inputborder: #5a189a; --bg-1: #5a189a;
--uibg: #240046; --bg-2: #10002b;
--textcolor: #fff; --color-1: #E0AAFF;
--bg: #10002b; --color-2: #7B2CBF;
} --color-3: #3C096C;
body[theme=threekho] { --color-4: #240046;
--inputbg: #28A018; }
--inputborder: #0A8F00;
--uibg: #111111;
--textcolor: #fff;
--bg: #000000;
}
body[theme=art] {
--inputbg: #0284d4;
--inputborder: #0284d4;
--uibg: #0e1213;
--textcolor: #fffff;
--bg: #1a2023;
}
body[theme=dogcat] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: url("/img/backgrounds/dogcat.svg"), rgb(26, 127, 158);
/* https://wallpaperaccess.com/full/115544.jpg */
}
body[theme=custom] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
}
body[theme=mainnew] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046bb;
--textcolor: #fff;
--bg: linear-gradient(0deg, rgba(36,0,70,1) 0%, rgba(60,9,108,1) 50%, rgba(36,0,70,1) 100%);
}
body[theme=main] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046bb;
--textcolor: #fff;
--bg: #10002b;
}
body[theme=light] {
--inputbg: #bbbbbb;
--inputborder: #e6e6e6;
--uibg: #b3b3b3;
--textcolor: #1a1a1a;
--bg: #c5c5c5;
}
body[theme=dark] {
--inputbg: #333333;
--inputborder: #444444;
--uibg: #242424;
--textcolor: #fff;
--bg: #0c0c0c;
}
body[theme=egamepass] {
--inputbg: #4f6ed1;
--inputborder: #5586e0;
--uibg: #185494;
--textcolor: #a7d3ff;
--bg: #16416f;
}
body[theme=cools1te] {
--inputbg: #a134dc;
--inputborder: #b153e3;
--uibg: #ab28cf;
--textcolor: #d3a4fa;
--bg: #8e14af;
}
body[theme=lattefalse] {
--inputbg: #9ca0b0;
/* overlay 0 */
--inputborder: #8c8fa1;
/* overlay 1 */
--uibg: #ccd0da;
/* surface 0 */
--textcolor: #4c4f69;
/* text */
--bg: #eff1f5;
/* base */
--shadow: 0px 0px 4px #ccd0da;
/* surface 0 */
}
body[theme=frappefalse] {
--inputbg: #737994;
/* overlay 0 */
--inputborder: #838ba7;
/* overlay 1 */
--uibg: #414559;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #303446;
/* base */
--shadow: 0px 0px 4px #414559;
/* surface 0 */
}
body[theme=macchiatofalse] {
--inputbg: #6e738d;
/* overlay 0 */
--inputborder: #8087a2;
/* overlay 1 */
--uibg: #363a4f;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #24273a;
/* base */
--shadow: 0px 0px 4px #363a4f;
/* surface 0 */
}
body[theme=mochafalse] {
--inputbg: #6c7086;
/* overlay 0 */
--inputborder: #7f849c;
/* overlay 1 */
--uibg: #313244;
/* surface 0 */
--textcolor: #cdd6f4;
/* text */
--bg: #1e1e2e;
/* base */
--shadow: 0px 0px 4px #313244;
/* surface 0 */
}
body[theme=sunsetfalse] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: rgb(59, 67, 78);
/* https://wallhaven.cc/w/jxl3qp */
--shadow: 0px 0px 2px #a5dcf5;
}
body[theme=mountainsfalse] {
--inputbg: #d37f7f;
--inputborder: #e28a8a;
--uibg: #d38493;
--textcolor: #fff;
--bg: #bf7483;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #bba29b;
}
body[theme=vaporwavefalse] {
--inputbg: #4b2d64;
--inputborder: #74568d;
--uibg: #51166d;
--textcolor: #fff;
--bg: #61437a;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #000000;
}
body[theme=seraphfalse] {
--inputbg: #000;
--inputborder: #fff;
--uibg: #000;
--textcolor: #fff;
--bg: #222222;
/* seraph */
--shadow: 0px 0px 4px #fff;
}
body[theme=nighttimefalse] {
--inputbg: #29374d;
--inputborder: #fff;
--uibg: #29374d;
--textcolor: #fff;
--bg: #323853;
/* https://wallhaven.cc/w/l882py */
--shadow: 0px 0px 4px #fff;
}
body[theme=latte] {
--inputbg: #9ca0b0;
/* overlay 0 */
--inputborder: #8c8fa1;
/* overlay 1 */
--uibg: #ccd0da;
/* surface 0 */
--textcolor: #4c4f69;
/* text */
--bg: #eff1f5;
/* base */
--shadow: 0px 0px 4px #ccd0da;
/* surface 0 */
}
body[theme=frappe] {
--inputbg: #737994;
/* overlay 0 */
--inputborder: #838ba7;
/* overlay 1 */
--uibg: #414559;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #303446;
/* base */
--shadow: 0px 0px 4px #414559;
/* surface 0 */
}
body[theme=macchiato] {
--inputbg: #6e738d;
/* overlay 0 */
--inputborder: #8087a2;
/* overlay 1 */
--uibg: #363a4f;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #24273a;
/* base */
--shadow: 0px 0px 4px #363a4f;
/* surface 0 */
}
body[theme=mocha] {
--inputbg: #6c7086;
/* overlay 0 */
--inputborder: #7f849c;
/* overlay 1 */
--uibg: #313244;
/* surface 0 */
--textcolor: #cdd6f4;
/* text */
--bg: #1e1e2e;
/* base */
--shadow: 0px 0px 4px #313244;
/* surface 0 */
}
body[theme=sunset] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: url("/img/backgrounds/sunset_theme.jpg"), rgb(59, 67, 78);
/* https://wallhaven.cc/w/jxl3qp */
--shadow: 0px 0px 2px #a5dcf5;
}
body[theme=mountains] {
--inputbg: #d37f7f;
--inputborder: #e28a8a;
--uibg: #d38493;
--textcolor: #fff;
--bg: url("/img/backgrounds/mountains_theme.jpg"), #bf7483;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #bba29b;
}
body[theme=vaporwave] {
--inputbg: #4b2d64;
--inputborder: #74568d;
--uibg: #51166d;
--textcolor: #fff;
--bg: url("/img/backgrounds/vaporwave_theme.jpg"), #61437a;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #000000;
}
body[theme=seraph] {
--inputbg: #000;
--inputborder: #fff;
--uibg: #000;
--textcolor: #fff;
--bg: url("/img/backgrounds/seraph_theme.png"), #1c1a1e;
/* seraph */
--shadow: 0px 0px 4px #fff;
}
body[theme=nighttime] {
--inputbg: #29374d;
--inputborder: #fff;
--uibg: #29374d;
--textcolor: #fff;
--bg: url("/img/backgrounds/nighttime_theme.png"), #28272a;
/* https://wallhaven.cc/w/l882py */
--shadow: 0px 0px 4px #fff;
}

View File

@ -1,17 +0,0 @@
To Whom It may concern:
We hereby notify you on behalf of Microsoft Corporation, (“Microsoft Corporation”) that the following URL https://selenite.cc/semag/eaglercraft/index.html, https://selenite.cc/semag/1defense/index.html (the “URL”) which you are hosting contains content (the “Infringing Content”) which infringes the copyright, intellectual property rights, goodwill and reputation of Microsoft Corporation, including the following copyright (the “MINECRAFT Copyright”) owned by Microsoft Corporation, found on Microsoft Corporations website at https://www.minecraft.net/:
Copyright: MINECRAFT
The URLs Infringing Content constitutes an infringement of Microsoft Corporations intellectual property rights in the MINECRAFT Copyright. This damages the goodwill and reputation of Microsoft Corporation and causes consumer confusion as to whether the Infringing Content is authorized, endorsed, or sponsored by Microsoft Corporation when, in fact, it is not. Microsoft Corporation has an obligation to the public to police against any copyright infringing content which may cause marketplace confusion. Such actions by the URL dilute Microsoft Corporations MINECRAFT Copyright, harm its associated goodwill, and constitute, inter alia, a misappropriation and violation of the rights of Microsoft Corporation. This damage to its business entitles Microsoft Corporation to various forms of relief, including monetary compensation.
We represent under penalty of perjury that the information in this notice is true and correct, and that we are authorized to act on behalf of Microsoft Corporation as owner of the MINECRAFT Copyright. We have a good faith belief that this use of the Infringing Content in the URL is not authorized by Microsoft Corporation as the owner of the MINECRAFT Copyright or its agents, nor is such use permissible by law. Use of such Infringing Content in the URL is not defensible. We have notified the registrant and registrar of the URLs domain in writing of this matter.
Since you are hosting the URL containing the Infringing Content, we request that you immediately disable or suspend such URL without delay. We would appreciate your resolving this matter as soon as possible and confirming that you have done so within the next seven (7) days. Microsoft Corporation reserves the right to take whatever action it considers appropriate to protect its rights and nothing contained in this Notice is intended to constitute a waiver of any of Microsoft Corporations legal rights or remedies, all of which are hereby expressly reserved.
Please let us know if you need any additional information.
Sincerely,
[ REDACTED ]

0
favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

0
favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

88
home.html Executable file
View File

@ -0,0 +1,88 @@
<!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 property="og:title" content="Selenite" />
<meta property="description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta name="keywords" content="proxy, web proxy, unblock websites, unblock chromebook, free web proxy, proxy list, proxy sites, un block chromebook, online proxy, proxy server, proxysite, proxy youtube, bypass securly, bypass iboss, bypass lightspeed filter, chromebooks, unblock youtube, youtube proxy, unblocked youtube, youtube unblocked, unblock games, selenite, unblocked games, free games">
<meta content="/favicon.png" property="og:image" />
<meta content="#c77dff" data-react-helmet="true" name="theme-color" />
<meta name="googlebot" content="index, follow, snippet" />
<link rel="canonical" href="https://selenite.cc/" />
<meta property="og:description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta property="og:title" content="Selenite">
<meta property="og:type" content="website">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Selenite",
"alternateName": "selenite.cc",
"url": "https://selenite.cc",
"logo": "https://selenite.cc/favicon.png",
"sameAs": [
"https://github.com/selenite-cc",
"https://youtube.com/@selenitecc",
"https://tiktok.com/@selenitecc",
"https://selenite.cc",
]
}
</script>
<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>
<!-- initialize my stuff -->
<script src="/js/all.js"></script>
<script src="/js/main.js"></script>
<!-- <script src="/js/widget.js"></script> -->
<script>
document.addEventListener("DOMContentLoaded", () => {
setBackground();
fetch("/data/quotes.json")
.then((response) => response.json())
.then((data) => {
const randomQuote = data[Math.floor(Math.random() * data.length)];
if (randomQuote.includes("OGNUM1") && randomQuote.includes("SQRTNUM1")) {
const ognum = Math.floor(Math.random() * 3000);
randomQuote = `the square root of ${ognum} is ${Math.sqrt(ognum)}`;
} else if (randomQuote.includes("CURRENTURL")) {
randomQuote = window.location.hostname;
}
document.getElementById("randomquote").innerHTML = randomQuote;
})
.catch((error) => console.error("Error loading quotes:", error));
});
</script>
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/pages.css" />
<link rel="manifest" href="/manifest.json" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
</head>
<alerts> </alerts>
<body>
<h1 class="title">selenite.</h1>
<noscript>enable javascript if you want the games to actually load</noscript>
<p id="randomquote">better thank me for this unblocked website</p>
<div class="samerow">
<div class="img-container">
<a href="/users"><img src="img/user_index.svg" /></a>
</div>
<div class="img-container">
<a href="projects.html"><img src="img/games.svg" /></a>
</div>
<div class="img-container">
<a href="https://discord.gg/7jyufnwJNf"><img src="img/discord.svg" /></a>
</div>
</div>
</body>
</html>

0
img/addlink.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 368 B

1
img/apps.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M240-160q-33 0-56.5-23.5T160-240q0-33 23.5-56.5T240-320q33 0 56.5 23.5T320-240q0 33-23.5 56.5T240-160Zm240 0q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm240 0q-33 0-56.5-23.5T640-240q0-33 23.5-56.5T720-320q33 0 56.5 23.5T800-240q0 33-23.5 56.5T720-160ZM240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400ZM240-640q-33 0-56.5-23.5T160-720q0-33 23.5-56.5T240-800q33 0 56.5 23.5T320-720q0 33-23.5 56.5T240-640Zm240 0q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Zm240 0q-33 0-56.5-23.5T640-720q0-33 23.5-56.5T720-800q33 0 56.5 23.5T800-720q0 33-23.5 56.5T720-640Z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

0
img/backgrounds/compress images PLEASE Normal file → Executable file
View File

0
img/backgrounds/dogcat.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

0
img/backgrounds/mountains_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 333 KiB

After

Width:  |  Height:  |  Size: 333 KiB

0
img/backgrounds/nighttime_theme.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 317 KiB

0
img/backgrounds/seraph_theme.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 891 KiB

After

Width:  |  Height:  |  Size: 891 KiB

0
img/backgrounds/sunset_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

0
img/backgrounds/vaporwave_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

0
img/badges/banana.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

0
img/badges/dev.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

0
img/badges/donate.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
img/badges/mod.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
img/badges/owner.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
img/badges/partner.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
img/badges/trans.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 383 B

1
img/bookmarklets.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Zm80-122 200-86 200 86v-518H280v518Zm0-518h400-400Z"/></svg>

After

Width:  |  Height:  |  Size: 259 B

0
img/copy.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 340 B

0
img/discord.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
img/edit.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

0
img/friend.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

View File

@ -1,3 +1 @@
<svg width="1080" height="1080" xmlns="http://www.w3.org/2000/svg"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M189-160q-60 0-102.5-43T42-307q0-9 1-18t3-18l84-336q14-54 57-87.5t98-33.5h390q55 0 98 33.5t57 87.5l84 336q2 9 3.5 18.5T919-306q0 61-43.5 103.5T771-160q-42 0-78-22t-54-60l-28-58q-5-10-15-15t-21-5H385q-11 0-21 5t-15 15l-28 58q-18 38-54 60t-78 22Zm3-80q19 0 34.5-10t23.5-27l28-57q15-31 44-48.5t63-17.5h190q34 0 63 18t45 48l28 57q8 17 23.5 27t34.5 10q28 0 48-18.5t21-46.5q0 1-2-19l-84-335q-7-27-28-44t-49-17H285q-28 0-49.5 17T208-659l-84 335q-2 6-2 18 0 28 20.5 47t49.5 19Zm348-280q17 0 28.5-11.5T580-560q0-17-11.5-28.5T540-600q-17 0-28.5 11.5T500-560q0 17 11.5 28.5T540-520Zm80-80q17 0 28.5-11.5T660-640q0-17-11.5-28.5T620-680q-17 0-28.5 11.5T580-640q0 17 11.5 28.5T620-600Zm0 160q17 0 28.5-11.5T660-480q0-17-11.5-28.5T620-520q-17 0-28.5 11.5T580-480q0 17 11.5 28.5T620-440Zm80-80q17 0 28.5-11.5T740-560q0-17-11.5-28.5T700-600q-17 0-28.5 11.5T660-560q0 17 11.5 28.5T700-520Zm-360 60q13 0 21.5-8.5T370-490v-40h40q13 0 21.5-8.5T440-560q0-13-8.5-21.5T410-590h-40v-40q0-13-8.5-21.5T340-660q-13 0-21.5 8.5T310-630v40h-40q-13 0-21.5 8.5T240-560q0 13 8.5 21.5T270-530h40v40q0 13 8.5 21.5T340-460Zm140-20Z"/></svg>
<image href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAACpUlEQVR42u2aO08UURiGT6MNuMslJoSOhp5rIpJg4i8gIYGFAhujFaWCcvkRxgaK5VISqPQXyIKthoJCQ8ImJLBbkKBRLsljh6Lu7veduZ3ie+o577zPZmfmzDnjnGEYhmEYhmEYhmEYIsgxxgolDrkgLi44pMQKY+SSLd9NkUuS5JIi3cmUb2KZa9LgmmWa4q7fwwFpckBPnPWHOCdtzhmKq/4AZ2TBGQNx1M9zRFYckY8uUCRLilHrD5M1w9EEtjMX2I5SvyulO3/9p0KXv8BM5vUBZvwFNhun3xwrp0yBDjooUBYdv+kvcJyAQJn2mzHtIoVj3/ptkj5qgcKtcxREY9r8BAYTEei8dY5O0ZhBP4HJYAQm/QSWgvkLLfkJbCQioL+IYcNPYC8RAf1tFPb8BKr1CjccHSdVn/qt9X/xVAWgVS8wEJSA/tWm1v0hI4GCXmBRlhxDYclFvagXWE9JQHZbXdcL7KYkIHuw7eoFKikJyKYWFW39Fun5UxKAFp1Af2oC0rlRv05gIjUB6dxoQiewkJqAdG60oBNYIzTWdAKl4ARKOoHT4ARONfXzwdUHFAu99AUp0CcXGA9SYFwuMB+kwLxcYDVIgVW5wE6QAjtygZMgBU6k9XNB1geE+/j0BivQKxMY9YhWL/7JFi7/YlQWPaUO1r9y+ylMyYKnlbELzhO1wrQs9qEq9LWLgFJB9vEBzVyJI1+5iCgUrmiWhkp3h+dcDIgVtuSRI6LAWRcTQoURTWTj2dBLFyMCBd1XE+T4XDfuhYuZBgqfuKcNbONjjbCfPHEJwPOa3+PteewPOMdd5vj+T9gH5RKT5owP/rOt9Y1Z7vhH3ucZ7/nKBRX2ecMjlzA85i37VPnBF97x9Peyl2EYhmEYhmEYhmEYf/ILpJ54reMDuewAAAAASUVORK5CYII=" height="1080" width="1080" />
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

1
img/home.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z"/></svg>

After

Width:  |  Height:  |  Size: 243 B

1
img/open.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z"/></svg>

After

Width:  |  Height:  |  Size: 300 B

0
img/pfps/3kh0.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

0
img/pfps/astra.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

0
img/pfps/awesome.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
img/pfps/ayo.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
img/pfps/buttsfart.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
img/pfps/caidn.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/compass.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

0
img/pfps/dire.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
img/pfps/legalise.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

0
img/pfps/lunar.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
img/pfps/math.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

0
img/pfps/night.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/ocular.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
img/pfps/shadow.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/sky.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

0
img/pfps/snor.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
img/pfps/ultra.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

0
img/pfps/wrnd.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1023 KiB

After

Width:  |  Height:  |  Size: 1023 KiB

0
img/selenite192.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

0
img/selenite512.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 222 KiB

1
img/settings.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z"/></svg>

After

Width:  |  Height:  |  Size: 772 B

0
img/star-fill.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 367 B

0
img/star.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 617 B

0
img/user.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 751 B

0
img/user_index.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 548 B

107
index.html Normal file → Executable file
View File

@ -32,75 +32,62 @@
] ]
} }
</script> </script>
<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>
<!-- initialize my stuff --> <!-- initialize my stuff -->
<script src="/js/all.min.js"></script> <script src="/js/all.js"></script>
<script src="/js/main.js"></script>
<script src="/js/widget.js"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
fetch("/data/quotes.json")
.then((response) => response.json())
.then((data) => {
const randomQuote = data[Math.floor(Math.random() * data.length)];
if (randomQuote.includes("OGNUM1") && randomQuote.includes("SQRTNUM1")) { <link rel="stylesheet" href="/css/main.css" />
const ognum = Math.floor(Math.random() * 3000); <link rel="stylesheet" href="/css/sidebar.css" />
randomQuote = `the square root of ${ognum} is ${Math.sqrt(ognum)}`;
} else if (randomQuote.includes("CURRENTURL")) {
randomQuote = window.location.hostname;
}
document.getElementById("randomquote").innerHTML = randomQuote;
})
.catch((error) => console.error("Error loading quotes:", error));
});
</script>
<link rel="stylesheet" href="/style.css" />
<link rel="manifest" href="/manifest.json" /> <link rel="manifest" href="/manifest.json" />
<!-- seo + other things --> <!-- seo + other things -->
<title>Selenite</title> <title>Selenite</title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", ()=>{
document.getElementById("iframe").addEventListener("load", () => {
document.getElementById("iframe").contentWindow.addEventListener("beforeunload", () => {
alert("unloading! show loading bar")
})
});
document.querySelectorAll(".sidebar-item").forEach((item) => {
if(item.childNodes[0].target) {
item.childNodes[0].addEventListener("click", (e)=>{
console.log("created event listneer")
e.preventDefault();
document.getElementById("iframe").src = item.childNodes[0].target;
})
} else if(item.childNodes[0].id == "openblank") {
item.childNodes[0].addEventListener("click", (e)=>{
e.preventDefault();
win = window.open();
win.document.body.style.margin = "0";
win.document.body.style.height = "100vh";
html = `<style>*{margin:0;padding:0;border:none;height:100vh;width:100vw}</style><iframe src=${location.href}></iframe>`;
win.document.querySelector("html").innerHTML = html;
location.href = "https://google.com";
window.close();
})
}
})
})
</script>
</head> </head>
<alerts> </alerts> <body>
<body id="noscroll"> <iframe id="iframe" src="home.html"></iframe>
<header> <!-- to do
<a href="/index.html">Home</a> add colors -->
<a href="/bookmarklets.html">Bookmarklets</a> <sidebar>
<a href="/projects.html" title="Games (Unblocked)">Games</a> <div class="sidebar-item"><a href="#" target="/home"><img src="/img/home.svg" /></a><div class="sidebar-item-descriptor">home</div></div> <!-- home -->
<a href="/apps.html">Apps</a> <div class="sidebar-item"><a href="#" target="/projects"><img src="/img/games.svg" /></a><div class="sidebar-item-descriptor">games</div></div> <!-- games -->
<a href="/settings.html">Settings</a> <div class="sidebar-item"><a href="#" target="/apps"><img src="/img/apps.svg" /></a><div class="sidebar-item-descriptor">apps</div></div> <!-- apps -->
<a id="blank" href="#">Open Blank</a> <div class="sidebar-item"><a href="#" target="/bookmarklets"><img src="/img/bookmarklets.svg" /></a><div class="sidebar-item-descriptor">bookmarklets</div></div> <!-- reload -->
<a href="/u/" class="usericon"><img src="/img/user.svg" /></a> <div class="sidebar-item"><a href="#" id="openblank"><img src="/img/open.svg" /></a><div class="sidebar-item-descriptor">open blank</div></div> <!-- open blank -->
</header> <div class="sidebar-divider"></div>
<main id="main" class="noscroll"> <div class="sidebar-item"><a href="#" target="/u/"><img src="/img/user.svg" /></a><div class="sidebar-item-descriptor">user profile</div></div> <!-- user -->
<b style="font-weight: 1000px"><h1 class="chan">selenite.</h1></b> <div class="sidebar-item"><a href="#" target="/settings"><img src="/img/settings.svg" /></a><div class="sidebar-item-descriptor">settings</div></div> <!-- settings -->
<noscript>enable javascript if you want the games to actually load</noscript> </sidebar>
<p id="randomquote">better thank me for this unblocked website</p>
<div class="samerow">
<div class="img-container">
<a href="/users"><img src="img/user_index.svg" /></a>
</div>
<div class="img-container">
<a href="projects.html"><img src="img/games.svg" /></a>
</div>
<div class="img-container">
<a href="https://discord.gg/7jyufnwJNf"><img src="img/discord.svg" /></a>
</div>
</div>
</main>
<footer class="noscroll">
<a href="gitlab.com/skysthelimit.dev/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>
</body> </body>
</html> </html>

View File

@ -1,55 +0,0 @@
const express = require('express');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000;
app.use(express.static(__dirname));
app.get('/projects', (req, res) => {
res.sendFile(path.join(__dirname, 'projects.html'));
});
app.get('/bookmarklets', (req, res) => {
res.sendFile(path.join(__dirname, 'bookmarklets.html'));
});
app.get('/settings', (req, res) => {
res.sendFile(path.join(__dirname, 'settings.html'));
});
app.get('/support', (req, res) => {
res.sendFile(path.join(__dirname, 'support.html'));
});
app.get('/about', (req, res) => {
res.sendFile(path.join(__dirname, 'about.html'));
});
app.get('/transfer', (req, res) => {
res.sendFile(path.join(__dirname, 'transfer.html'));
});
app.get('/suggest', (req, res) => {
res.sendFile(path.join(__dirname, 'suggest.html'));
});
app.get('/contact', (req, res) => {
res.sendFile(path.join(__dirname, 'contact.html'));
});
app.get('/ad', (req, res) => {
res.sendFile(path.join(__dirname, 'ad.html'));
});
app.get('/blank', (req, res) => {
res.sendFile(path.join(__dirname, 'blank.html'));
});
app.get('/backgrounds', (req, res) => {
res.sendFile(path.join(__dirname, 'backgrounds.html'));
});
app.listen(port, () => {
console.log(`Selenite is running on port ${port}`);
});

0
js/all.js Normal file → Executable file
View File

0
js/all.min.js vendored Normal file → Executable file
View File

0
js/analytics.js Normal file → Executable file
View File

0
js/apps.js Normal file → Executable file
View File

0
js/asteroids.js Normal file → Executable file
View File

0
js/bootstrap.css vendored Normal file → Executable file
View File

0
js/bootstrap.min.css vendored Normal file → Executable file
View File

0
js/cloaks.js Normal file → Executable file
View File

0
js/cookie.js Normal file → Executable file
View File

0
js/cookieConsent.css Normal file → Executable file
View File

0
js/cookieConsent.js Normal file → Executable file
View File

0
js/debug.js Normal file → Executable file
View File

0
js/dogeminersave.txt Normal file → Executable file
View File

250
js/games.js Normal file → Executable file
View File

@ -1,199 +1,53 @@
$.getJSON("/data/games.json", function (data) { document.addEventListener("DOMContentLoaded", loadGames);
if (document.readyState === "complete") { let elements = [];
loadGames(data); async function loadGames() {
} else { // taken from mdn
let areGamesReady = setInterval(() => { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
if (document.readyState === "complete") { let data = await (await fetch("/data/games.json")).json();
loadGames(data); sorted = data.sort((a, b) => {
clearInterval(areGamesReady); const n1 = a.name.toUpperCase();
} const n2 = b.name.toUpperCase();
}, 50); if (n1 < n2) {
} return -1;
}); }
if (n1 > n2) {
function loadGames(data) { return 1;
starredgames = getCookie("starred"); }
if (!starredgames) { // shouldnt happen but just incase
starredgames = []; return 0;
} else { });
starredgames = JSON.parse(decodeURIComponent(getCookie("starred"))); let gamesElement = document.getElementById("games");
} sorted.forEach(element => {
$("#gamesearch").prop({ let newElement = document.createElement("game");
placeholder: "Click here to search through our " + data.length + " games!", newElement.setAttribute("data-target", element.directory);
}); let image = document.createElement("img");
data.sort(dynamicSort("name")); image.src = `/semag/${element.directory}/${element.image}`
gamelist = data; let title = document.createElement("h1");
for (let i = 0; i < data.length; i++) { title.innerText = element.name;
let $element = $("<a>") newElement.appendChild(image);
.attr({ newElement.appendChild(title);
class: "game", gamesElement.appendChild(newElement);
id: data[i].directory, newElement.addEventListener("click", ()=>{
recommended: data[i].recommended, location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}`
// href: "loader.html#" + btoa(encodeURIComponent(JSON.stringify([data[i].directory, data[i].image, data[i].name]))), })
href: "semag/" + data[i].directory + "/index.html", elements.push(newElement);
}) });
.data("recommended", data[i].recommended)
.append(
$("<img>").prop({
src: "semag/" + data[i].directory + "/" + data[i].image,
alt: data[i].name + " logo",
loading: "lazy"
})
)
.append($("<h1>").text(data[i].name))
.append(
$("<img>").prop({
src: "img/star.svg",
alt: "star",
class: "star",
})
);
if (starredgames.includes(data[i].directory)) {
$element.find("img.star").attr("id", "starred");
$element.find("img.star").attr("src", "img/star-fill.svg");
let $pinnedelement = $element.clone();
$("#pinned").append($pinnedelement);
if ($("#pinnedmessage")) {
$("#pinnedmessage").hide();
}
}
$("#games").append($element);
}
$("#games #message").remove();
if ((search = 1)) {
var txt = $("#gamesearch").val();
if (txt == "") {
$("#games .suggest").show();
} else {
$("#games .suggest").hide();
}
$("#games .game").hide();
$("#games .game").each(function () {
if ($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1 || $(this).attr("id").toUpperCase().indexOf(txt.toUpperCase()) != -1) {
$(this).show();
}
});
}
// starred games
let starred;
$(document).on("click", "img.star", function (event) {
});
$(document).on("click", ".game", function (event) {
if ($(event.target).is("img.star")) {
event.preventDefault();
event.stopPropagation();
if (!$(event.target).attr("id")) {
$(event.target).prop({ id: "starred" });
$(event.target).prop({ src: "img/star-fill.svg" });
starred = Cookies.get("starred");
if (starred) {
starred = JSON.parse(starred);
} else {
starred = [];
}
starred.push($(this).attr("id"));
Cookies.set("starred", JSON.stringify(starred));
$element = $(this).clone();
$("#pinned").append($element);
$("#pinnedmessage").hide();
temp = $("#pinned")[0].childNodes;
pinnedarray = [...temp];
pinnedarray.sort(dynamicSort("id"));
$("#pinned").empty();
for (let i = 0; i < pinnedarray.length; i++) {
pinnedarraynodes = pinnedarray[i].childNodes;
pinnedarraynodes = [...pinnedarraynodes];
let $element = $("<div>")
.prop({
class: "game",
id: pinnedarray[i].id,
})
.append(
$("<img>").prop({
src: pinnedarraynodes[0].src,
alt: pinnedarraynodes[0].alt,
class: "gameicon",
})
)
.append($("<h1>").text(pinnedarraynodes[1].innerHTML))
.append(
$("<img>").prop({
src: "img/star-fill.svg",
alt: "star",
class: "star",
id: "starred",
})
);
$("#pinned").append($element);
}
} else {
$(event.target).removeAttr("id");
$(event.target).attr("src", "img/star.svg");
$thisdiv = "#" + $(this).attr("id");
$thisdiv = $thisdiv.replace(".", "\\.");
starred = Cookies.get("starred");
starred = JSON.parse(starred);
ourindex = starred.indexOf($(this).attr("id"));
starred.splice(ourindex, 1);
Cookies.set("starred", JSON.stringify(starred));
$("#pinned " + $thisdiv).remove();
if ($("#pinned").is(":empty")) {
$("#pinnedmessage").show();
}
$($thisdiv + " #starred").attr("src", "img/star.svg");
$($thisdiv + " #starred").removeAttr("id");
}
}
});
$(document).on("click", "#game img .star", function (event) {
event.stopPropagation();
$(this).prop({ class: "material-symbols-outlined fill" });
});
}
function redirectGame(dir) {
window.location.href = window.location.origin + "/semag/" + dir + "/index.html";
}
function dynamicSort(property) {
var sortOrder = 1;
if (property[0] === "-") {
sortOrder = -1;
property = property.substr(1);
}
return function (a, b) {
if (sortOrder == -1) {
return b[property].localeCompare(a[property]);
} else {
return a[property].localeCompare(b[property]);
}
};
}
function selectRandomGame() {
redirectGame(gamelist[Math.floor(Math.random() * gamelist.length - 1)].directory);
}
let viewrecommended = 0;
function recommendedGames() {
if (viewrecommended == 0) {
$("#games .game").hide();
$("#games .game").each(function () {
if ($(this).attr("recommended")) {
$(this).show();
}
});
$("#recommend").text("Click to view all games again!");
viewrecommended = 1;
} else {
$("#games .game").hide();
$("#games .game").show();
viewrecommended = 0;
$("#recommend").text("Click to view recommended games!");
}
} }
document.addEventListener("DOMContentLoaded", ()=>{
document.getElementById("gamesearch").addEventListener("input", ()=>{
let input = document.getElementById("gamesearch").value.toUpperCase();
let total = 0;
if(elements.length > 0) {
elements.forEach((element) => {
let title = element.childNodes[1].innerText.toUpperCase();
if(title.includes(input)) {
element.style.display = "flex";
} else {
element.style.display = "none";
total++;
}
})
}
document.getElementById("noResults").style.display = total >= elements.length ? "flex" : "none"
})
})

0
js/katamari.js Normal file → Executable file
View File

368
js/main.js Normal file → Executable file
View File

@ -1,164 +1,212 @@
var interval; function setBackground() {
document.addEventListener("DOMContentLoaded", function () { let randomNumbers = [100-Math.abs(Math.floor(Math.random() * 200) - 99), 100-Math.abs(Math.floor(Math.random() * 200) - 99)];
if (localStorage.getItem("theme")) { document.body.style.setProperty("--gradient-x", randomNumbers[0] + "%");
localStorage.setItem("selenite.theme", localStorage.getItem("theme")); document.body.style.setProperty("--gradient-y", randomNumbers[1] + "%");
localStorage.removeItem("theme"); setTimeout(setBackground, 30000)
} }
if (localStorage.getItem("selenite.theme")) { function loadPJS() {
document.body.setAttribute("theme", localStorage.getItem("selenite.theme")); let div = document.createElement("div");
} else { div.id = "particles-js";
document.body.setAttribute("theme", "main"); document.body.appendChild(div);
} let script = document.createElement("script");
if (document.querySelectorAll("[id=adcontainer]")) { script.src = "https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js";
for (let i = 0; i < document.querySelectorAll("[id=adcontainer]").length; i++) { document.head.appendChild(script);
if (Math.random() < 0.5 || localStorage.getItem("selenite.adblock") == "true") document.querySelectorAll("[id=adcontainer]")[i].innerHTML = ""; script.addEventListener("load", ()=>{
} particlesJS.load('particles-js', "js/particlesjs-config.json", ()=>{});
}
const iconSetting = document.querySelector("input#discordIcon");
const blockClose = document.querySelector("input#blockClose");
const openBlank = document.getElementById("blank");
const bgTheme = document.querySelector("input#bgTheme");
// if (document.querySelector("widgetbot-crate")) {
// if (localStorage.getItem("selenite.discordIcon") == "true") {
// const widget = document.querySelector("widgetbot-crate");
// widget.setAttribute("style", "display:none");
// }
// }
if (document.querySelector("input#discordIcon")) {
if (localStorage.getItem("selenite.discordIcon") == "true") {
iconSetting.checked = true;
}
iconSetting.addEventListener("click", () => {
localStorage.setItem("selenite.discordIcon", iconSetting.checked);
});
}
if (document.querySelector("input#blockClose")) {
if (localStorage.getItem("selenite.blockClose") == "true") {
blockClose.checked = true;
}
blockClose.addEventListener("click", () => {
localStorage.setItem("selenite.blockClose", blockClose.checked);
});
}
if (document.querySelector("input#tabDisguise")) {
if (localStorage.getItem("selenite.tabDisguise") == "true") {
tabDisguise.checked = true;
}
tabDisguise.addEventListener("click", () => {
localStorage.setItem("selenite.tabDisguise", tabDisguise.checked);
});
}
if (document.querySelector("input#bgTheme")) {
bgTheme.checked = true;
}
document.getElementById("blank").addEventListener("click", () => {
win = window.open();
win.document.body.style.margin = "0";
win.document.body.style.height = "100vh";
html = `
<style>*{margin:0;padding:0;border:none}body,iframe{height:100vh;width:100vw}iframe{height:96vh}header{display:flex;height:4vh;justify-content:center;}button{margin-right:100px;height:100%;aspect-ratio: 1 / 1}#reload{background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z'/%3E%3C/svg%3E");background-size:cover;}#goBack{background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z'/%3E%3C/svg%3E");background-size:cover;}</style><script>
</script><header><button id=goBack></button><button id=reload></button></header><iframe id=selenite></iframe>`;
win.document.querySelector("html").innerHTML = html;
win.eval(`let selenite = document.getElementById("selenite");console.log(selenite);selenite.setAttribute("src", "${location.origin}");console.log(selenite);document.getElementById("goBack").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.origin;});document.getElementById("reload").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.href;})`);
location.href = "https://google.com";
close();
}); });
if ($("#panicmode").length > 0) {
$("#panicmode").prop({ href: panicurl });
}
if ($(".seleniteminified").length > 0) {
$.get("https://raw.githubusercontent.com/skysthelimitt/selenite-optimized/main/build/bookmark.txt", function (data) {
$(".seleniteminified").prop({ href: data });
});
$.get("https://raw.githubusercontent.com/car-axle-client/car-axle-client/v10/dist/build.js", function (data) {
$(".caraxle").prop({ href: `javascript:${encodeURI(data)}` });
});
}
});
function setPanicMode() {
if (!$("#panic").val().startsWith("https")) {
document.cookie = "panicurl=https://" + $("#panic").val();
return;
}
document.cookie = "panicurl=" + $("#panic").val();
}
function copyToClipboard(text) {
navigator.clipboard.writeText(text);
alert("Copied text!");
}
function setTheme(theme) {
localStorage.setItem("selenite.theme", theme);
document.body.setAttribute("theme", theme);
if (theme != "custom") {
document.getElementById("customMenu").style.display = "none";
document.body.style = "";
}
}
function setPanicMode() {
if (!$("#panic").val().startsWith("https")) {
document.cookie = "panicurl=https://" + $("#panic").val();
return;
}
document.cookie = "panicurl=" + $("#panic").val();
}
function setPassword() {
localStorage.setItem("selenite.password", enc.encode(document.getElementById("pass").value));
}
function delPassword() {
location.hash = "";
localStorage.removeItem("selenite.passwordAtt");
localStorage.removeItem("selenite.password");
} }
$(document).ready(function () { function cursor() {
if (!window.location.href.startsWith("about:")) { let cursor = document.createElement("div");
$("#webicon").attr("placeholder", window.location.href.replace(/\/[^\/]*$/, "/")); cursor.style.width = "30px";
} cursor.style.height = "30px";
}); cursor.style.backgroundColor = "var(--color-1)";
function loadScript(a, b) { cursor.style.position = "absolute";
var c = document.createElement("script"); cursor.style.borderRadius = "100%";
(c.type = "text/javascript"), (c.src = a), (c.onload = b), document.head.appendChild(c); // cursor.style.filter = "blur(40px)";
cursor.style.pointerEvents = "none";
document.body.appendChild(cursor);
document.addEventListener("mousemove", (e) => {
cursor.style.top = `${e.clientY - 15}px`;
cursor.style.left = `${e.clientX - 15}px`;
})
} }
function toast(message, onclick) {
const toast = document.createElement("div"); document.addEventListener("DOMContentLoaded", ()=>{
toast.setAttribute("id", "toast"); setBackground();
console.log(message.time); loadPJS();
toast.innerHTML = `<div class=samerow><h1>${message.title}${message.time ? ` - ${timeAgo(new Date(message.time * 1000))}` : ""}</h1></div><p>${message.message}</p>`; cursor();
toast.style.animation = "toastFade 6s"; })
document.body.appendChild(toast);
if (onclick) { document.addEventListener("scroll", ()=>{
toast.addEventListener("click", onclick); console.log("scroll");
toast.style.cursor = "pointer"; document.getElementById("particles-js").style.top = window.scrollY + "px";
} })
setTimeout(() => {
toast.remove();
}, 6000);
}
function timeAgo(input) { // var interval;
const date = input instanceof Date ? input : new Date(input); // document.addEventListener("DOMContentLoaded", function () {
const formatter = new Intl.RelativeTimeFormat("en"); // if (localStorage.getItem("theme")) {
const ranges = { // localStorage.setItem("selenite.theme", localStorage.getItem("theme"));
years: 3600 * 24 * 365, // localStorage.removeItem("theme");
months: 3600 * 24 * 30, // }
weeks: 3600 * 24 * 7, // if (localStorage.getItem("selenite.theme")) {
days: 3600 * 24, // document.body.setAttribute("theme", localStorage.getItem("selenite.theme"));
hours: 3600, // } else {
minutes: 60, // document.body.setAttribute("theme", "main");
seconds: 1, // }
}; // if (document.querySelectorAll("[id=adcontainer]")) {
const secondsElapsed = (date.getTime() - Date.now()) / 1000; // for (let i = 0; i < document.querySelectorAll("[id=adcontainer]").length; i++) {
for (let key in ranges) { // if (Math.random() < 0.5 || localStorage.getItem("selenite.adblock") == "true") document.querySelectorAll("[id=adcontainer]")[i].innerHTML = "";
if (ranges[key] < Math.abs(secondsElapsed)) { // }
const delta = secondsElapsed / ranges[key]; // }
return formatter.format(Math.round(delta), key); // const iconSetting = document.querySelector("input#discordIcon");
} // const blockClose = document.querySelector("input#blockClose");
} // const openBlank = document.getElementById("blank");
} // const bgTheme = document.querySelector("input#bgTheme");
let cookieConsentScript = document.createElement("script"); // // if (document.querySelector("widgetbot-crate")) {
cookieConsentScript.src = "/js/cookieConsent.js"; // // if (localStorage.getItem("selenite.discordIcon") == "true") {
document.head.appendChild(cookieConsentScript); // // const widget = document.querySelector("widgetbot-crate");
let cookieConsentStyle = document.createElement("link"); // // widget.setAttribute("style", "display:none");
cookieConsentStyle.href = "/js/cookieConsent.css"; // // }
cookieConsentStyle.rel = "stylesheet"; // // }
document.head.appendChild(cookieConsentStyle); // if (document.querySelector("input#discordIcon")) {
// if (localStorage.getItem("selenite.discordIcon") == "true") {
// iconSetting.checked = true;
// }
// iconSetting.addEventListener("click", () => {
// localStorage.setItem("selenite.discordIcon", iconSetting.checked);
// });
// }
// if (document.querySelector("input#blockClose")) {
// if (localStorage.getItem("selenite.blockClose") == "true") {
// blockClose.checked = true;
// }
// blockClose.addEventListener("click", () => {
// localStorage.setItem("selenite.blockClose", blockClose.checked);
// });
// }
// if (document.querySelector("input#tabDisguise")) {
// if (localStorage.getItem("selenite.tabDisguise") == "true") {
// tabDisguise.checked = true;
// }
// tabDisguise.addEventListener("click", () => {
// localStorage.setItem("selenite.tabDisguise", tabDisguise.checked);
// });
// }
// if (document.querySelector("input#bgTheme")) {
// bgTheme.checked = true;
// }
// document.getElementById("blank").addEventListener("click", () => {
// win = window.open();
// win.document.body.style.margin = "0";
// win.document.body.style.height = "100vh";
// html = `
// <style>*{margin:0;padding:0;border:none}body,iframe{height:100vh;width:100vw}iframe{height:96vh}header{display:flex;height:4vh;justify-content:center;}button{margin-right:100px;height:100%;aspect-ratio: 1 / 1}#reload{background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z'/%3E%3C/svg%3E");background-size:cover;}#goBack{background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 -960 960 960' width='24'%3E%3Cpath d='M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z'/%3E%3C/svg%3E");background-size:cover;}</style><script>
// </script><header><button id=goBack></button><button id=reload></button></header><iframe id=selenite></iframe>`;
// win.document.querySelector("html").innerHTML = html;
// win.eval(`let selenite = document.getElementById("selenite");console.log(selenite);selenite.setAttribute("src", "${location.origin}");console.log(selenite);document.getElementById("goBack").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.origin;});document.getElementById("reload").addEventListener("click", function () {selenite.contentDocument.location.href = selenite.contentDocument.location.href;})`);
// location.href = "https://google.com";
// close();
// });
// if ($("#panicmode").length > 0) {
// $("#panicmode").prop({ href: panicurl });
// }
// if ($(".seleniteminified").length > 0) {
// $.get("https://raw.githubusercontent.com/skysthelimitt/selenite-optimized/main/build/bookmark.txt", function (data) {
// $(".seleniteminified").prop({ href: data });
// });
// $.get("https://raw.githubusercontent.com/car-axle-client/car-axle-client/v10/dist/build.js", function (data) {
// $(".caraxle").prop({ href: `javascript:${encodeURI(data)}` });
// });
// }
// });
// function setPanicMode() {
// if (!$("#panic").val().startsWith("https")) {
// document.cookie = "panicurl=https://" + $("#panic").val();
// return;
// }
// document.cookie = "panicurl=" + $("#panic").val();
// }
// function copyToClipboard(text) {
// navigator.clipboard.writeText(text);
// alert("Copied text!");
// }
// function setTheme(theme) {
// localStorage.setItem("selenite.theme", theme);
// document.body.setAttribute("theme", theme);
// if (theme != "custom") {
// document.getElementById("customMenu").style.display = "none";
// document.body.style = "";
// }
// }
// function setPanicMode() {
// if (!$("#panic").val().startsWith("https")) {
// document.cookie = "panicurl=https://" + $("#panic").val();
// return;
// }
// document.cookie = "panicurl=" + $("#panic").val();
// }
// function setPassword() {
// localStorage.setItem("selenite.password", enc.encode(document.getElementById("pass").value));
// }
// function delPassword() {
// location.hash = "";
// localStorage.removeItem("selenite.passwordAtt");
// localStorage.removeItem("selenite.password");
// }
// $(document).ready(function () {
// if (!window.location.href.startsWith("about:")) {
// $("#webicon").attr("placeholder", window.location.href.replace(/\/[^\/]*$/, "/"));
// }
// });
// function loadScript(a, b) {
// var c = document.createElement("script");
// (c.type = "text/javascript"), (c.src = a), (c.onload = b), document.head.appendChild(c);
// }
// function toast(message, onclick) {
// const toast = document.createElement("div");
// toast.setAttribute("id", "toast");
// console.log(message.time);
// toast.innerHTML = `<div class=samerow><h1>${message.title}${message.time ? ` - ${timeAgo(new Date(message.time * 1000))}` : ""}</h1></div><p>${message.message}</p>`;
// toast.style.animation = "toastFade 6s";
// document.body.appendChild(toast);
// if (onclick) {
// toast.addEventListener("click", onclick);
// toast.style.cursor = "pointer";
// }
// setTimeout(() => {
// toast.remove();
// }, 6000);
// }
// 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);
// }
// }
// }
// let cookieConsentScript = document.createElement("script");
// cookieConsentScript.src = "/js/cookieConsent.js";
// document.head.appendChild(cookieConsentScript);
// let cookieConsentStyle = document.createElement("link");
// cookieConsentStyle.href = "/js/cookieConsent.css";
// cookieConsentStyle.rel = "stylesheet";
// document.head.appendChild(cookieConsentStyle);

0
js/oldstuff.js Normal file → Executable file
View File

105
js/particlesjs-config.json Executable file
View File

@ -0,0 +1,105 @@
{
"particles": {
"number": {
"value": 100,
"density": {
"enable": true,
"value_area": 800
}
},
"color": {
"value": "#ffffff"
},
"shape": {
"type": "circle",
"stroke": {
"width": 0,
"color": "#000000"
},
"polygon": {
"nb_sides": 1
}
},
"opacity": {
"value": 1,
"random": true,
"anim": {
"enable": true,
"speed": 1,
"opacity_min": 0,
"sync": false
}
},
"size": {
"value": 5,
"random": true,
"anim": {
"enable": true,
"speed": 1,
"size_min": 0.3,
"sync": false
}
},
"line_linked": {
"enable": false,
"distance": 150,
"color": "#ffffff",
"opacity": 0.4,
"width": 1
},
"move": {
"enable": true,
"speed": 0.4,
"direction": "bottom",
"random": true,
"straight": false,
"out_mode": "out",
"bounce": false,
"attract": {
"enable": true,
"rotateX": 5000,
"rotateY": 5000
}
}
},
"interactivity": {
"detect_on": "window",
"events": {
"onhover": {
"enable": true,
"mode": "grab"
},
"onclick": {
"enable": false,
"mode": "repulse"
},
"resize": true
},
"modes": {
"grab": {
"distance": 200,
"line_linked": {
"opacity": 0.3
}
},
"bubble": {
"distance": 250,
"size": 0,
"duration": 2,
"opacity": 0,
"speed": 3
},
"repulse": {
"distance": 50,
"duration": 1
},
"push": {
"particles_nb": 4
},
"remove": {
"particles_nb": 2
}
}
},
"retina_detect": true
}

0
js/savedownload.js Normal file → Executable file
View File

0
js/search.js Normal file → Executable file
View File

0
js/themes.js Normal file → Executable file
View File

0
js/ultimatetabcloak.js Normal file → Executable file
View File

0
js/uploaddownload.js Normal file → Executable file
View File

0
js/widget.js Normal file → Executable file
View File

62
loader.html Normal file → Executable file
View File

@ -16,62 +16,44 @@
<script src="/js/main.js"></script> <script src="/js/main.js"></script>
<script> <script>
document.addEventListener("DOMContentLoaded", () => { document.addEventListener("DOMContentLoaded", () => {
if (document.location.hash) { if (location.search != "") {
let game = JSON.parse(decodeURIComponent(atob(document.location.hash.substring(1)))); let items = {};
document.getElementById("gameFrame").setAttribute("src", `/semag/${game[0]}/index.html`); location.search.substr(1).split("&").forEach((e)=>{
document.getElementById("gameImage").setAttribute("src", `/semag/${game[0]}/${decodeURIComponent(game[1])}`); items[e.split("=")[0]] = e.split("=")[1]
document.getElementById("gameName").innerText = game[2]; });
localStorage.setItem("selenite.lastGame", document.location.hash.substring(1)) document.getElementById("gameFrame").setAttribute("src", `/semag/${items.dir}/index.html`);
document.location.hash = ''; document.getElementById("gameImage").setAttribute("src", `/semag/${items.dir}/${items.img}`);
document.getElementById("gameName").innerText = decodeURIComponent(items.title);
console.log(items);
} else if(localStorage.getItem("selenite.lastGame")) { } else if(localStorage.getItem("selenite.lastGame")) {
let game = JSON.parse(decodeURIComponent(atob(localStorage.getItem("selenite.lastGame")))); let game = JSON.parse(decodeURIComponent(atob(localStorage.getItem("selenite.lastGame"))));
document.getElementById("gameFrame").setAttribute("src", `/semag/${game[0]}/index.html`); document.getElementById("gameFrame").setAttribute("src", `/semag/${game[0]}/index.html`);
document.getElementById("gameImage").setAttribute("src", `/semag/${game[0]}/${decodeURIComponent(game[1])}`); document.getElementById("gameImage").setAttribute("src", `/semag/${game[0]}/${decodeURIComponent(game[1])}`);
document.getElementById("gameName").innerText = game[2]; document.getElementById("gameName").innerText = game[2];
} }
document.getElementById("fullscreen").addEventListener("click", () => { // document.getElementById("fullscreen").addEventListener("click", () => {
}) // })
}); });
</script> </script>
<link rel="stylesheet" href="/style.css" /> <link rel="stylesheet" href="/css/main.css" />
<link rel="manifest" href="/manifest.json" /> <link rel="stylesheet" href="/css/pages.css" />
<link rel="stylesheet" href="/css/loader.css" />
<!-- seo + other things --> <!-- seo + other things -->
<title>Selenite</title> <title>Selenite</title>
<link rel="icon" href="/favicon.ico" /> <link rel="icon" href="/favicon.ico" />
</head> </head>
<alerts> </alerts>
<body> <body>
<header> <div id="gamecontainer">
<a href="/index.html">Home</a> <iframe id="gameFrame" allow="fullscreen" sandbox="allow-downloads allow-forms allow-modals allow-pointer-lock allow-scripts allow-same-origin"></iframe>
<a href="/bookmarklets.html">Bookmarklets</a> <div id="infobox">
<a href="/projects.html">Games</a> <img id="gameImage" src="favicon.png" />
<a href="/apps.html">Apps</a> <h2 id="gameName">Selenite</h2>
<a href="/settings.html">Settings</a> <div class="opposite">
<a id="blank" href="#">Open Blank</a> <img class="button" id="fullscreen" src="/img/fullscreen.svg">
<a href="/u/" class="usericon"><img src="/img/user.svg" /></a>
</header>
<main>
<div id="gamecontainer">
<iframe id="gameFrame" allow="fullscreen" 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="fullscreen" src="/img/fullscreen.svg">
</div>
</div> </div>
</div> </div>
</main> </div>
<footer class="noscroll">
<a href="gitlab.com/skysthelimit.dev/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>
</body> </body>
</html> </html>

0
manifest.json Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More