diff --git a/server/index.js b/server/index.js
index fa95148..467a866 100644
--- a/server/index.js
+++ b/server/index.js
@@ -23,6 +23,26 @@ const swPaths = [
'/assets/js/offline.js'
];
+app.get('/cdn/3kh0/*', cors({
+ origin: false
+}), async (req, res, next) => {
+ let reqTarget = `https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/${req.path.replace('/cdn/3kh0/', '')}`;
+
+ const asset = await fetch(reqTarget);
+ if (asset.status == 200) {
+ var data = Buffer.from(await asset.arrayBuffer());
+
+ const noRewrite = ['.unityweb'];
+ if (!noRewrite.includes(mime.getExtension(reqTarget))) res.writeHead(200, {
+ 'content-type': mime.getType(reqTarget)
+ });
+
+ if (mime.getType(reqTarget) === 'text/html') data = data + '';
+
+ res.end(data);
+ } else next();
+});
+
app.get('/cdn/*', cors({
origin: false
}), async (req, res, next) => {
@@ -37,7 +57,7 @@ app.get('/cdn/*', cors({
'content-type': mime.getType(reqTarget)
});
- if (mime.getType(reqTarget) === 'text/html') data = data + '';
+ if (mime.getType(reqTarget) === 'text/html') data = data + '';
res.end(data);
} else next();
diff --git a/static/assets/JSON/apps.json b/static/assets/JSON/apps.json
index d691638..509ba24 100644
--- a/static/assets/JSON/apps.json
+++ b/static/assets/JSON/apps.json
@@ -2,31 +2,26 @@
{
"name": "Discord",
"image": "/assets/img/discord.png",
- "target": "https://discord.com/app",
- "proxy": true
+ "target": "https://discord.com/app"
},
{
"name": "Emulator",
"image": "https://emulatorjs.org/media/logo-light.png",
- "target": "https://demo.emulatorjs.org/",
- "proxy": true
+ "target": "https://demo.emulatorjs.org/"
},
{
"name": "Tiktok",
"image": "/assets/img/tiktok.png",
- "target": "https://www.tiktok.com/en/",
- "proxy": true
+ "target": "https://www.tiktok.com/en/"
},
{
"name": "Twitch",
"image": "/assets/img/twitch.png",
- "target": "https://www.twitch.tv/",
- "proxy": true
+ "target": "https://www.twitch.tv/"
},
{
"name": "Youtube",
"image": "/assets/img/youtube.png",
- "target": "https://youtube.com",
- "proxy": true
+ "target": "https://youtube.com"
}
-]
+]
\ No newline at end of file
diff --git a/static/assets/JSON/cheats.json b/static/assets/JSON/cheats.json
index 24c4a8b..abba7f0 100644
--- a/static/assets/JSON/cheats.json
+++ b/static/assets/JSON/cheats.json
@@ -1,42 +1,42 @@
[
{
"name": "Blooket",
- "source": "/assets/misc/cheats/blooket.html",
+ "target": "/assets/misc/cheats/blooket.html",
"image": "https://media.discordapp.net/attachments/1118495479802630174/1158062820097802331/latest.png?ex=651ae18c&is=6519900c&hm=544b7a8eb56236327b7bcabfce4b688428d59a63c8e07bcb2aab3ff81c916286&="
},
{
"name": "EdPuzzle",
- "source": "/service/hvtrs8%2F-efpwzxlg.js%2Cva%2F",
+ "target": "https://edpuzzle.hs.vc/",
"image": "https://edpuzzle.imgix.net/edpuzzle-logos/vertical-logo.png"
},
{
"name": "Wordle",
- "source": "/assets/misc/cheats/wordle.html",
+ "target": "/assets/misc/cheats/wordle.html",
"image": "/assets/img/wordle.png"
},
{
"name": "Prodigy",
- "source": "/assets/misc/cheats/prodigy.html",
+ "target": "/assets/misc/cheats/prodigy.html",
"image": "https://webcdn.prodigygame.com/common/images/socialshare.png"
},
{
"name": "Quizizz",
- "source": "/service/hvtrs8%2F-qwixiv.mnnile-sgrtiaeq%2Fsukzkzx%2F",
+ "target": "https://quizit.online/services/quizizz/",
"image": "https://media.discordapp.net/attachments/1118495479802630174/1158062649792286720/Screen_Shot_2023-10-01_at_11.27.24_AM.png?ex=651ae163&is=65198fe3&hm=d9b86e146ddc9e98690822155ccdc2c239d776f1a42fa16447d820e8e34a826b&="
},
{
"name": "Quizlet",
- "source": "/assets/misc/cheats/quizlet.html",
+ "target": "/assets/misc/cheats/quizlet.html",
"image": "https://assets.quizlet.com/a/j/dist/app/i/brandmark/1024.38e7be0a829de8f.png"
},
{
"name": "Gimkit",
- "source": "/service/hvtrs8%2F-gktju%60.aoo%2FVhgLcz%7BSsukd-GkmiivCject",
+ "target": "https://github.com/TheLazySquid/GimkitCheat",
"image": "https://images.crunchbase.com/image/upload/c_lpad,f_auto,q_auto:eco,dpr_1/iin53jlbkmdjjdpjbcde"
},
{
"name": "Skoolvox Helper",
- "source": "/service/hvtrs8%2F-gktju%60.aoo%2Fdounvakn-siimvmx%2Fsiomlgdktkol%2Fpenecsgs",
+ "target": "https://github.com/fowntain/skiovox-skooledition/releases",
"image": "https://raw.githubusercontent.com/fowntain/skiovox-skooledition/main/icon.png"
}
]
diff --git a/static/assets/JSON/games.json b/static/assets/JSON/games.json
index eb511e9..d8139db 100644
--- a/static/assets/JSON/games.json
+++ b/static/assets/JSON/games.json
@@ -6,7 +6,7 @@
},
{
"name": "1v1.LoL",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/1v1lol/index.html",
+ "target": "/cdn/3kh0/1v1lol/index.html",
"image": "/assets/img/1v1lol.png",
"popular": true
},
@@ -22,12 +22,12 @@
},
{
"name": "Achievement Unlocked",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/achievementunlocked/index.html",
- "image": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/achievementunlocked/achievementunlocked.png"
+ "target": "/cdn/3kh0/achievementunlocked/index.html",
+ "image": "/cdn/3kh0/achievementunlocked/achievementunlocked.png"
},
{
"name": "Adventure Capitalist",
- "target": "/service/hvtrs8%2F-tjal128%3B.eivhwb%2Cim%2Fcdteltwrg-aarivaniqt-",
+ "target": "https://than1089.github.io/adventure-capitalist/",
"image": "/assets/img/adventurecapitalist.png"
},
{
@@ -52,7 +52,7 @@
},
{
"name": "Ashbelt",
- "target": "/service/hvtrs8%2F-untkmctgmgn%2Cgktju%60.ko-gcmgs-aqh%60ent-ildgx%2Chvmn",
+ "target": "https://ultimatemen.github.io/games/ashbelt/index.html",
"image": "https://f4.bcbits.com/img/a4238131019_10.jpg"
},
{
@@ -72,12 +72,12 @@
},
{
"name": "Backrooms",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/backrooms/index.html",
+ "target": "/cdn/3kh0/backrooms/index.html",
"image": "/assets/img/backrooms.jpg"
},
{
"name": "Basket Bros",
- "target": "https:https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/basketbros-io/index.html",
+ "target": "https:/cdn/3kh0/basketbros-io/index.html",
"image": "/assets/img/basketbros.jpg"
},
{
@@ -112,7 +112,7 @@
},
{
"name": "Bloons TD 2",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/bloonstd2/index.html",
+ "target": "/cdn/3kh0/bloonstd2/index.html",
"image": "/assets/img/btd2.png"
},
{
@@ -122,7 +122,7 @@
},
{
"name": "Bob The Robber 2",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/bobtherobber2/index.html",
+ "target": "/cdn/3kh0/bobtherobber2/index.html",
"image": "/assets/img/btr2.jpeg"
},
{
@@ -132,17 +132,17 @@
},
{
"name": "BuildNow.GG",
- "target": "/service/hvtrs8%2F-gcmgs%2Ccpaxyeaoeq.aoo%2Fgn%5DUQ%2F%60uklfnmw%2Fge%2Fknfez.jtol",
+ "target": "https://games.crazygames.com/en_US/buildnow-gg/index.html",
"image": "https://play-lh.googleusercontent.com/MdtXwEOt43tY6GV3-IHAwhdmoW-jY4B1rqvA0m1Yj89Bj4et8FfWGL3cCt_lkDvWbWk=w240-h480-rw"
},
{
"name": "Candy Jump",
- "target": "/service/hvtrs8%2F-ccnfyhuop%2Cgcmgs037.aoo%2F",
+ "target": "https://candyjump.games235.com/",
"image": "https://www.coolmathgames.com/sites/default/files/styles/pwa_512x512/public/game_m_thumbnail/candy-jump-game-icon.png"
},
{
"name": "Chrome Dino",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/chrome-dino/index.html",
+ "target": "/cdn/3kh0/chrome-dino/index.html",
"image": "https://img.poki.com/cdn-cgi/image/quality=78,width=600,height=600,fit=cover,f=auto/9afd3b92ab41ffca7f368a8fcbd6d39a75894efe0edbc14cf1f067cf625e6678.png"
},
{
@@ -152,7 +152,7 @@
},
{
"name": "Cluster Truck",
- "target": "/service/hvtrs8%2F-wuw%2Cslaie%2Fgcmgs%2Cim%2Fnoaangcmgs-cnuqtgr%2Frwsj%2F",
+ "target": "https://www.snake-games.io/localgames/cluster-rush/",
"image": "https://image.api.playstation.com/cdn/UP0097/CUSA06481_00/36sNa79pxV859fFg3CU7zFhQ34ThNx8z.png"
},
{
@@ -162,12 +162,12 @@
},
{
"name": "Cubeform",
- "target": "/service/hvtrs8%2F-wuw%2Cmctjpna%7Bgpownf.aoo%2Fau%60edopm-ildgx%2Chvmn",
+ "target": "https://www.mathplayground.com/cubeform/index.html",
"image": "https://www.coolmathgames.com/sites/default/files/styles/pwa_512x512/public/game_m_thumbnail/cubeform-game-icon.png?itok=RHIZMSy5"
},
{
"name": "Cut the Rope",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/ctr/index.html'",
+ "target": "/cdn/3kh0/ctr/index.html'",
"image": "/assets/img/ctr.png"
},
{
@@ -177,12 +177,12 @@
},
{
"name": "Defly.io",
- "target": "/service/hvtrs8%2F-dgfny%2Cim%2F",
+ "target": "https://defly.io/",
"image": "https://cdn.glitch.global/82c5292a-89b3-4a53-84e2-abbc0fa27724/defly_io.webp?v=1679319580067"
},
{
"name": "DogeMiner",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/DogeMiner/index.html",
+ "target": "/cdn/3kh0/DogeMiner/index.html",
"image": "/assets/img/dogeminer.png"
},
{
@@ -197,17 +197,17 @@
},
{
"name": "Drift Boss",
- "target": "/service/hvtrs8%2F-wuw%2Cmctjpna%7Bgpownf.aoo%2Ffrkfv-%60oqs%2Fv1%2Fknfez.jtol",
+ "target": "https://www.mathplayground.com/drift-boss-v3/index.html",
"image": "/assets/img/driftboss.png"
},
{
"name": "Drift Hunters (have patience)",
- "target": "/service/hvtrs8%2F-wgbeloavh%2Cgktju%60.ko-dpidt%2Fhwnveps-",
+ "target": "https://webglmath.github.io/drift-hunters/",
"image": "https://play-lh.googleusercontent.com/smo8Ln-PRREDGq_QjA-Nws7ZNJQhvQfUB2oA8XV0GW12uq6hqdhvwXCB2rdl6zjekcow=w240-h480-rw"
},
{
"name": "Drive Mad",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/drive-mad/index.html",
+ "target": "/cdn/3kh0/drive-mad/index.html",
"image": "/assets/img/dmd.jpg"
},
{
@@ -222,7 +222,7 @@
},
{
"name": "Flappy Bird",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/flappybird/index.html",
+ "target": "/cdn/3kh0/flappybird/index.html",
"image": "/assets/img/fp.png"
},
{
@@ -247,12 +247,12 @@
},
{
"name": "GunSpin",
- "target": "/service/hvtrs8%2F-u%60g167.eivhwb%2Cim%2Feulsril%2Frlcy%2Chvmn",
+ "target": "https://ubg365.github.io/gunspin/play.html",
"image": "https://play-lh.googleusercontent.com/fLqvWSVq5rENEvu32xl0hf96wwSHVwQm-_9xc6KZg9Vgv9PbAtf1CyBYW7i1mlAXoSA"
},
{
"name": "Hacker Tetris",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/twitch-tetris/index.html",
+ "target": "/cdn/3kh0/twitch-tetris/index.html",
"image": "/assets/img/hackertetris.png"
},
{
@@ -262,8 +262,8 @@
},
{
"name": "Idle Breakout",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/idle-breakout/index.html",
- "image": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/idle-breakout/img/thumbnail.png"
+ "target": "/cdn/3kh0/idle-breakout/index.html",
+ "image": "/cdn/3kh0/idle-breakout/img/thumbnail.png"
},
{
"name": "Janissary Battles",
@@ -276,23 +276,23 @@
"image": "/cdn/jetpack-joyride/splash.jpg"
},
{
- "name": "Kirka",
- "target": "/service/hvtrs8%2F-kkria%2Cim%2F",
+ "name": "Kirka.io",
+ "target": "https://kirka.io/",
"image": "https://cdn.glitch.global/40d8a6f7-c124-43fe-8544-1617c1dcc948/download%20(1).jpeg?v=1680006191209"
},
{
"name": "Learn To Fly",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/learntofly/index.html",
+ "target": "/cdn/3kh0/learntofly/index.html",
"image": "/assets/img/learntofly.png"
},
{
"name": "Learn To Fly 2",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/learntofly2/index.html",
+ "target": "/cdn/3kh0/learntofly2/index.html",
"image": "/assets/img/ltf2.jpg"
},
{
"name": "Let's Surf",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/edge-surf/index.html",
+ "target": "/cdn/3kh0/edge-surf/index.html",
"image": "/assets/img/ltsf.png"
},
{
@@ -329,7 +329,7 @@
},
{
"name": "Monster Truck Stunts",
- "target": "/service/hvtrs8%2F-fklgs%2Ctuorlcygreaoeq.mre%2Fdineq%2Feaoeq%2Fmtjep%2FOolsvep_Vrwci_Ropt%5DSvult-ildgx%2Chvmn",
+ "target": "https://files.twoplayergames.org/files/games/other/Monster_Truck_Port_Stunt/index.html",
"image": "https://images.twoplayergames.org/files/games/other/Monster_Truck_Port_Stunt/MonsterTruckPortStunt_180x135.jpg?auto=format&w=100"
},
{
@@ -369,12 +369,12 @@
},
{
"name": "Papas Pizzeria",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/papaspizzaria/index.html",
+ "target": "/cdn/3kh0/papaspizzaria/index.html",
"image": "/assets/img/pizzeria.jpeg"
},
{
"name": "Penalty Kicks",
- "target": "/service/hvtrs8%2F-wuw%2Cmctjpna%7Bgpownf.aoo%2Frelant%7B-iiakq%2Fknfez.jtol",
+ "target": "https://www.mathplayground.com/penalty-kicks/index.html",
"image": "/assets/img/penaltykicks.png"
},
{
@@ -389,19 +389,18 @@
},
{
"name": "Retro Bowl",
- "target": "https://codeberg.org/3kh0/3kh0-assets/raw/branch/main/retro-bowl/index.html",
+ "target": "/cdn/3kh0/retro-bowl/index.html",
"image": "/assets/img/retrobowl.jpeg",
"popular": true
},
{
"name": "Rise Higher",
- "target": "/service/hvtrs8%2F-wuw%2Cmctjpna%7Bgpownf.aoo%2Fpiqe%2Fhkgjep%2Fknfez.jtol",
+ "target": "https://www.mathplayground.com/rise-higher/index.html",
"image": "/assets/img/risehigher.jpg"
},
{
"name": "Roblox",
- "target": "/service/hvtrs8%2F-nmw%2Cge%2Frlcy-rmbnoz-aoppmrctkol%2F7369-rmbnoz",
- "comment": "/service/hvtrs8%2F-aab%2Cswpgrvulnglpuqh%2Ccmm-dgmm",
+ "target": "https://now.gg/play/roblox-corporation/5349/roblox",
"image": "/assets/img/roblox.png",
"popular": true
},
@@ -412,7 +411,7 @@
},
{
"name": "Rocket League 2D",
- "target": "/service/hvtrs8%2F-v4p%3Bd%3Bt6.qsn.jwadl.lev%2Fjtol-3127314-ildgx%2Chvmn",
+ "target": "https://v6p9d9t4.ssl.hwcdn.net/html/3325334/index.html",
"image": "https://img.itch.zone/aW1hZ2UvMTcwNjIyLzgyMDkwMS5wbmc=/original/j3UIZb.png"
},
{
@@ -447,7 +446,7 @@
},
{
"name": "Stumble Guys",
- "target": "/service/hvtrs8%2F-nmweg%2Cnn%2Frlcy-kktia%2Fgcmgs-7%3B9%3B%2Fqtwm%60lg-eu%7Bs",
+ "target": "https://nowgg.nl/play/kitka-games/7999/stumble-guys",
"image": "https://play-lh.googleusercontent.com/Oci7f4WR0JShbn-n5hnwubbXaMssleb2b1Dv7AMOzFFcgstIdC9kg-E3LHx3em8RCaLf",
"popular":true
},
@@ -458,7 +457,7 @@
},
{
"name": "Super Mario 64",
- "target": "/service/hvtrs8%2F-untkmctgmgn%2Cgktju%60.ko-gcmgs-swpgro66%2Fknfez.jtol",
+ "target": "https://ultimatemen.github.io/games/superm64/index.html",
"image": "https://nintendocore.org/cdn/shop/products/Super-Mario-64-1.png"
},
{
diff --git a/static/assets/css/main.css b/static/assets/css/main.css
index 4edc7d6..003e8f4 100644
--- a/static/assets/css/main.css
+++ b/static/assets/css/main.css
@@ -308,6 +308,10 @@ input:checked+.slider:before {
border-radius: 1.5vh;
}
+.game.hidden {
+ display: none;
+}
+
.game:hover {
filter: brightness(95%);
transform: translateY(-0.2vh);
@@ -343,6 +347,10 @@ input:checked+.slider:before {
z-index: 10;
}
+.searchErr {
+ margin-bottom: 100px;
+}
+
.cheats {
width: 100%;
display: flex;
diff --git a/static/assets/js/apps.js b/static/assets/js/apps.js
index e1ecfae..87a4cdc 100644
--- a/static/assets/js/apps.js
+++ b/static/assets/js/apps.js
@@ -1,35 +1,35 @@
-import { loadProxyWorker } from './utils.js';
+import { createViewPage } from './utils.js';
import PolarisError from './error.js';
import effects from './effects.js';
-const load = () => {
- fetch('/assets/JSON/apps.json').then(res => res.json()).then(apps => {
- apps.forEach(app => {
- const el = document.createElement('div');
- el.classList = 'app';
- el.innerHTML = `
Coming soon!
\ No newline at end of file