mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-30 05:29:02 +08:00
发生错误直接被 catch 掉了,没有提示,[使用docker启动后,请求被重置](https://github.com/NapNeko/NapCat-Docker/issues/8)
88 lines
2.2 KiB
TypeScript
88 lines
2.2 KiB
TypeScript
import fs from 'node:fs';
|
||
import path from 'node:path';
|
||
import { selfInfo } from '@/common/data';
|
||
|
||
export interface OB11Config {
|
||
httpPort: number;
|
||
httpPostUrls: string[];
|
||
httpSecret: string;
|
||
wsPort: number;
|
||
wsReverseUrls: string[];
|
||
enableHttp: boolean;
|
||
enableHttpHeart: boolean;
|
||
enableHttpPost: boolean;
|
||
enableWs: boolean;
|
||
enableWsReverse: boolean;
|
||
messagePostFormat: 'array' | 'string';
|
||
reportSelfMessage: boolean;
|
||
enableLocalFile2Url: boolean;
|
||
debug: boolean;
|
||
heartInterval: number;
|
||
token: string;
|
||
|
||
read(): OB11Config;
|
||
|
||
save(config: OB11Config): void;
|
||
}
|
||
|
||
const ob11ConfigDir = path.resolve(__dirname, 'config');
|
||
fs.mkdirSync(ob11ConfigDir, { recursive: true });
|
||
|
||
class Config implements OB11Config {
|
||
httpPort: number = 3000;
|
||
httpPostUrls: string[] = [];
|
||
httpSecret = '';
|
||
wsPort = 3001;
|
||
wsReverseUrls: string[] = [];
|
||
enableHttp = false;
|
||
enableHttpPost = false;
|
||
enableHttpHeart = false;
|
||
enableWs = false;
|
||
enableWsReverse = false;
|
||
messagePostFormat: 'array' | 'string' = 'array';
|
||
reportSelfMessage = false;
|
||
debug = false;
|
||
enableLocalFile2Url = true;
|
||
heartInterval = 30000;
|
||
token = '';
|
||
|
||
constructor() {
|
||
}
|
||
|
||
getConfigPath() {
|
||
return path.join(ob11ConfigDir, `onebot11_${selfInfo.uin}.json`);
|
||
}
|
||
|
||
read() {
|
||
const ob11ConfigPath = this.getConfigPath();
|
||
if (!fs.existsSync(ob11ConfigPath)) {
|
||
console.log(`onebot11配置文件 ${ob11ConfigPath} 不存在, 现已创建,请修改配置文件后重启NapCat`);
|
||
this.save();
|
||
return this;
|
||
}
|
||
const data = fs.readFileSync(ob11ConfigPath, 'utf-8');
|
||
try {
|
||
const jsonData = JSON.parse(data);
|
||
console.log('get config', jsonData);
|
||
Object.assign(this, jsonData);
|
||
// eslint-disable-next-line
|
||
} catch (e) {
|
||
if (e instanceof SyntaxError) {
|
||
console.error(`配置文件 ${ob11ConfigPath} 格式错误,请检查配置文件:`, e.message);
|
||
}else{
|
||
console.error(`读取配置文件 ${ob11ConfigPath} 时发生错误:`, e.message);
|
||
}
|
||
}
|
||
return this;
|
||
}
|
||
|
||
save(newConfig: OB11Config | null = null) {
|
||
if (newConfig) {
|
||
Object.assign(this, newConfig);
|
||
}
|
||
fs.writeFileSync(this.getConfigPath(), JSON.stringify(this, null, 4));
|
||
}
|
||
}
|
||
|
||
export const ob11Config = new Config();
|