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 @@
-