feat: 配置热重载

This commit is contained in:
手瓜一十雪
2024-05-13 21:07:19 +08:00
parent 3a5cca8f78
commit 83d9c2bea1
4 changed files with 116 additions and 21 deletions

View File

@@ -51,20 +51,36 @@ export const OB11SetConfigHandler: RequestHandler = async (req, res) => {
});
return;
}
let configFilePath = resolve(__dirname, `./config/onebot11_${await WebUiDataRuntime.getQQLoginUin()}.json`);
let SetResult;
try {
JSON.parse(req.body.config)
readFileSync(configFilePath);
await WebUiDataRuntime.setOB11Config(JSON.parse(req.body.config));
SetResult = true;
} catch (e) {
SetResult = false;
}
catch (e) {
//console.log(e);
configFilePath = resolve(__dirname, `./config/onebot11.json`);
// let configFilePath = resolve(__dirname, `./config/onebot11_${await WebUiDataRuntime.getQQLoginUin()}.json`);
// try {
// JSON.parse(req.body.config)
// readFileSync(configFilePath);
// }
// catch (e) {
// //console.log(e);
// configFilePath = resolve(__dirname, `./config/onebot11.json`);
// }
// //console.log(configFilePath,JSON.parse(req.body.config));
// writeFileSync(configFilePath, JSON.stringify(JSON.parse(req.body.config), null, 4));
if (SetResult) {
res.send({
code: 0,
message: 'success'
});
} else {
res.send({
code: -1,
message: 'Config Set Error'
});
}
//console.log(configFilePath,JSON.parse(req.body.config));
writeFileSync(configFilePath, JSON.stringify(JSON.parse(req.body.config), null, 4));
res.send({
code: 0,
message: 'success'
});
return;
}

View File

@@ -1,3 +1,5 @@
import { OB11Config } from "@/onebot11/config";
interface LoginRuntimeType {
LoginCurrentTime: number;
LoginCurrentRate: number;
@@ -5,7 +7,8 @@ interface LoginRuntimeType {
QQQRCodeURL: string;
QQLoginUin: string;
NapCatHelper: {
CoreQuickLogin: (uin: string) => Promise<{ result: boolean, message: string }>;
CoreQuickLoginCall: (uin: string) => Promise<{ result: boolean, message: string }>;
SetOb11ConfigCall: (ob11: OB11Config) => Promise<void>;
QQLoginList: string[]
}
}
@@ -16,7 +19,8 @@ let LoginRuntime: LoginRuntimeType = {
QQQRCodeURL: "",
QQLoginUin: "",
NapCatHelper: {
CoreQuickLogin: async (uin: string) => { return { result: false, message: '' }; },
SetOb11ConfigCall: async (ob11: OB11Config) => { return; },
CoreQuickLoginCall: async (uin: string) => { return { result: false, message: '' }; },
QQLoginList: []
}
}
@@ -64,10 +68,16 @@ export const WebUiDataRuntime = {
setQQQuickLoginList: async function (list: string[]): Promise<void> {
LoginRuntime.NapCatHelper.QQLoginList = list;
},
setQQQuickLogin(func: (uin: string) => Promise<{ result: boolean, message: string }>): void {
LoginRuntime.NapCatHelper.CoreQuickLogin = func;
setQQQuickLoginCall(func: (uin: string) => Promise<{ result: boolean, message: string }>): void {
LoginRuntime.NapCatHelper.CoreQuickLoginCall = func;
},
getQQQuickLogin: async function (uin: string): Promise<{ result: boolean, message: string }> {
return await LoginRuntime.NapCatHelper.CoreQuickLogin(uin);
return await LoginRuntime.NapCatHelper.CoreQuickLoginCall(uin);
},
setOB11ConfigCall: async function (func: (ob11: OB11Config) => Promise<void>): Promise<void> {
LoginRuntime.NapCatHelper.SetOb11ConfigCall = func;
},
setOB11Config: async function (ob11: OB11Config): Promise<void> {
await LoginRuntime.NapCatHelper.SetOb11ConfigCall(ob11);
}
}