refactor: core

This commit is contained in:
linyuchen
2024-04-26 13:55:35 +08:00
parent 2dc33d5b85
commit 4772b61d8c
56 changed files with 111 additions and 129 deletions

View File

@@ -8,9 +8,9 @@ import {
NTQQFileApi,
// NTQQFileCacheApi,
NTQQWindowApi,
} from '@/core/qqnt/apis';
} from '@/core';
import { ActionName } from '../types';
import { log } from '../../../common/utils/log';
import { log } from '@/common/utils/log';
interface Payload {
method: string,

View File

@@ -1,10 +1,9 @@
import { GroupNotify, GroupNotifyStatus } from '../../../ntqqapi/types';
import { GroupNotify, GroupNotifyStatus } from '@/core/entities';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { uid2UinMap } from '../../../common/data';
import { NTQQUserApi } from '@/core/qqnt/apis/user';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { log } from '../../../common/utils/log';
import { uid2UinMap } from '@/common/data';
import { NTQQUserApi } from '@/core/apis/user';
import { NTQQGroupApi } from '@/core/apis/group';
interface OB11GroupRequestNotify {
group_id: number,

View File

@@ -1,8 +1,8 @@
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import * as fs from 'node:fs';
import { NTQQUserApi } from '@/core/qqnt/apis/user';
import { checkFileReceived, uri2local } from '../../../common/utils/file';
import { NTQQUserApi } from '@/core/apis/user';
import { checkFileReceived, uri2local } from '@/common/utils/file';
// import { log } from "../../../common/utils";
interface Payload {
@@ -40,4 +40,4 @@ export default class SetAvatar extends BaseAction<Payload, null> {
}
return null;
}
}
}

View File

