AMelonInsideLemon 710470ca2d
Some checks failed
Build Docker image / docker (push) Waiting to run
Build / build (22) (push) Has been cancelled
Build / build (20) (push) Has been cancelled
Build / build (18) (push) Has been cancelled
feat(webui): quests support (#1411)
Reviewed-on: #1411
Reviewed-by: Sainan <sainan@calamity.inc>
Co-authored-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
Co-committed-by: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
2025-04-03 10:40:22 -07:00

65 lines
2.0 KiB
TypeScript

import express from "express";
import path from "path";
import { repoDir, rootDir } from "@/src/helpers/pathHelper";
const webuiRouter = express.Router();
// Redirect / to /webui/
webuiRouter.get("/", (_req, res) => {
res.redirect("/webui/");
});
// Redirect /webui to /webui/
webuiRouter.use("/webui", (req, res, next) => {
if (req.originalUrl === "/") {
return res.redirect("/webui/");
}
next();
});
// Serve virtual routes
webuiRouter.get("/webui/inventory", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get(/webui\/powersuit\/(.+)/, (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get("/webui/mods", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get("/webui/settings", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get("/webui/quests", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get("/webui/cheats", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
webuiRouter.get("/webui/import", (_req, res) => {
res.sendFile(path.join(rootDir, "static/webui/index.html"));
});
// Serve static files
webuiRouter.use("/webui", express.static(path.join(rootDir, "static/webui")));
// Serve favicon
webuiRouter.get("/favicon.ico", (_req, res) => {
res.sendFile(path.join(repoDir, "static/fixed_responses/favicon.ico"));
});
// Serve warframe-riven-info
webuiRouter.get("/webui/riven-tool/", (_req, res) => {
res.sendFile(path.join(repoDir, "node_modules/warframe-riven-info/index.html"));
});
webuiRouter.get("/webui/riven-tool/RivenParser.js", (_req, res) => {
res.sendFile(path.join(repoDir, "node_modules/warframe-riven-info/RivenParser.js"));
});
// Serve translations
webuiRouter.get("/translations/:file", (req, res) => {
res.sendFile(path.join(rootDir, `static/webui/translations/${req.params.file}`));
});
export { webuiRouter };