mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-07-19 12:03:37 +00:00
feat: get config
This commit is contained in:
@@ -42,9 +42,10 @@ checkVersion().then((remoteVersion: string) => {
|
|||||||
logError('[NapCat] 检测更新失败');
|
logError('[NapCat] 检测更新失败');
|
||||||
});
|
});
|
||||||
new NapCatOnebot11();
|
new NapCatOnebot11();
|
||||||
napCatCore.onLoginSuccess(() => {
|
napCatCore.onLoginSuccess((uin, uid) => {
|
||||||
console.log('登录成功!');
|
console.log('登录成功!');
|
||||||
DataRuntime.setQQLoginStatus(true);
|
DataRuntime.setQQLoginStatus(true);
|
||||||
|
DataRuntime.setQQLoginUin(uin.toString());
|
||||||
postLoginStatus();
|
postLoginStatus();
|
||||||
});
|
});
|
||||||
const showQRCode = async (qrCodeData: { url: string, base64: string, buffer: Buffer }) => {
|
const showQRCode = async (qrCodeData: { url: string, base64: string, buffer: Buffer }) => {
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
import { RequestHandler } from "express";
|
import { RequestHandler } from "express";
|
||||||
import { DataRuntime } from "../helper/Data";
|
import { DataRuntime } from "../helper/Data";
|
||||||
import { existsSync } from "node:fs";
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
||||||
import { resolve } from "node:path";
|
import { resolve } from "node:path";
|
||||||
import { OB11Config } from "@/webui/ui/components/WebApi";
|
import { OB11Config } from "@/webui/ui/components/WebApi";
|
||||||
const isEmpty = (data: any) => data === undefined || data === null || data === '';
|
const isEmpty = (data: any) => data === undefined || data === null || data === '';
|
||||||
export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
||||||
let isLogin = await DataRuntime.getQQLoginStatus();
|
let isLogin = await DataRuntime.getQQLoginStatus();
|
||||||
if(!isLogin){
|
if (!isLogin) {
|
||||||
res.send({
|
res.send({
|
||||||
code: -1,
|
code: -1,
|
||||||
message: 'Not Login'
|
message: 'Not Login'
|
||||||
@@ -15,15 +15,16 @@ export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
|||||||
}
|
}
|
||||||
const uin = await DataRuntime.getQQLoginUin();
|
const uin = await DataRuntime.getQQLoginUin();
|
||||||
let configFilePath = resolve(__dirname, `./config/onebot_${uin}.json`);
|
let configFilePath = resolve(__dirname, `./config/onebot_${uin}.json`);
|
||||||
|
console.log(configFilePath);
|
||||||
let data: OB11Config;
|
let data: OB11Config;
|
||||||
try {
|
try {
|
||||||
data = existsSync(configFilePath) ? require(configFilePath) : require(resolve(__dirname, `./config/onebot.json`));
|
data = JSON.parse(existsSync(configFilePath) ? readFileSync(configFilePath).toString() : readFileSync(resolve(__dirname, `./config/onebot.json`)).toString());
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
data = {} as OB11Config;
|
data = {} as OB11Config;
|
||||||
res.send({
|
res.send({
|
||||||
code: -1,
|
code: -1,
|
||||||
message: 'QRCode Get Error'
|
message: 'Config Get Error'
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -36,31 +37,31 @@ export const OB11GetConfigHandler: RequestHandler = async (req, res) => {
|
|||||||
}
|
}
|
||||||
export const OB11SetConfigHandler: RequestHandler = async (req, res) => {
|
export const OB11SetConfigHandler: RequestHandler = async (req, res) => {
|
||||||
let isLogin = await DataRuntime.getQQLoginStatus();
|
let isLogin = await DataRuntime.getQQLoginStatus();
|
||||||
if(!isLogin){
|
if (!isLogin) {
|
||||||
res.send({
|
res.send({
|
||||||
code: -1,
|
code: -1,
|
||||||
message: 'Not Login'
|
message: 'Not Login'
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(isEmpty(req.body.config)){
|
if (isEmpty(req.body.config)) {
|
||||||
res.send({
|
res.send({
|
||||||
code: -1,
|
code: -1,
|
||||||
message: 'config is empty'
|
message: 'config is empty'
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let configFilePath = resolve(__dirname, `./config/onebot_${await DataRuntime.getQQLoginUin()}.json`);
|
let configFilePath = resolve(__dirname, `./config/onebot_${await DataRuntime.getQQLoginUin()}.json`);
|
||||||
try {
|
try {
|
||||||
require(configFilePath);
|
require(configFilePath);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
configFilePath = resolve(__dirname, `./config/onebot.json`);
|
configFilePath = resolve(__dirname, `./config/onebot.json`);
|
||||||
}
|
}
|
||||||
require('fs').writeFileSync(configFilePath, JSON.stringify(req.body.config, null, 4));
|
writeFileSync(configFilePath, JSON.stringify(req.body.config, null, 4));
|
||||||
res.send({
|
res.send({
|
||||||
code: 0,
|
code: 0,
|
||||||
message: 'success'
|
message: 'success'
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
@@ -3,7 +3,7 @@ interface LoginRuntimeType {
|
|||||||
LoginCurrentRate: number;
|
LoginCurrentRate: number;
|
||||||
QQLoginStatus: boolean;
|
QQLoginStatus: boolean;
|
||||||
QQQRCodeURL: string;
|
QQQRCodeURL: string;
|
||||||
QQLoginUin: number;
|
QQLoginUin: string;
|
||||||
NapCatHelper: {
|
NapCatHelper: {
|
||||||
CoreQuickLogin: (uin: string) => Promise<{ result: boolean, message: string }>;
|
CoreQuickLogin: (uin: string) => Promise<{ result: boolean, message: string }>;
|
||||||
QQLoginList: string[]
|
QQLoginList: string[]
|
||||||
@@ -14,7 +14,7 @@ let LoginRuntime: LoginRuntimeType = {
|
|||||||
LoginCurrentRate: 0,
|
LoginCurrentRate: 0,
|
||||||
QQLoginStatus: false, //已实现 但太傻了 得去那边注册个回调刷新
|
QQLoginStatus: false, //已实现 但太傻了 得去那边注册个回调刷新
|
||||||
QQQRCodeURL: "",
|
QQQRCodeURL: "",
|
||||||
QQLoginUin: 0,
|
QQLoginUin: "",
|
||||||
NapCatHelper: {
|
NapCatHelper: {
|
||||||
CoreQuickLogin: async (uin: string) => { return { result: false, message: '' }; },
|
CoreQuickLogin: async (uin: string) => { return { result: false, message: '' }; },
|
||||||
QQLoginList: []
|
QQLoginList: []
|
||||||
@@ -51,11 +51,11 @@ export const DataRuntime = {
|
|||||||
return LoginRuntime.QQQRCodeURL;
|
return LoginRuntime.QQQRCodeURL;
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
setQQLoginUin: async function (uin: number): Promise<void> {
|
setQQLoginUin: async function (uin: string): Promise<void> {
|
||||||
LoginRuntime.QQLoginUin = uin;
|
LoginRuntime.QQLoginUin = uin;
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
getQQLoginUin: async function (): Promise<number> {
|
getQQLoginUin: async function (): Promise<string> {
|
||||||
return LoginRuntime.QQLoginUin;
|
return LoginRuntime.QQLoginUin;
|
||||||
},
|
},
|
||||||
getQQQuickLoginList: async function (): Promise<any[]> {
|
getQQQuickLoginList: async function (): Promise<any[]> {
|
||||||
|
6
src/webui/src/router/OB11Config.ts
Normal file
6
src/webui/src/router/OB11Config.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import { Router } from 'express';
|
||||||
|
import { OB11GetConfigHandler,OB11SetConfigHandler} from '../api/OB11Config';
|
||||||
|
const router = Router();
|
||||||
|
router.post('/GetConfig', OB11GetConfigHandler)
|
||||||
|
router.post('/SetConfig', OB11SetConfigHandler);
|
||||||
|
export { router as OB11ConfigRouter };
|
@@ -1,6 +1,5 @@
|
|||||||
import { Router } from 'express';
|
import { Router } from 'express';
|
||||||
import { QQCheckLoginStatusHandler, QQGetQRcodeHandler, QQGetQuickLoginListHandler } from '../api/QQLogin';
|
import { QQCheckLoginStatusHandler, QQGetQRcodeHandler, QQGetQuickLoginListHandler } from '../api/QQLogin';
|
||||||
|
|
||||||
const router = Router();
|
const router = Router();
|
||||||
router.all('/GetQuickLoginList', QQGetQuickLoginListHandler)
|
router.all('/GetQuickLoginList', QQGetQuickLoginListHandler)
|
||||||
router.post('/CheckLoginStatus', QQCheckLoginStatusHandler);
|
router.post('/CheckLoginStatus', QQCheckLoginStatusHandler);
|
||||||
|
@@ -3,6 +3,7 @@ import { AuthHelper } from '../../src/helper/SignToken';
|
|||||||
import { NextFunction, Request, Response } from 'express';
|
import { NextFunction, Request, Response } from 'express';
|
||||||
import { QQLoginRouter } from "./QQLogin";
|
import { QQLoginRouter } from "./QQLogin";
|
||||||
import { AuthRouter } from "./auth";
|
import { AuthRouter } from "./auth";
|
||||||
|
import { OB11ConfigRouter } from "./OB11Config";
|
||||||
const router = Router();
|
const router = Router();
|
||||||
export async function AuthApi(req: Request, res: Response, next: NextFunction) {
|
export async function AuthApi(req: Request, res: Response, next: NextFunction) {
|
||||||
//判断当前url是否为/api/login 如果是跳过鉴权
|
//判断当前url是否为/api/login 如果是跳过鉴权
|
||||||
@@ -45,6 +46,7 @@ router.all("/test", (req, res) => {
|
|||||||
msg: 'ok',
|
msg: 'ok',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
router.use('/auth', AuthRouter);//挂载权限路由
|
router.use('/auth', AuthRouter);
|
||||||
router.use('/QQLogin',QQLoginRouter);
|
router.use('/QQLogin',QQLoginRouter);
|
||||||
|
router.use('/OB11Config',OB11ConfigRouter);
|
||||||
export { router as ALLRouter }
|
export { router as ALLRouter }
|
Reference in New Issue
Block a user