@@ -6,8 +6,8 @@ import { log } from '@/common/utils/log';
import { sleep } from '@/common/utils/helper';
import { uri2local } from '@/common/utils/file';
import { ActionName } from '../types';
import { FileElement, RawMessage, VideoElement } from '@/core/qqnt/entities';
import { NTQQFileApi } from '@/core/qqnt/apis';
import { FileElement, RawMessage, VideoElement } from '@/core/entities';
import { NTQQFileApi } from '@/core/apis';
export interface GetFilePayload {
file: string; // 文件名或者fileUuid

View File

@@ -1,6 +1,6 @@
import BaseAction from '../BaseAction';
import { OB11ForwardMessage, OB11Message, OB11MessageData } from '../../types';
import { NTQQMsgApi } from '@/core/qqnt/apis';
import { NTQQMsgApi } from '@/core/apis';
import { dbUtil } from '@/common/utils/db';
import { OB11Constructor } from '../../constructor';
import { ActionName } from '../types';

View File

@@ -2,9 +2,9 @@ import BaseAction from '../BaseAction';
import { OB11Message, OB11User } from '../../types';
import { getFriend, friends, uid2UinMap, getUidByUin } from '@/common/data';
import { ActionName } from '../types';
import { ChatType } from '@/core/qqnt/entities';
import { ChatType } from '@/core/entities';
import { dbUtil } from '@/common/utils/db';
import { NTQQMsgApi } from '@/core/qqnt/apis/msg';
import { NTQQMsgApi } from '@/core/apis/msg';
import { OB11Constructor } from '../../constructor';

View File

@@ -2,9 +2,9 @@ import BaseAction from '../BaseAction';
import { OB11Message, OB11User } from '../../types';
import { getGroup, groups } from '@/common/data';
import { ActionName } from '../types';
import { ChatType } from '@/core/qqnt/entities';
import { ChatType } from '@/core/entities';
import { dbUtil } from '@/common/utils/db';
import { NTQQMsgApi } from '@/core/qqnt/apis/msg';
import { NTQQMsgApi } from '@/core/apis/msg';
import { OB11Constructor } from '../../constructor';

View File

@@ -3,7 +3,7 @@ import { OB11User } from '../../types';
import { getUidByUin, uid2UinMap } from '@/common/data';
import { OB11Constructor } from '../../constructor';
import { ActionName } from '../types';
import { NTQQUserApi } from '@/core/qqnt/apis/user';
import { NTQQUserApi } from '@/core/apis/user';
import { log } from '@/common/utils/log';

View File

@@ -1,10 +1,10 @@
import BaseAction from '../BaseAction';
import { getGroup } from '@/common/data';
import { ActionName } from '../types';
import { SendMsgElementConstructor } from '@/core/qqnt/entities/constructor';
import { ChatType, SendFileElement } from '@/core/qqnt/entities';
import { SendMsgElementConstructor } from '@/core/entities/constructor';
import { ChatType, SendFileElement } from '@/core/entities';
import fs from 'fs';
import { NTQQMsgApi } from '@/core/qqnt/apis/msg';
import { NTQQMsgApi } from '@/core/apis/msg';
import { uri2local } from '@/common/utils/file';
interface Payload {

View File

@@ -3,8 +3,8 @@ import { OB11Constructor } from '../../constructor';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { groups } from '@/common/data';
import { NTQQGroupApi } from '@/core/qqnt/apis';
import { Group } from '@/core/qqnt/entities';
import { NTQQGroupApi } from '@/core/apis';
import { Group } from '@/core/entities';
import { log } from '@/common/utils/log';
interface Payload {

View File

@@ -1,10 +1,10 @@
import { OB11GroupMember } from '../../types';
import { getGroupMember } from '../../../common/data';
import { getGroupMember } from '@/common/data';
import { OB11Constructor } from '../../constructor';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQUserApi } from '@/core/qqnt/apis/user';
import { log } from '../../../common/utils/log';
import { NTQQUserApi } from '@/core/apis/user';
import { log } from '@/common/utils/log';
import { isNull } from '../../../common/utils/helper';

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { GroupRequestOperateTypes } from '@/core/qqnt/entities';
import { GroupRequestOperateTypes } from '@/core/entities';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
import { groupNotifies } from '@/common/data';
interface Payload {

View File

@@ -1,8 +1,8 @@
import BaseAction from '../BaseAction';
import { getGroupMember } from '@/common/data';
import { GroupMemberRole } from '@/core/qqnt/entities';
import { GroupMemberRole } from '@/core/entities';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { getGroupMember } from '../../../common/data';
import { getGroupMember } from '@/common/data';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,
@@ -21,4 +21,4 @@ export default class SetGroupBan extends BaseAction<Payload, null> {
[{ uid: member.uid, timeStamp: parseInt(payload.duration.toString()) }]);
return null;
}
}
}

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { getGroupMember } from '../../../common/data';
import { getGroupMember } from '@/common/data';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,
@@ -20,4 +20,4 @@ export default class SetGroupCard extends BaseAction<Payload, null> {
await NTQQGroupApi.setMemberCard(payload.group_id.toString(), member.uid, payload.card || '');
return null;
}
}
}

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { getGroupMember } from '../../../common/data';
import { getGroupMember } from '@/common/data';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { log } from '../../../common/utils/log';
import { NTQQGroupApi } from '@/core/apis/group';
import { log } from '@/common/utils/log';
interface Payload {
group_id: number,
@@ -19,4 +19,4 @@ export default class SetGroupLeave extends BaseAction<Payload, any> {
throw e;
}
}
}
}

View File

@@ -1,6 +1,6 @@
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,
@@ -15,4 +15,4 @@ export default class SetGroupName extends BaseAction<Payload, null> {
await NTQQGroupApi.setGroupName(payload.group_id.toString(), payload.group_name);
return null;
}
}
}

View File

@@ -1,6 +1,6 @@
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQGroupApi } from '@/core/qqnt/apis/group';
import { NTQQGroupApi } from '@/core/apis/group';
interface Payload {
group_id: number,
@@ -15,4 +15,4 @@ export default class SetGroupWholeBan extends BaseAction<Payload, null> {
await NTQQGroupApi.banGroup(payload.group_id.toString(), enable);
return null;
}
}
}

View File

@@ -1,4 +1,4 @@
import { NTQQMsgApi } from '@/core/qqnt/apis';
import { NTQQMsgApi } from '@/core/apis';
import { ActionName } from '../types';
import BaseAction from '../BaseAction';
import { dbUtil } from '@/common/utils/db';

View File

