melonsoda 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.firebaserc +5 -0
- package/.github/workflows/build.yml +45 -0
- package/.github/workflows/links.yml +50 -0
- package/LICENCE +660 -0
- package/README.md +60 -0
- package/Web437_NEC_APC3_8x16.woff +0 -0
- package/build.py +131 -0
- package/darkmode.min.js +2 -0
- package/firebase.json +10 -0
- package/index.html +88 -0
- package/js/funstuff.js +77 -0
- package/js/games.js +159 -0
- package/js/home.js +80 -0
- package/js/links.js +17 -0
- package/js/main.js +64 -0
- package/js/official.js +119 -0
- package/js/unblockers.js +151 -0
- package/links.py +138 -0
- package/melon.png +0 -0
- package/offline/404.html +33 -0
- package/offline/index.html +898 -0
- package/offline/selfupdating (axios on cdn).html +75 -0
- package/offline/selfupdating-protected.html +301 -0
- package/offline/selfupdating.html +4487 -0
- package/package.json +20 -0
- package/requirements.txt +1 -0
- package/snowflake.css +51 -0
- package/star38.gif +0 -0
- package/style.css +70 -0
- package/urls.yaml +31 -0
- package/wrangler.jsonc +14 -0
package/js/funstuff.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const toolsPage = {
|
|
2
|
+
id: "fun",
|
|
3
|
+
title: "toys",
|
|
4
|
+
html: `
|
|
5
|
+
<h1>toys</h1>
|
|
6
|
+
<p>these are fun things that arent video games</p>
|
|
7
|
+
|
|
8
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/apps/thirtydollarwebsite/index.html'); return false;">
|
|
9
|
+
Thirty Dollar Website
|
|
10
|
+
</a>
|
|
11
|
+
<br>
|
|
12
|
+
<small>note: a lot of the images on thirty dollar website are <br> missing due to the cdn that i am using placing csp restrictions <br> on websites outside of the cdn, thankfully the audio is not blocked </small>
|
|
13
|
+
<br>
|
|
14
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/apps/fluidsim/index.html'); return false;">
|
|
15
|
+
WebGL Fluids
|
|
16
|
+
</a>
|
|
17
|
+
|
|
18
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/weavesilk/index.html'); return false;">
|
|
19
|
+
Weavesilk</a>
|
|
20
|
+
|
|
21
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/godoblocks/index.html'); return false;">
|
|
22
|
+
Godoblocks</a>
|
|
23
|
+
|
|
24
|
+
<scr` + `ipt>
|
|
25
|
+
let currentOverlay = null;
|
|
26
|
+
let currentFrame = null;
|
|
27
|
+
|
|
28
|
+
function launchGame(url) {
|
|
29
|
+
const overlay = document.createElement('div');
|
|
30
|
+
overlay.style.cssText = "position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;";
|
|
31
|
+
|
|
32
|
+
const frame = document.createElement('iframe');
|
|
33
|
+
frame.style.cssText = "width:80%;height:80%;border:none;";
|
|
34
|
+
frame.src = url;
|
|
35
|
+
frame.setAttribute('allowfullscreen', 'true');
|
|
36
|
+
frame.setAttribute('allow', 'fullscreen; autoplay;');
|
|
37
|
+
|
|
38
|
+
// Close button
|
|
39
|
+
const closeBtn = document.createElement('button');
|
|
40
|
+
closeBtn.innerText = 'Close';
|
|
41
|
+
closeBtn.style.cssText = "margin-top:10px;padding:5px 10px;cursor:pointer;";
|
|
42
|
+
closeBtn.onclick = () => {
|
|
43
|
+
if (document.fullscreenElement) document.exitFullscreen();
|
|
44
|
+
document.body.removeChild(overlay);
|
|
45
|
+
currentOverlay = null;
|
|
46
|
+
currentFrame = null;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Fullscreen button
|
|
50
|
+
const fsBtn = document.createElement('button');
|
|
51
|
+
fsBtn.innerText = 'Fullscreen';
|
|
52
|
+
fsBtn.style.cssText = "margin-top:5px;padding:5px 10px;cursor:pointer;";
|
|
53
|
+
fsBtn.onclick = () => {
|
|
54
|
+
if (overlay.requestFullscreen) overlay.requestFullscreen();
|
|
55
|
+
else if (overlay.webkitRequestFullscreen) overlay.webkitRequestFullscreen();
|
|
56
|
+
else if (overlay.msRequestFullscreen) overlay.msRequestFullscreen();
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
overlay.appendChild(frame);
|
|
60
|
+
overlay.appendChild(closeBtn);
|
|
61
|
+
overlay.appendChild(fsBtn);
|
|
62
|
+
document.body.appendChild(overlay);
|
|
63
|
+
|
|
64
|
+
frame.focus();
|
|
65
|
+
frame.addEventListener('load', () => {
|
|
66
|
+
frame.contentWindow.addEventListener('click', () => frame.focus());
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
currentOverlay = overlay;
|
|
70
|
+
currentFrame = frame;
|
|
71
|
+
}
|
|
72
|
+
</scr` + `ipt>
|
|
73
|
+
`
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
window.Pages = window.Pages || [];
|
|
77
|
+
window.Pages.push(toolsPage);
|
package/js/games.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
const gamesPage = {
|
|
2
|
+
id: "games",
|
|
3
|
+
title: "games",
|
|
4
|
+
html: `
|
|
5
|
+
<h1>games</h1>
|
|
6
|
+
|
|
7
|
+
<a href="javascript:(function(){var w=window.open('about:blank','_blank');if(!w){alert('Popup blocked');return;}w.moveTo(0,0);w.resizeTo(screen.width,screen.height);w.focus();w.document.write('<!DOCTYPE html><html><head><title>minecraft</title><style>html,body{margin:0;height:100%;overflow:hidden;background:black;}</style></head><body><iframe src="https://file.garden/ZtNXqbPCZ1cAh6MT/EaglercraftX_1.8_u53_Offline_Signed.html" style="width:100%;height:100%;border:none;" allowfullscreen></iframe><script>document.documentElement.requestFullscreen&&document.documentElement.requestFullscreen();<\/script></body></html>');w.document.close();})();"> Eaglercraft (opens in about:blank) </a>
|
|
8
|
+
|
|
9
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/baldi/index.html'); return false;">
|
|
10
|
+
Baldi's Basics
|
|
11
|
+
</a>
|
|
12
|
+
|
|
13
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/wbwwb-master/index.html'); return false;">
|
|
14
|
+
We Become What We Behold (tw: gore)
|
|
15
|
+
</a>
|
|
16
|
+
|
|
17
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/badtimesimulator/index.html'); return false;">
|
|
18
|
+
Bad Time Simulator (Sans Fight)
|
|
19
|
+
</a>
|
|
20
|
+
|
|
21
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/flash/html/nyancatlostinspace.html'); return false;">
|
|
22
|
+
Nyan Cat: Lost in Space (tw: mentions of drugs)
|
|
23
|
+
</a>
|
|
24
|
+
|
|
25
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/doom/dos.html'); return false;">
|
|
26
|
+
DOOM (tw: gore)
|
|
27
|
+
</a>
|
|
28
|
+
|
|
29
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/flash/html/HappyWheels.html'); return false;">
|
|
30
|
+
Happy Wheels (tw: extreme gore)
|
|
31
|
+
</a>
|
|
32
|
+
|
|
33
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/4.2.3/index.html'); return false;">
|
|
34
|
+
Multi-console game emulator
|
|
35
|
+
</a>
|
|
36
|
+
|
|
37
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/4.2.3/index.html?rom=Scribblenauts%20Collection%20(USA).nds'); return false;">
|
|
38
|
+
Scribblenauts/Super Scribblenauts
|
|
39
|
+
</a>
|
|
40
|
+
|
|
41
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/4.2.3/index.html?rom=Street%20Fighter%20II%20(Japan).sfc'); return false;">
|
|
42
|
+
Street Fighter II: The World Warrior (Japan)
|
|
43
|
+
|
|
44
|
+
</a>
|
|
45
|
+
|
|
46
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/flash/html/fridaynightfunkin.html'); return false;">
|
|
47
|
+
Friday Night Funkin (Macromedia Flash ver.)
|
|
48
|
+
|
|
49
|
+
</a>
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/ovo/index.html'); return false;">
|
|
56
|
+
OVO
|
|
57
|
+
</a>
|
|
58
|
+
|
|
59
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/stickman-hook-unblocked-main/stickman-hook-unblocked-main/index.html'); return false;">
|
|
60
|
+
Stickman Hook
|
|
61
|
+
</a>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/raldi-main/index.html'); return false;">
|
|
65
|
+
Raldi's Crackhouse (tw: profanity, mention of drugs and edgy humor)</a>
|
|
66
|
+
|
|
67
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/flash/html/gachalife.html'); return false;">
|
|
68
|
+
Gacha Life</a>
|
|
69
|
+
|
|
70
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/Project%20Sekai%20-%20%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%BB%E3%82%AB%E3%82%A4/index.html'); return false;">
|
|
71
|
+
Project Sekai (not the real deal, its a scratch remake and it only has 24 songs)</a>
|
|
72
|
+
|
|
73
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/stickmandestruction/index.html'); return false;">
|
|
74
|
+
Stickman Destruction (tw: depictions of physical harm)</a>
|
|
75
|
+
|
|
76
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/granny-main/index.html'); return false;">
|
|
77
|
+
Granny (tw: disturbing visuals)
|
|
78
|
+
</a>
|
|
79
|
+
|
|
80
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/gorilla-tag-main/index.html'); return false;">
|
|
81
|
+
Gorilla Tag
|
|
82
|
+
</a>
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<a href="javascript:(function(){var w=window.open('about:blank','_blank');if(!w){alert('Popup blocked');return;}w.moveTo(0,0);w.resizeTo(screen.width,screen.height);w.focus();w.document.write('<!DOCTYPE html><html><head><title>untitled goose game</title><style>html,body{margin:0;height:100%;overflow:hidden;background:black;}</style></head><body><iframe src="https://file.garden/ZtNXqbPCZ1cAh6MT/untitled-goose-game-main/index.html" style="width:100%;height:100%;border:none;" allowfullscreen></iframe><script>document.documentElement.requestFullscreen&&document.documentElement.requestFullscreen();<\/script></body></html>');w.document.close();})();"> Untitled Goose Game (opens in about:blank) </a>
|
|
87
|
+
|
|
88
|
+
<a href="#" class="game-link" onclick="launchGame('https://file.garden/ZtNXqbPCZ1cAh6MT/people-playground/index.html'); return false;">
|
|
89
|
+
People Playground
|
|
90
|
+
</a>
|
|
91
|
+
<scr` + `ipt>
|
|
92
|
+
let currentOverlay = null;
|
|
93
|
+
let currentFrame = null;
|
|
94
|
+
|
|
95
|
+
function launchGame(url) {
|
|
96
|
+
const overlay = document.createElement('div');
|
|
97
|
+
overlay.style.cssText = "position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;";
|
|
98
|
+
|
|
99
|
+
const frame = document.createElement('iframe');
|
|
100
|
+
frame.style.cssText = "width:80%;height:80%;border:none;";
|
|
101
|
+
frame.src = url;
|
|
102
|
+
frame.setAttribute('allowfullscreen', 'true');
|
|
103
|
+
frame.setAttribute('allow', 'fullscreen; autoplay;');
|
|
104
|
+
|
|
105
|
+
// Close button
|
|
106
|
+
const closeBtn = document.createElement('button');
|
|
107
|
+
closeBtn.innerText = 'Close';
|
|
108
|
+
closeBtn.style.cssText = "margin-top:10px;padding:5px 10px;cursor:pointer;";
|
|
109
|
+
closeBtn.onclick = () => {
|
|
110
|
+
if (document.fullscreenElement) document.exitFullscreen();
|
|
111
|
+
document.body.removeChild(overlay);
|
|
112
|
+
currentOverlay = null;
|
|
113
|
+
currentFrame = null;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// Fullscreen button
|
|
117
|
+
const fsBtn = document.createElement('button');
|
|
118
|
+
fsBtn.innerText = 'Fullscreen';
|
|
119
|
+
fsBtn.style.cssText = "margin-top:5px;padding:5px 10px;cursor:pointer;";
|
|
120
|
+
fsBtn.onclick = () => {
|
|
121
|
+
if (overlay.requestFullscreen) overlay.requestFullscreen();
|
|
122
|
+
else if (overlay.webkitRequestFullscreen) overlay.webkitRequestFullscreen();
|
|
123
|
+
else if (overlay.msRequestFullscreen) overlay.msRequestFullscreen();
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
overlay.appendChild(frame);
|
|
127
|
+
overlay.appendChild(closeBtn);
|
|
128
|
+
overlay.appendChild(fsBtn);
|
|
129
|
+
document.body.appendChild(overlay);
|
|
130
|
+
|
|
131
|
+
frame.focus();
|
|
132
|
+
frame.addEventListener('load', () => {
|
|
133
|
+
frame.contentWindow.addEventListener('click', () => frame.focus());
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
currentOverlay = overlay;
|
|
137
|
+
currentFrame = frame;
|
|
138
|
+
}
|
|
139
|
+
</scr` + `ipt>
|
|
140
|
+
|
|
141
|
+
<scr` + `ipt>
|
|
142
|
+
|
|
143
|
+
function blobOpen(base64Html) {
|
|
144
|
+
try {
|
|
145
|
+
const decodedHtml = atob(base64Html);
|
|
146
|
+
const blob = new Blob([decodedHtml], { type: "text/html" });
|
|
147
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
148
|
+
launchGame(blobUrl);
|
|
149
|
+
} catch (err) {
|
|
150
|
+
console.error("Failed to open blob:", err);
|
|
151
|
+
alert("Invalid Base64 HTML!");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
</scr` + `ipt>
|
|
155
|
+
`
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
window.Pages = window.Pages || [];
|
|
159
|
+
window.Pages.push(gamesPage);
|
package/js/home.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const homePage = {
|
|
2
|
+
id: "home",
|
|
3
|
+
title: "home",
|
|
4
|
+
html: `
|
|
5
|
+
<img src="data:image/png;base64,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" alt="meronsooda unblocked games" width="300" height="107">
|
|
6
|
+
<small id="quote"></small>
|
|
7
|
+
|
|
8
|
+
<p>a gaming hub that has unblockers, games and so much more lol</p>
|
|
9
|
+
|
|
10
|
+
<scr`+`ipt>
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
const typingSpeed = 50; // milliseconds per character
|
|
14
|
+
const deletingSpeed = 25; // milliseconds per character
|
|
15
|
+
const pauseTime = 1000; // pause after full quote
|
|
16
|
+
|
|
17
|
+
let index = 0;
|
|
18
|
+
let typingActive = false; // ensures only one loop runs
|
|
19
|
+
|
|
20
|
+
// Type a single string
|
|
21
|
+
async function typeQuote(str, element) {
|
|
22
|
+
for (let i = 0; i <= str.length; i++) {
|
|
23
|
+
element.textContent = str.slice(0, i);
|
|
24
|
+
await new Promise(r => setTimeout(r, typingSpeed));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Delete the string
|
|
29
|
+
async function deleteQuote(element) {
|
|
30
|
+
const str = element.textContent;
|
|
31
|
+
for (let i = str.length; i >= 0; i--) {
|
|
32
|
+
element.textContent = str.slice(0, i);
|
|
33
|
+
await new Promise(r => setTimeout(r, deletingSpeed));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Main loop: cycles quotes indefinitely
|
|
38
|
+
async function cycleQuotes() {
|
|
39
|
+
if (typingActive) return; // prevent duplicate loops
|
|
40
|
+
typingActive = true;
|
|
41
|
+
|
|
42
|
+
while (true) {
|
|
43
|
+
const element = document.getElementById('quote');
|
|
44
|
+
if (!element) {
|
|
45
|
+
// wait until the element exists in the DOM
|
|
46
|
+
await new Promise(r => setTimeout(r, 200));
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const currentQuote = window.quotes[index];
|
|
51
|
+
await typeQuote(currentQuote, element);
|
|
52
|
+
await new Promise(r => setTimeout(r, pauseTime));
|
|
53
|
+
await deleteQuote(element);
|
|
54
|
+
|
|
55
|
+
index = (index + 1) % window.quotes.length;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
cycleQuotes(); // start the typing effect
|
|
60
|
+
</scr`+`ipt>
|
|
61
|
+
<br>
|
|
62
|
+
<a href="javascript:(function(){
|
|
63
|
+
document.title='Google';
|
|
64
|
+
var f=document.querySelector('link[rel*="icon"]');
|
|
65
|
+
if(!f){f=document.createElement('link');f.rel='icon';document.head.appendChild(f);}
|
|
66
|
+
f.type='image/x-icon';
|
|
67
|
+
f.href='data:image/x-icon;base64,AAABAAIAEBAAAAEAIABoBAAAJgAAACAgAAABACAAqBAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zD9/f2W/f392P39/fn9/f35/f391/39/ZT+/v4uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Cf39/Zn///////////////////////////////////////////39/ZX///8IAAAAAAAAAAAAAAAA/v7+Cf39/cH/////+v35/7TZp/92ul3/WKs6/1iqOv9yuFn/rNWd//j79v///////f39v////wgAAAAAAAAAAP39/Zn/////7PXp/3G3WP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP+Or1j//vDo///////9/f2VAAAAAP///zD/////+vz5/3G3V/9TqDT/WKo6/6LQkf/U6cz/1urO/6rUm/+Zo0r/8IZB//adZ////v7///////7+/i79/f2Y/////4nWzf9Lqkj/Vqo4/9Xqzv///////////////////////ebY//SHRv/0hUL//NjD///////9/f2U/f392v////8sxPH/Ebzt/43RsP/////////////////////////////////4roL/9IVC//i1jf///////f391/39/fr/////Cr37/wW8+/+16/7/////////////////9IVC//SFQv/0hUL/9IVC//SFQv/3pnX///////39/fn9/f36/////wu++/8FvPv/tuz+//////////////////SFQv/0hUL/9IVC//SFQv/0hUL/96p7///////9/f35/f392/////81yfz/CrL5/2uk9v///////////////////////////////////////////////////////f392P39/Zn/////ks/7/zdS7P84Rur/0NT6///////////////////////9/f////////////////////////39/Zb+/v4y//////n5/v9WYu3/NUPq/ztJ6/+VnPT/z9L6/9HU+v+WnfT/Ul7t/+Hj/P////////////////////8wAAAAAP39/Z3/////6Or9/1hj7v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9sdvD////////////9/f2YAAAAAAAAAAD///8K/f39w//////5+f7/paz2/11p7v88Suv/Okfq/1pm7v+iqfX/+fn+///////9/f3B/v7+CQAAAAAAAAAAAAAAAP///wr9/f2d///////////////////////////////////////////9/f2Z/v7+CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f2Z/f392/39/fr9/f36/f392v39/Zj///8wAAAAAAAAAAAAAAAAAAAAAPAPAADAAwAAgAEAAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAPAPAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/g3+/v5X/f39mf39/cj9/f3q/f39+f39/fn9/f3q/f39yP39/Zn+/v5W////DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f2c/f399f/////////////////////////////////////////////////////9/f31/f39mv7+/iMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/gn9/f2K/f39+////////////////////////////////////////////////////////////////////////////f39+v39/Yf///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4k/f390v////////////////////////////////////////////////////////////////////////////////////////////////39/dD///8iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP39/er//////////////////////////+r05v+v16H/gsBs/2WxSf9Wqjj/Vqk3/2OwRv99vWX/pdKV/97u2P////////////////////////////39/ej+/v4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT9/f3q/////////////////////+v15/+Pxnv/VKk2/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/36+Z//d7tf///////////////////////39/ej///8iAAAAAAAAAAAAAAAAAAAAAAAAAAD///8K/f390//////////////////////E4bn/XKw+/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1apN/+x0pv///////////////////////39/dD///8IAAAAAAAAAAAAAAAAAAAAAP39/Yv/////////////////////sdij/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9TqDT/YKU1/8qOPv/5wZ////////////////////////39/YcAAAAAAAAAAAAAAAD+/v4l/f39+////////////////8Lgt/9TqDT/U6g0/1OoNP9TqDT/U6g0/1OoNP9utlT/n86N/7faqv+426v/pdKV/3u8ZP9UqDX/U6g0/3egN//jiUH/9IVC//SFQv/82MP//////////////////f39+v7+/iMAAAAAAAAAAP39/Z3////////////////q9Ob/W6w+/1OoNP9TqDT/U6g0/1OoNP9nskz/zOXC/////////////////////////////////+Dv2v+osWP/8YVC//SFQv/0hUL/9IVC//WQVP/++fb//////////////////f39mgAAAAD+/v4O/f399v///////////////4LHj/9TqDT/U6g0/1OoNP9TqDT/dblc//L58P/////////////////////////////////////////////8+v/3p3f/9IVC//SFQv/0hUL/9IVC//rIqf/////////////////9/f31////DP7+/ln////////////////f9v7/Cbz2/zOwhv9TqDT/U6g0/2KwRv/v9+z///////////////////////////////////////////////////////738//1kFT/9IVC//SFQv/0hUL/9plg///////////////////////+/v5W/f39nP///////////////4jf/f8FvPv/Bbz7/yG1s/9QqDz/vN2w//////////////////////////////////////////////////////////////////rHqP/0hUL/9IVC//SFQv/0hUL//vDn//////////////////39/Zn9/f3L////////////////R878/wW8+/8FvPv/Bbz7/y7C5P/7/fr//////////////////////////////////////////////////////////////////ere//SFQv/0hUL/9IVC//SFQv/718H//////////////////f39yP39/ez///////////////8cwvv/Bbz7/wW8+/8FvPv/WNL8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//rIqv/////////////////9/f3q/f39+v///////////////we9+/8FvPv/Bbz7/wW8+/993P3///////////////////////////////////////SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/+cGf//////////////////39/fn9/f36////////////////B737/wW8+/8FvPv/Bbz7/33c/f//////////////////////////////////////9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/6xaX//////////////////f39+f39/e3///////////////8cwvv/Bbz7/wW8+/8FvPv/WdP8///////////////////////////////////////0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//SFQv/0hUL/9IVC//vVv//////////////////9/f3q/f39y////////////////0bN/P8FvPv/Bbz7/wW8+/8hrvn/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/cj9/f2c////////////////ht/9/wW8+/8FvPv/FZP1/zRJ6/+zuPf//////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39mf7+/lr////////////////d9v7/B7n7/yB38f81Q+r/NUPq/0hV7P/u8P3////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v5X////D/39/ff///////////////9tkPT/NUPq/zVD6v81Q+r/NUPq/2Fs7//y8v7////////////////////////////////////////////09f7//////////////////////////////////////////////////f399f7+/g0AAAAA/f39n////////////////+Tm/P89Suv/NUPq/zVD6v81Q+r/NUPq/1Bc7f/IzPn/////////////////////////////////x8v5/0xY7P+MlPP////////////////////////////////////////////9/f2cAAAAAAAAAAD+/v4n/f39/P///////////////7W69/81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v9ZZe7/k5v0/6609/+vtff/lJv0/1pm7v81Q+r/NUPq/zVD6v+GjvL//v7//////////////////////////////f39+/7+/iQAAAAAAAAAAAAAAAD9/f2N/////////////////////6Cn9f81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v+BivL////////////////////////////9/f2KAAAAAAAAAAAAAAAAAAAAAP7+/gv9/f3V/////////////////////7W69/8+S+v/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/P0zr/7q/+P///////////////////////f390v7+/gkAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3r/////////////////////+Xn/P94gfH/NkTq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NUPq/zVD6v81Q+r/NkTq/3Z/8f/l5/z///////////////////////39/er+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jL9/f3r///////////////////////////k5vz/nqX1/2p08P9IVez/OEbq/zdF6v9GU+z/aHLv/5qh9f/i5Pz////////////////////////////9/f3q////MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/ib9/f3V/////////////////////////////////////////////////////////////////////////////////////////////////f390v7+/iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wr9/f2N/f39/P///////////////////////////////////////////////////////////////////////////f39+/39/Yv+/v4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4n/f39n/39/ff//////////////////////////////////////////////////////f399v39/Z3+/v4lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Dv7+/lr9/f2c/f39y/39/e39/f36/f39+v39/ez9/f3L/f39nP7+/ln+/v4OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AA///AAD//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABgAAAAcAAAAPAAAAD4AAAB/AAAA/4AAAf/AAAP/8AAP//wAP/';
|
|
68
|
+
})()">cloak (google) </a> <br>
|
|
69
|
+
<a href="javascript:(function(){
|
|
70
|
+
document.title='Home - Classroom';
|
|
71
|
+
var f=document.querySelector('link[rel*="icon"]');
|
|
72
|
+
if(!f){f=document.createElement('link');f.rel='icon';document.head.appendChild(f);}
|
|
73
|
+
f.type='image/x-icon';
|
|
74
|
+
f.href='data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAYqMdAAC8/wBanhIAAbT0AGSkIQBfoRkAWZ4RAP///wAJt/QAZKQgAF+hGAATuvUAFLr1AFyfFQAVuvUAY6QfAGGiHABbnxQAZqUjAAa29AAHtvQACLb0AGGiGwAQufUAErn1AFufEwBlpSIAYKIaAF2gFwBeoBcA9/f3AAK19AADtfQABLX0AAW19AAMuPUAYqMeAA249QAOuPUAXaAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICCSMjFhUVIyMjIyMgAgICIyMjIyMjIyMjIyMjIwQCAiQGBwgICAgICAgIBwMgAiYCFwcICAgICAgICAcaIQInAhEHBwgfHx8fCAcHEiECAgIBBwcHBwcHBwcHBxIiAgIYJSUBBwcICAcHBygOIwICGRAQBwcICAgIBwcHDiMCAgwKChAlCB8fCAYeHSgUAgINGwUKEAcICAcGCx4oFAICDxMbBwcHBwcHHAseHRQCAiMjIyMjIyMjIyMjIyMUAgIjIyMjIyMjIyMjIyMjIwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAA=';
|
|
75
|
+
})()">cloak (google classroom) </a>
|
|
76
|
+
<span>2026 <a href="https://durokotte.foo.ng">durokotte</a> | <a href="https://github.com/linuxfandudeguy/gamezhub">github</a> | AGPL-3.0 <br><br> all things on this site except for the site itself is not mine, everything on the site belongs to<br> the respective owners </span>
|
|
77
|
+
`
|
|
78
|
+
};
|
|
79
|
+
window.Pages = window.Pages || [];
|
|
80
|
+
window.Pages.push(homePage);
|
package/js/links.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const linksPage = {
|
|
2
|
+
id: "link",
|
|
3
|
+
title: "links",
|
|
4
|
+
html: `
|
|
5
|
+
<h1>links</h1>
|
|
6
|
+
<a href="https://durokotte.foo.ng/melonsoda/" target="_blank">the main melon</a> this is the main page<br>
|
|
7
|
+
<a href="https://meronsooda.netlify.app/" target="_blank">netlify melon</a> netlify mirror<br>
|
|
8
|
+
<a href="https://raw.githack.com/linuxfandudeguy/melonsoda/main/" target="_blank">totally legit githack</a> not hosted by me but i personally use it so it passes<br>
|
|
9
|
+
<a href="https://learn-french-easy.wasmer.app/" target="_blank">f r e n c h</a> you can learn some very nice french words like le cul (also offline/selfupdating.html is the only page that updates)<br>
|
|
10
|
+
<a href="https://k12-algebra-tutoring-edu-us-resources.pages.dev/" target="_blank">totally real algebra help</a> omg algebra tutoring!1!1!11<br>
|
|
11
|
+
<a href="https://educational-algebra-study-tutor.edgeone.app/" target="_blank">very not sketchy edgeone deploy</a> had to use the sketchy tencent edge service as that wasn't blocked (offline/selfupdating.html is the one served)<br>
|
|
12
|
+
<a href="https://free-french-resources.web.app/" target="_blank">firebase classic</a> firebase deploy (index page does not update but /selfupdating.html updates and also for some reason <br> the official website checking system says the site is not official but it is tho)<br>
|
|
13
|
+
<a href="https://free-french-resources.firebaseapp.com/" target="_blank">firebase alt route</a> alternate firebase deploy<br>
|
|
14
|
+
``
|
|
15
|
+
};
|
|
16
|
+
window.Pages = window.Pages || [];
|
|
17
|
+
window.Pages.push(linksPage);
|
package/js/main.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
const appDiv = document.getElementById('app');
|
|
2
|
+
const navDiv = document.getElementById('nav');
|
|
3
|
+
|
|
4
|
+
// Build nav from Pages array without innerHTML
|
|
5
|
+
function buildNav() {
|
|
6
|
+
navDiv.textContent = ''; // Clear previous content
|
|
7
|
+
|
|
8
|
+
window.Pages.forEach(page => {
|
|
9
|
+
const link = document.createElement('a');
|
|
10
|
+
link.href = '#';
|
|
11
|
+
link.textContent = page.title;
|
|
12
|
+
link.dataset.target = page.id;
|
|
13
|
+
|
|
14
|
+
link.addEventListener('click', e => {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
renderPage(page.id);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
navDiv.appendChild(link);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Render a page by id without innerHTML
|
|
24
|
+
function renderPage(id) {
|
|
25
|
+
const page = window.Pages.find(p => p.id === id);
|
|
26
|
+
if (!page) return;
|
|
27
|
+
|
|
28
|
+
appDiv.textContent = ''; // Clear previous content
|
|
29
|
+
|
|
30
|
+
if (page.html instanceof HTMLElement) {
|
|
31
|
+
appDiv.appendChild(page.html);
|
|
32
|
+
} else if (typeof page.html === 'string') {
|
|
33
|
+
const template = document.createElement('template');
|
|
34
|
+
template.innerHTML = page.html.trim();
|
|
35
|
+
|
|
36
|
+
Array.from(template.content.childNodes).forEach(node => {
|
|
37
|
+
if (node.tagName === 'SCRIPT') {
|
|
38
|
+
// Create a new script element to run it
|
|
39
|
+
const script = document.createElement('script');
|
|
40
|
+
if (node.src) {
|
|
41
|
+
script.src = node.src; // external script
|
|
42
|
+
script.async = false; // preserve order
|
|
43
|
+
} else {
|
|
44
|
+
script.textContent = node.textContent; // inline script
|
|
45
|
+
}
|
|
46
|
+
document.head.appendChild(script); // execute script
|
|
47
|
+
document.head.removeChild(script); // optional cleanup
|
|
48
|
+
} else {
|
|
49
|
+
appDiv.appendChild(node);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Reattach button listeners inside page content
|
|
55
|
+
const buttons = appDiv.querySelectorAll('button[data-target]');
|
|
56
|
+
buttons.forEach(btn => {
|
|
57
|
+
btn.addEventListener('click', e => {
|
|
58
|
+
renderPage(btn.dataset.target);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
// Initialize SPA
|
|
63
|
+
buildNav();
|
|
64
|
+
renderPage('home');
|