small patches and updates
Co-authored-by: Cobalt-60 <plastics-eater@users.noreply.github.com>
This commit is contained in:
+21
-1
@@ -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 + '<script src=\'/assets/js/cdn.inject.js\' preload=\'true\'></script>';
|
||||
|
||||
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 + '<script src=\'/assets/js/cdn_inject.js\' preload=\'true\'></script>';
|
||||
if (mime.getType(reqTarget) === 'text/html') data = data + '<script src=\'/assets/js/cdn.inject.js\' preload=\'true\'></script>';
|
||||
|
||||
res.end(data);
|
||||
} else next();
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
+25
-25
@@ -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 = `<img src='${app.image}'><h3>${app.name}</h3>`;
|
||||
document.querySelector('.apps').appendChild(el);
|
||||
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 = `<img src='${app.image}'><h3>${app.name}</h3>`;
|
||||
document.querySelector('.apps').appendChild(el);
|
||||
|
||||
effects.hoverTilt({
|
||||
max: 8,
|
||||
perspective: 1000,
|
||||
scale: 1.05,
|
||||
speed: 800,
|
||||
easing: 'cubic-bezier(.03,.98,.52,.99)'
|
||||
}, el);
|
||||
effects.hoverTilt({
|
||||
max: 8,
|
||||
perspective: 1000,
|
||||
scale: 1.05,
|
||||
speed: 800,
|
||||
easing: 'cubic-bezier(.03,.98,.52,.99)'
|
||||
}, el);
|
||||
|
||||
el.addEventListener('click', async () => {
|
||||
await loadProxyWorker('uv');
|
||||
|
||||
localStorage.setItem('frameData', JSON.stringify({
|
||||
type: 'app',
|
||||
app
|
||||
}));
|
||||
location.href = '/view';
|
||||
el.addEventListener('click', async () => {
|
||||
if (URL.canParse(app.target)) createViewPage({
|
||||
target: app.target,
|
||||
title: app.name,
|
||||
proxied: true
|
||||
});
|
||||
else createViewPage({
|
||||
target: app.target,
|
||||
title: app.name
|
||||
});
|
||||
});
|
||||
}).catch(e => new PolarisError('Failed to load Apps'));
|
||||
};
|
||||
});
|
||||
}).catch(e => new PolarisError('Failed to load Apps'));
|
||||
|
||||
export default {
|
||||
load
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
if (window.self === window.top) {
|
||||
document.body.style.display = 'none';
|
||||
|
||||
fetch('/404')
|
||||
.then(res => res.text())
|
||||
.then(data => {
|
||||
document.documentElement.innerHTML = data;
|
||||
document.body.style.display = 'none';
|
||||
|
||||
try { document.body.dataset.theme = JSON.parse(localStorage.getItem('settings')).theme || 'system-default'; }
|
||||
catch {
|
||||
document.body.dataset.theme = 'system-default';
|
||||
sessionStorage.setItem('settings', JSON.stringify({
|
||||
theme: 'system-default'
|
||||
}));
|
||||
}
|
||||
|
||||
setTimeout(() => document.body.style.display = 'block', 400);
|
||||
});
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import { createViewPage } from './utils.js';
|
||||
import PolarisError from './error.js';
|
||||
import effects from './effects.js';
|
||||
|
||||
@@ -18,11 +19,15 @@ const load = () => fetch('/assets/JSON/cheats.json')
|
||||
}, el);
|
||||
|
||||
el.addEventListener('click', () => {
|
||||
localStorage.setItem('frameData', JSON.stringify({
|
||||
type: 'cheat',
|
||||
cheat
|
||||
}));
|
||||
location.href = '/view';
|
||||
if (URL.canParse(cheat.target)) createViewPage({
|
||||
target: cheat.target,
|
||||
title: cheat.name,
|
||||
proxied: true
|
||||
});
|
||||
else createViewPage({
|
||||
target: cheat.target,
|
||||
title: cheat.name
|
||||
});
|
||||
});
|
||||
})).catch(e => new PolarisError('Failed to load cheats.'));
|
||||
|
||||
|
||||
@@ -38,24 +38,13 @@ class PolarisError {
|
||||
}, 500);
|
||||
}, 8000);
|
||||
|
||||
if (e.stack) {
|
||||
console.log('An error occurred:\n\n' + e.stack);
|
||||
} else {
|
||||
console.log('An error occurred:\n\n' + e);
|
||||
}
|
||||
if (e.stack) console.log('An error occurred:\n\n' + e.stack);
|
||||
else console.log('An error occurred:\n\n' + e);
|
||||
}
|
||||
}
|
||||
|
||||
window.onerror = (a, b, c, d, e) => {
|
||||
new PolarisError(e);
|
||||
}
|
||||
|
||||
window.console.error = (e) => {
|
||||
new PolarisError(e);
|
||||
}
|
||||
|
||||
window.onmessageerror = (e) => {
|
||||
new PolarisError(e);
|
||||
}
|
||||
window.onerror = (...e) => new PolarisError(e);
|
||||
window.console.error = (...e) => new PolarisError(e);
|
||||
window.onmessageerror = (...e) => new PolarisError(e);
|
||||
|
||||
export default PolarisError;
|
||||
|
||||
@@ -6,14 +6,16 @@ const load = () => {
|
||||
fetch('/assets/JSON/games.json')
|
||||
.then(res => res.json())
|
||||
.then(games => {
|
||||
const searchBar = document.getElementById('searchInput');
|
||||
const searchBar = document.querySelector('#searchInput');
|
||||
|
||||
searchBar.addEventListener('input', () => {
|
||||
console.log(searchBar.value);
|
||||
|
||||
if (searchBar.value) {
|
||||
var result = false;
|
||||
|
||||
document.querySelectorAll('.games>.game').forEach(game => {
|
||||
if (game.title.toLowerCase().includes(searchBar.value.toLowerCase())) {
|
||||
if (game.querySelector('h3').textContent.toLowerCase().includes(searchBar.value.toLowerCase())) {
|
||||
result = true;
|
||||
|
||||
game.classList.remove('hidden');
|
||||
|
||||
+3
-3
@@ -28,7 +28,7 @@
|
||||
<input type="text" id="searchInput" placeholder="Search Games...">
|
||||
<!--el:ad_horizontal-->
|
||||
<!--el:ad_horizontal-->
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
@@ -36,10 +36,10 @@
|
||||
</div>
|
||||
|
||||
<div class="searchErr hidden">
|
||||
<h1>¯\(°_o)/¯</h1>
|
||||
<h1 class="title">¯\(°_o)/¯</h1>
|
||||
<br>
|
||||
<p>Oops, we couldn't find the game you were looking for.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/assets/js/main.js" type="module"></script>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<h3>Panic Key</h3>
|
||||
|
||||
<input class="settings-input" type="text" name="Panic Key" id="panic_key" value="No Key Selected" readonly />
|
||||
<input class="settings-input" type="text" name="Panic Key" id="panic_key" value="Click and press any key" readonly />
|
||||
<button class="settings-button" id="reset_panic">Reset</button>
|
||||
|
||||
<br>
|
||||
@@ -45,4 +45,8 @@
|
||||
<input class="settings-input" type="text" placeholder="Title" id="title" />
|
||||
<input class="settings-input" type="text" placeholder="eg: google.com" id="domain" />
|
||||
</div>
|
||||
|
||||
<h2>Export Data</h2>
|
||||
|
||||
<p>Coming soon!</p>
|
||||
</div>
|
||||
Reference in New Issue
Block a user