@@ -1,7 +1,7 @@
import { ChatType, Peer } from '@/core/qqnt/entities';
import { ChatType, Peer } from '@/core/entities';
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQMsgApi } from '@/core/qqnt/apis';
import { NTQQMsgApi } from '@/core/apis';
import { getFriend, getUidByUin } from '@/common/data';
interface Payload {

View File

@@ -7,7 +7,7 @@ import {
SendArkElement,
SendMessageElement,
Peer
} from '@/core/qqnt/entities';
} from '@/core/entities';
import {
OB11MessageCustomMusic,
@@ -17,7 +17,7 @@ import {
OB11MessageNode,
OB11PostSendMsg
} from '../../types';
import { SendMsgElementConstructor } from '@/core/qqnt/entities/constructor';
import { SendMsgElementConstructor } from '@/core/entities/constructor';
import BaseAction from '../BaseAction';
import { ActionName, BaseCheckResult } from '../types';
import * as fs from 'node:fs';
@@ -27,8 +27,8 @@ import { log } from '@/common/utils/log';
import { sleep } from '@/common/utils/helper';
import { uri2local } from '@/common/utils/file';
import { getFriend, getGroup, getGroupMember, getUidByUin, selfInfo } from '@/common/data';
import { NTQQMsgApi } from '@/core/qqnt/apis';
import { NTQQFileApi } from '@/core/qqnt/apis';
import { NTQQMsgApi } from '../../../core/src/apis';
import { NTQQFileApi } from '../../../core/src/apis';
const ALLOW_SEND_TEMP_MSG = false;

View File

@@ -6,9 +6,9 @@ import {
ChatType,
ChatCacheListItemBasic,
CacheFileType
} from '../../../ntqqapi/types';
} from '@/core/entities';
import { dbUtil } from '../../../common/db';
import { NTQQFileApi, NTQQFileCacheApi } from '@/core/qqnt/apis/file';
import { NTQQFileApi, NTQQFileCacheApi } from '@/core/apis/file';
export default class CleanCache extends BaseAction<void, void> {
actionName = ActionName.CleanCache;
@@ -102,4 +102,4 @@ function getCacheList(type: ChatType) { // NOTE: 做这个方法主要是因为
})
.catch(e => rej(e));
});
}
}

View File

