返回提交历史
Modified
config-vanilla.json
+1
-0
Modified
src/routes/webui.ts
+23
-35
Modified
src/services/configService.ts
+1
-0
XFEstudio/XFESpaceNinjaServer
feat: webui.enabled config (#3629)
Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/3629 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
ef91fe40
代码差异
3 个文件
+25
-35
@@ -29,6 +29,7 @@
29
29
"fullyStockedVendors": false,
30
30
"skipClanKeyCrafting": false,
31
31
"webui": {
32
"enabled": true,
32
33
"defaultLanguage": "en"
33
34
},
34
35
"unfaithfulBugFixes": {
@@ -1,4 +1,4 @@
1
import express from "express";
1
import express, { type RequestHandler } from "express";
2
2
import path from "path";
3
3
import fs from "fs/promises";
4
4
import { repoDir, rootDir } from "../helpers/pathHelper.ts";
@@ -11,50 +11,38 @@ const webuiRouter = express.Router();
11
11
12
12
// Redirect / to /webui/
13
13
webuiRouter.get("/", (_req, res) => {
14
res.redirect("/webui/");
14
if (config.webui?.enabled ?? true) {
15
res.redirect("/webui/");
16
} else {
17
res.sendStatus(404);
18
}
15
19
});
16
20
17
21
// Redirect /webui to /webui/
18
22
webuiRouter.use("/webui", (req, res, next) => {
19
if (req.originalUrl === "/") {
23
if (req.originalUrl === "/" && (config.webui?.enabled ?? true)) {
20
24
return res.redirect("/webui/");
21
25
}
22
26
next();
23
27
});
24
28
25
29
// Serve virtual routes
26
webuiRouter.get("/webui/inventory", async (_req, res) => {
27
res.set("Content-Type", "text/html;charset=utf8");
28
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
29
});
30
webuiRouter.get("/webui/detailedView", async (_req, res) => {
31
res.set("Content-Type", "text/html;charset=utf8");
32
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
33
});
34
webuiRouter.get("/webui/mods", async (_req, res) => {
35
res.set("Content-Type", "text/html;charset=utf8");
36
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
37
});
38
webuiRouter.get("/webui/settings", async (_req, res) => {
39
res.set("Content-Type", "text/html;charset=utf8");
40
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
41
});
42
webuiRouter.get("/webui/quests", async (_req, res) => {
43
res.set("Content-Type", "text/html;charset=utf8");
44
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
45
});
46
webuiRouter.get("/webui/cheats", async (_req, res) => {
47
res.set("Content-Type", "text/html;charset=utf8");
48
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
49
});
50
webuiRouter.get("/webui/import", async (_req, res) => {
51
res.set("Content-Type", "text/html;charset=utf8");
52
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
53
});
54
webuiRouter.get("/webui/guildView", async (_req, res) => {
55
res.set("Content-Type", "text/html;charset=utf8");
56
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
57
});
30
const virtualRouteController: RequestHandler = async (_req, res) => {
31
if (config.webui?.enabled ?? true) {
32
res.set("Content-Type", "text/html;charset=utf8");
33
res.send(await fs.readFile(path.join(baseDir, "static/webui/index.html")));
34
} else {
35
res.sendStatus(404);
36
}
37
};
38
webuiRouter.get("/webui/inventory", virtualRouteController);
39
webuiRouter.get("/webui/detailedView", virtualRouteController);
40
webuiRouter.get("/webui/mods", virtualRouteController);
41
webuiRouter.get("/webui/settings", virtualRouteController);
42
webuiRouter.get("/webui/quests", virtualRouteController);
43
webuiRouter.get("/webui/cheats", virtualRouteController);
44
webuiRouter.get("/webui/import", virtualRouteController);
45
webuiRouter.get("/webui/guildView", virtualRouteController);
58
46
59
47
// Serve static files
60
48
webuiRouter.use("/webui", express.static(path.join(baseDir, "static/webui")));
@@ -39,6 +39,7 @@ export interface IConfig {
39
39
fullyStockedVendors?: boolean;
40
40
skipClanKeyCrafting?: boolean;
41
41
webui?: {
42
enabled?: boolean;
42
43
defaultLanguage?: string;
43
44
};
44
45
unfaithfulBugFixes?: {