From d4af74f60e7d6b8740083f95cdd55125ca085856 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 17 Mar 2025 09:28:22 -0700 Subject: [PATCH] Added escape key funtionality --- src/index.ts | 13 +++++++++++-- src/webpage/instances.json | 18 ++++++++++++++++++ src/webpage/manifest.json | 5 ++++- src/webpage/settings.ts | 6 ++++++ 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index fc97ea8..0165c86 100644 --- a/src/index.ts +++ b/src/index.ts @@ -99,6 +99,10 @@ const instances = JSON.parse( readFileSync(process.env.JANK_INSTANCES_PATH || __dirname + "/webpage/instances.json").toString(), ) as instace[]; +const manifest = JSON.parse( + readFileSync(process.env.JANK_INSTANCES_PATH || __dirname + "/webpage/manifest.json").toString(), +) as object; + const instanceNames = new Map(); for (const instance of instances) { @@ -118,7 +122,7 @@ async function updateInstances(): Promise { const existingInstance = instanceNames.get(instance.name); if (existingInstance) { for (const key of Object.keys(instance)) { - if (!existingInstance[key]) { + if (!(key in existingInstance)) { existingInstance[key] = instance[key]; } } @@ -183,6 +187,11 @@ app.use("/", async (req: Request, res: Response) => { return; } + if (req.path.startsWith("/manifest.json")) { + res.json(manifest); + return; + } + if (req.path.startsWith("/invite/")) { res.sendFile(path.join(__dirname, "webpage", "invite.html")); return; @@ -193,7 +202,7 @@ app.use("/", async (req: Request, res: Response) => { app.set("trust proxy", (ip: string) => ip.startsWith("127.")); -const PORT = process.env.PORT || Number(process.argv[2]) || 8080; +const PORT = process.env.PORT || Number(process.argv[2]) || 8333; app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); }); diff --git a/src/webpage/instances.json b/src/webpage/instances.json index 4949fbc..5fdecf3 100644 --- a/src/webpage/instances.json +++ b/src/webpage/instances.json @@ -1,4 +1,18 @@ [ + { + "name": "NomBar", + "description": "The Tastiest Chat around, get your fill today", + "image": "https://munchy.impassivedev.com/images/icon.png", + "url": "https://spacebar.nomchy-verse.com", + "language": "en", + "country": "US", + "display": true, + "contactInfo": { + "dicord": "munchy420", + "github": "https://tea.nomchy-verse.com/munchy", + "email": "thedudedies22@gmail.com" + } + }, { "name": "Spacebar", "description": "The official Spacebar instance.", @@ -30,5 +44,9 @@ "github": "https://github.com/greysilly7", "email": "greysilly7@gmail.com" } + }, + { + "name": "Vanilla Minigames", + "display": false } ] diff --git a/src/webpage/manifest.json b/src/webpage/manifest.json index f78e7cd..cf54989 100644 --- a/src/webpage/manifest.json +++ b/src/webpage/manifest.json @@ -6,8 +6,11 @@ "sizes": "512x512" } ], - "start_url": "/channels/@me", + "start_url": "https://chat.nomchy-verse.com/", "display": "standalone", + "scope": "/", "theme_color": "#05050a", + "description": "Welcome to the Jank Client, a spacebar FOSS client implementation", + "background_color": "#05050a", "offline_enabled": true } diff --git a/src/webpage/settings.ts b/src/webpage/settings.ts index 1c2e61a..3c68663 100644 --- a/src/webpage/settings.ts +++ b/src/webpage/settings.ts @@ -1431,6 +1431,12 @@ class Settings extends Buttons { exit.onclick = (_) => { this.hide(); }; + onkeyup = (event) => { + if (event.key === "Escape") { + // Cancel the default action, if needed + this.hide() + } + } document.body.append(background); this.html = background; }