@@ -1,7 +1,7 @@
import BaseAction from '../BaseAction';
import { OB11Status } from '../../types';
import { ActionName } from '../types';
import { selfInfo } from '../../../common/data';
import { selfInfo } from '@/common/data';
export default class GetStatus extends BaseAction<any, OB11Status> {

View File

@@ -1,4 +1,4 @@
import { NTQQUserApi } from '@/core/qqnt/apis';
import { NTQQUserApi } from '../../../core/src/apis';
import BaseAction from '../BaseAction';
import { getFriend, getUidByUin, uid2UinMap } from '../../../common/data';
import { ActionName } from '../types';

View File

@@ -1,6 +1,6 @@
import BaseAction from '../BaseAction';
import { ActionName } from '../types';
import { NTQQFriendApi } from '@/core/qqnt/apis/friend';
import { NTQQFriendApi } from '@/core/apis/friend';
import { friendRequests } from '@/common/data';
interface Payload {

View File

@@ -66,7 +66,7 @@ class Config implements OB11Config {
console.log('get config', jsonData);
Object.assign(this, jsonData);
// eslint-disable-next-line
} catch (e) {
} catch (e: any) {
if (e instanceof SyntaxError) {
console.error(`配置文件 ${ob11ConfigPath} 格式错误,请检查配置文件:`, e.message);
}else{

View File

@@ -22,7 +22,7 @@ import {
Sex,
TipGroupElementType,
User
} from '@/core/qqnt/entities';
} from '../core/src/entities';
import { EventType } from './event/OB11BaseEvent';
import { encodeCQCode } from './cqcode';
import { dbUtil } from '@/common/utils/db';
@@ -40,7 +40,7 @@ import { OB11GroupCardEvent } from './event/notice/OB11GroupCardEvent';
import { OB11GroupDecreaseEvent } from './event/notice/OB11GroupDecreaseEvent';
import { ob11Config } from '@/onebot11/config';
import { deleteGroup, getFriend, getGroupMember, groupMembers, selfInfo, tempGroupCodeMap } from '@/common/data';
import { NTQQFileApi, NTQQGroupApi, NTQQUserApi } from '@/core/qqnt/apis';
import { NTQQFileApi, NTQQGroupApi, NTQQUserApi } from '../core/src/apis';
import http from 'http';

View File

@@ -1,107 +0,0 @@
import { napCatCore } from '@/core';
import { MsgListener } from '@/core/qqnt/listeners';
import { NapCatOnebot11 } from '@/onebot11/main';
import { ob11Config } from '@/onebot11/config';
import { program } from 'commander';
import qrcode from 'qrcode-terminal';
import * as readline from 'node:readline';
import fs from 'fs/promises';
import path from 'node:path';
import { postLoginStatus } from '@/common/utils/umami';
import { checkVersion } from '@/common/utils/version';
program
.option('-q, --qq <type>', 'QQ号')
.parse(process.argv);
const cmdOptions = program.opts();
console.log(process.argv);
checkVersion().then((remoteVersion: string) => {
const localVersion = require('./package.json').version;
const localVersionList = localVersion.split('.');
const remoteVersionList = remoteVersion.split('.');
console.log('[NapCat] 当前版本:', localVersion);
for (const k of [0, 1, 2]) {
if (parseInt(remoteVersionList[k]) > parseInt(localVersionList[k])) {
console.log('[NapCat] 检测到更新,请前往 https://github.com/NapNeko/NapCatQQ 下载 NapCatQQ V', remoteVersion);
return;
} else if (parseInt(remoteVersionList[k]) < parseInt(localVersionList[k])) {
break;
}
}
console.log('[NapCat] 当前已是最新版本');
return;
}).catch((e) => {
console.error('[NapCat] 检测更新失败');
});
new NapCatOnebot11();
napCatCore.addLoginSuccessCallback(() => {
console.log('login success');
postLoginStatus();
const msgListener = new MsgListener();
msgListener.onRecvMsg = (msg) => {
// console.log(JSON.stringify(Array.from(msg[0].msgAttrs.values())));
// napCatCore.service.msg.kernelService?.getMsgsByMsgId(msg[0].msgId, 20).then(res=>console.log(res));
// console.log("onRecvMsg", msg)
};
// napCatCore.getGroupService().getGroupExtList(true).then((res) => {
// console.log(res)
// })
napCatCore.service.msg.addMsgListener(msgListener);
});
napCatCore.on('system.login.qrcode', (qrCodeData: { url: string, base64: string }) => {
console.log('请扫描下面的二维码然后在手Q上授权登录');
console.log('二维码解码URL:', qrCodeData.url);
const qrcodePath = path.join(__dirname, 'qrcode.png');
fs.writeFile(qrcodePath, qrCodeData.base64.split('data:image/png;base64')[1], 'base64').then(() => {
console.log('二维码已保存到', qrcodePath);
});
qrcode.generate(qrCodeData.url, { small: true }, (res) => {
console.log(res);
});
});
// console.log(cmdOptions);
const quickLoginQQ = cmdOptions.qq;
napCatCore.on('system.login.error', (result) => {
console.error('登录失败', result);
napCatCore.login.qrcode().then().catch(console.error);
});
if (quickLoginQQ) {
console.log('quick login', quickLoginQQ);
napCatCore.login.quick(quickLoginQQ).then().catch((e) => {
console.error(`${quickLoginQQ}快速登录不可用,请检查是否已经登录了`, e);
napCatCore.login.qrcode().then();
});
} else {
console.info('没有 -q 参数指定快速登录的QQ将使用二维码登录方式');
napCatCore.login.qrcode().then();
}
// napCatCore.login.service.getLoginList().then((res) => {
// const quickLoginUinList = res.LocalLoginInfoList.filter((item) => item.isQuickLogin).map((item) => item.uin);
// if (quickLoginUinList.length !== 0) {
// const askQuickLoginUin = readline.createInterface({
// input: process.stdin,
// output: process.stdout
// });
// const prompt = `选择快速登录的账号\n\n ${quickLoginUinList.map((u, index) => `${index}: ${u}\n`)}\n输入对应序号按回车确定: `;
// askQuickLoginUin.question(prompt, (uinIndex) => {
// console.log('你选择的是:', uinIndex);
// const uin = quickLoginUinList[parseInt(uinIndex)];
// if (!uin) {
// console.error('请输入正确的序号');
// return;
// }
// console.log('开始登录', uin);
// napCatCore.login.quick(uin).then().catch((e) => {
// console.error(e);
// });
// });
// }
// }
// );
//napCatCore.passwordLogin("", "").then(console.log).catch((e) => {
// console.log(e)
//})

View File

@@ -1,5 +1,5 @@
import { napCatCore } from '@/core';
import { MsgListener } from '@/core/qqnt/listeners';
import { MsgListener } from '../core/src/listeners';
import { OB11Constructor } from '@/onebot11/constructor';
import { postOB11Event } from '@/onebot11/server/postOB11Event';
import {
@@ -10,16 +10,16 @@ import {
GroupNotify,
GroupNotifyTypes,
RawMessage
} from '@/core/qqnt/entities';
} from '../core/src/entities';
import { ob11Config } from '@/onebot11/config';
import { httpHeart, ob11HTTPServer } from '@/onebot11/server/http';
import { ob11WebsocketServer } from '@/onebot11/server/ws/WebsocketServer';
import { ob11ReverseWebsockets } from '@/onebot11/server/ws/ReverseWebsocket';
import { friendRequests, getFriend, getGroup, getGroupMember, groupNotifies, selfInfo } from '@/common/data';
import { dbUtil } from '@/common/utils/db';
import { BuddyListener, GroupListener, NodeIKernelBuddyListener } from '@/core/qqnt/listeners';
import { BuddyListener, GroupListener, NodeIKernelBuddyListener } from '../core/src/listeners';
import { OB11FriendRequestEvent } from '@/onebot11/event/request/OB11FriendRequest';
import { NTQQGroupApi, NTQQUserApi } from '@/core/qqnt/apis';
import { NTQQGroupApi, NTQQUserApi } from '../core/src/apis';
import { log } from '@/common/utils/log';
import { OB11GroupRequestEvent } from '@/onebot11/event/request/OB11GroupRequest';
import { OB11GroupAdminNoticeEvent } from '@/onebot11/event/notice/OB11GroupAdminNoticeEvent';
@@ -156,7 +156,7 @@ export class NapCatOnebot11 {
}).catch(e => log('constructGroupEvent error: ', e));
OB11Constructor.FriendAddEvent(message).then(friendAddEvent=>{
if(friendAddEvent){
postOB11Event(friendAddEvent)
postOB11Event(friendAddEvent);
}
}).catch(e => log('constructFriendAddEvent error: ', e));
}

View File

@@ -6,14 +6,14 @@ import { wsReply } from './ws/reply';
import { log } from '@/common/utils/log';
import { ob11Config } from '@/onebot11/config';
import crypto from 'crypto';
import { ChatType, Group, GroupRequestOperateTypes, Peer } from '@/core/qqnt/entities';
import { ChatType, Group, GroupRequestOperateTypes, Peer } from '../../core/src/entities';
import { convertMessage2List, createSendElements, sendMsg } from '../action/msg/SendMsg';
import { OB11FriendRequestEvent } from '../event/request/OB11FriendRequest';
import { OB11GroupRequestEvent } from '../event/request/OB11GroupRequest';
import { isNull } from '@/common/utils/helper';
import { dbUtil } from '@/common/utils/db';
import { friendRequests, getGroup, groupNotifies, selfInfo } from '@/common/data';
import { NTQQFriendApi, NTQQGroupApi, NTQQMsgApi } from '@/core/qqnt/apis';
import { NTQQFriendApi, NTQQGroupApi, NTQQMsgApi } from '../../core/src/apis';
export type PostEventType = OB11Message | OB11BaseMetaEvent | OB11BaseNoticeEvent

View File

@@ -1,4 +1,4 @@
import { PicSubType, RawMessage } from '@/core/qqnt/entities';
import { PicSubType, RawMessage } from '@/core';
import { EventType } from './event/OB11BaseEvent';
export interface OB11User {