From 0fc6b89d8fbf37268180a7fa25ce3bf041a7e7d0 Mon Sep 17 00:00:00 2001 From: Russell2259 <84256826+Russell2259@users.noreply.github.com> Date: Tue, 5 Dec 2023 20:06:44 -0700 Subject: [PATCH] sync --- pages/loader.html | 17 -------------- pages/uv_404.html | 22 +++++++++++++++++ server/index.js | 5 +++- server/utils/rewriter.js | 48 ++++++++++++++++++++------------------ static/assets/css/view.css | 21 ++--------------- static/cheats.html | 10 -------- static/games.html | 10 -------- static/index.html | 2 +- static/search.html | 10 -------- static/view.html | 4 ---- 10 files changed, 54 insertions(+), 95 deletions(-) delete mode 100644 pages/loader.html create mode 100644 pages/uv_404.html diff --git a/pages/loader.html b/pages/loader.html deleted file mode 100644 index 50cde36..0000000 --- a/pages/loader.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - Loading... - - - - - - - \ No newline at end of file diff --git a/pages/uv_404.html b/pages/uv_404.html new file mode 100644 index 0000000..6058a7a --- /dev/null +++ b/pages/uv_404.html @@ -0,0 +1,22 @@ + + + + + + + + Loading... + + + + + + + + + + \ No newline at end of file diff --git a/server/index.js b/server/index.js index a097973..b09bbf7 100644 --- a/server/index.js +++ b/server/index.js @@ -67,7 +67,10 @@ app.get('/asset/:token', async (req, res, next) => { } }); -app.get('/uv/*', (req, res) => res.setHeader('Service-Worker-Allowed', 'true')); +app.get('/uv/service*', async (req, res) => { + res.end(await rewriter.html(fs.readFileSync(path.join(__dirname, './pages/uv_404.html')))); + res.setHeader('Service-Worker-Allowed', 'true'); +}); app.use(async (req, res, next) => { const { diff --git a/server/utils/rewriter.js b/server/utils/rewriter.js index 130ca02..31e2fbc 100644 --- a/server/utils/rewriter.js +++ b/server/utils/rewriter.js @@ -13,11 +13,9 @@ import fs from 'node:fs'; const mode = (process.argv[2] === 'prod' || process.argv[2] === 'dev' ? process.argv[2] : (process.argv[3] === 'prod' || process.argv[3] === 'dev' ? process.argv[3] : (config.mode === 'prod' || config.mode === 'dev' ? config.mode : 'prod'))); const __dirname = url.fileURLToPath(new URL('../', import.meta.url)); -const html = (data) => { - return new Promise((resolve, reject) => { - var html = String(data); - - const templates = html.split('')) return data.split('\n')[0].trim().replace('-->', ''); else return undefined; @@ -36,13 +34,21 @@ const html = (data) => { .map(data => { return { name: data, - file: fs.readFileSync(path.join(__dirname, '../templates', (data ? (data.startsWith('{{') && data.split(':')[data.split(':').length - 2].endsWith('}}') ? data.split(':')[data.split(':').length - 1] : data) : undefined) + '.html')) + file: fs.readFileSync(path.join(__dirname, '../templates', (data ? (data.startsWith('{{') && data.split(':')[data.split(':').length - 2].endsWith('}}') ? data.split(':')[data.split(':').length - 1] : data) : undefined) + '.html').toString()) }; - }); + })); + }); +}; - templates.forEach(template => html = html.replace(``, template.file.toString())); +const html = (data) => { + return new Promise(async (resolve, reject) => { + var htmlData = String(data); - const dom = new JSDOM(html); + const templates = await templateParser(data); + + templates.forEach(template => htmlData = htmlData.replace(``, template.file)); + + const dom = new JSDOM(htmlData); if (config.assetScrambling) { for (let i = 0; i < dom.window.document.documentElement.querySelectorAll('script').length; i++) { @@ -100,13 +106,11 @@ const javascript = (data) => { let javascript = String(data); - if (config.assetScrambling) { - for (let i = 0; i < imports.length; i++) { - javascript = javascript.replace(imports[i], '/asset/' + TokenManager.generate('asset', 20000, { - asset: path.join(__dirname, '../static', imports[i]), - type: 'text/javascript' - }).token); - } + if (config.assetScrambling) for (let i = 0; i < imports.length; i++) { + javascript = javascript.replace(imports[i], '/asset/' + TokenManager.generate('asset', 20000, { + asset: path.join(__dirname, '../static', imports[i]), + type: 'text/javascript' + }).token); } if (config.minify) resolve(JavaScriptObfuscator.obfuscate(javascript, @@ -154,13 +158,11 @@ const css = (data) => { let css = String(data); - if (config.assetScrambling) { - for (let i = 0; i < imports.length; i++) { - css = css.replace(imports[i], '/asset/' + TokenManager.generate('asset', 20000, { - asset: path.join(__dirname, '../static', imports[i]), - type: mime.getType(path.join(__dirname, '../static', imports[i])) - }).token); - } + if (config.assetScrambling) for (let i = 0; i < imports.length; i++) { + css = css.replace(imports[i], '/asset/' + TokenManager.generate('asset', 20000, { + asset: path.join(__dirname, '../static', imports[i]), + type: mime.getType(path.join(__dirname, '../static', imports[i])) + }).token); } if (config.minify) resolve(css.replace(/(\r\n|\n|\r)/gm, '').replaceAll(' ', ' ')); diff --git a/static/assets/css/view.css b/static/assets/css/view.css index 1c5b695..b5c15a6 100644 --- a/static/assets/css/view.css +++ b/static/assets/css/view.css @@ -15,7 +15,7 @@ } .gamebar .logo { - width: 8vh; + width: 6vh; border-radius: 1.5vh; display: inline-flex; } @@ -25,22 +25,5 @@ text-align: center; font-size: 40px; width: calc(100% - 20px); - margin-top: calc(calc(calc(8vh - 10px) - 40px) / 2); -} - -.gamebar .menu { - cursor: pointer; - position: absolute; - right: 10px; - border-radius: 1.5vh; - padding: 1vh; -} - -.gamebar .menu:hover { - background: var(--solid); -} - -.gamebar .menu i { - color: var(--text); - font-size: 5vh; + margin-top: calc(calc(calc(6vh - 10px) - 40px) / 2); } \ No newline at end of file diff --git a/static/cheats.html b/static/cheats.html index 05f9d82..298a9c9 100644 --- a/static/cheats.html +++ b/static/cheats.html @@ -25,16 +25,6 @@ -