From afee26aad35ec9b1ba6e4fbd2b27c77b600ea8f3 Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 9 May 2024 00:28:44 +0200 Subject: [PATCH 1/2] feat: implement loading of ability videos --- src/routes/cache.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/routes/cache.ts b/src/routes/cache.ts index b714c648..abc51d7f 100644 --- a/src/routes/cache.ts +++ b/src/routes/cache.ts @@ -1,5 +1,6 @@ import express from "express"; import buildConfig from "@/static/data/buildConfig.json"; +import fs from "fs"; const cacheRouter = express.Router(); @@ -15,4 +16,18 @@ cacheRouter.get(/^\/origin\/[a-zA-Z0-9]+\/[0-9]+\/H\.Cache\.bin.*$/, (_req, res) res.sendFile(`static/data/H.Cache_${buildConfig.version}.bin`, { root: "./" }); }); +cacheRouter.get(/\.bk2!/, async (req, res) => { + const dir = req.path.substr(0, req.path.lastIndexOf("/")); + const file = req.path.substr(dir.length + 1); + + // Return file if we have it + if (fs.existsSync(`static/data${dir}/${file}`)) { + res.send(fs.readFileSync(`static/data${dir}/${file}`, null)); + return; + } + + // 404 if we don't + res.status(404).end(); +}); + export { cacheRouter }; -- 2.47.2 From ad7eb0df47757580e2a2de93aaaf3c1123d330d3 Mon Sep 17 00:00:00 2001 From: Sainan Date: Thu, 30 May 2024 01:35:43 +0200 Subject: [PATCH 2/2] Fed into ChatGPT. Is async now. --- src/routes/cache.ts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/routes/cache.ts b/src/routes/cache.ts index abc51d7f..adc69b2a 100644 --- a/src/routes/cache.ts +++ b/src/routes/cache.ts @@ -1,6 +1,6 @@ import express from "express"; import buildConfig from "@/static/data/buildConfig.json"; -import fs from "fs"; +import fs from "fs/promises"; const cacheRouter = express.Router(); @@ -17,17 +17,19 @@ cacheRouter.get(/^\/origin\/[a-zA-Z0-9]+\/[0-9]+\/H\.Cache\.bin.*$/, (_req, res) }); cacheRouter.get(/\.bk2!/, async (req, res) => { - const dir = req.path.substr(0, req.path.lastIndexOf("/")); - const file = req.path.substr(dir.length + 1); + try { + const dir = req.path.substr(0, req.path.lastIndexOf("/")); + const file = req.path.substr(dir.length + 1); + const filePath = `static/data${dir}/${file}`; - // Return file if we have it - if (fs.existsSync(`static/data${dir}/${file}`)) { - res.send(fs.readFileSync(`static/data${dir}/${file}`, null)); - return; + // Return file if we have it + await fs.access(filePath); + const data = await fs.readFile(filePath, null); + res.send(data); + } catch (err) { + // 404 if we don't + res.status(404).end(); } - - // 404 if we don't - res.status(404).end(); }); export { cacheRouter }; -- 2.47.2