From 0d45125d7984a1b6e845aa475d8d9c39c2fde1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 28 Jul 2024 09:56:00 +0800 Subject: [PATCH] fix: uid && latestMsg --- src/common/utils/MessageUnique.ts | 19 ------------------- src/core/src/apis/group.ts | 13 ++++--------- src/core/src/apis/msg.ts | 14 +++++++++++++- .../src/services/NodeIKernelMsgService.ts | 2 +- .../action/go-cqhttp/GetGroupMsgHistory.ts | 7 ++++--- src/onebot11/main.ts | 11 ++++++----- 6 files changed, 28 insertions(+), 38 deletions(-) diff --git a/src/common/utils/MessageUnique.ts b/src/common/utils/MessageUnique.ts index ac6190ed..430ec621 100644 --- a/src/common/utils/MessageUnique.ts +++ b/src/common/utils/MessageUnique.ts @@ -115,25 +115,6 @@ class MessageUniqueWrapper { this.msgIdMap.resize(maxSize); this.msgDataMap.resize(maxSize); } - getNthLatestShortIdByPeer(peer: Peer, index: number = 1): number | undefined { - const peerUid = peer.peerUid; - const chatType = peer.chatType; - const keys = this.msgDataMap.getKeyList(); - const matches: number[] = []; - for (const key of keys) { - const [msgId, chatTypeStr, peerUidStr] = key.split('|'); - if (peerUidStr === peerUid && chatTypeStr === chatType.toString()) { - const shortId = this.msgDataMap.getValue(key); - if (shortId) { - matches.push(shortId); - } - } - } - if (matches.length >= index) { - return matches[matches.length - index]; - } - return undefined; - } } export const MessageUnique: MessageUniqueWrapper = new MessageUniqueWrapper(); \ No newline at end of file diff --git a/src/core/src/apis/group.ts b/src/core/src/apis/group.ts index 2a47a1a0..3163344a 100644 --- a/src/core/src/apis/group.ts +++ b/src/core/src/apis/group.ts @@ -1,4 +1,4 @@ -import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group, MemberExtSourceType, GroupNotifyTypes, ChatType } from '../entities'; +import { GroupMember, GroupRequestOperateTypes, GroupMemberRole, GroupNotify, Group, MemberExtSourceType, GroupNotifyTypes, ChatType, Peer } from '../entities'; import { GeneralCallResult, NTQQUserApi, napCatCore } from '@/core'; import { NTEventDispatch } from '@/common/utils/EventTask'; import { log } from '@/common/utils/log'; @@ -84,14 +84,9 @@ export class NTQQGroupApi { static async getLastestMsg(GroupCode: string, uins: string[]) { let uids: Array = []; for (let uin of uins) { - try { - let uid = await NTQQUserApi.getUidByUin(uin) - if (uid) { - uids.push(uid); - } - } catch (error) { - log("getLastestMsg--->", error); - return undefined; + let uid = await NTQQUserApi.getUidByUin(uin) + if (uid) { + uids.push(uid); } } let ret = await napCatCore.session.getMsgService().queryMsgsWithFilterEx('0', '0', '0', { diff --git a/src/core/src/apis/msg.ts b/src/core/src/apis/msg.ts index 06032df9..137d8faf 100644 --- a/src/core/src/apis/msg.ts +++ b/src/core/src/apis/msg.ts @@ -63,7 +63,19 @@ export class NTQQMsgApi { } | undefined> { return napCatCore.session.getMsgService().getMultiMsg(peer, rootMsgId, parentMsgId); } - + static async getLastestMsgByUids(peer: Peer) { + let ret = await napCatCore.session.getMsgService().queryMsgsWithFilterEx('0', '0', '0', { + chatInfo: peer, + filterMsgType: [], + filterSendersUid: [], + filterMsgToTime: '0', + filterMsgFromTime: '0', + isReverseOrder: false, + isIncludeCurrent: true, + pageLimit: 1, + }); + return ret; + } static async getMsgsByMsgId(peer: Peer, msgIds: string[]) { return await napCatCore.session.getMsgService().getMsgsByMsgId(peer, msgIds); } diff --git a/src/core/src/services/NodeIKernelMsgService.ts b/src/core/src/services/NodeIKernelMsgService.ts index 80e74a11..da8e5a76 100644 --- a/src/core/src/services/NodeIKernelMsgService.ts +++ b/src/core/src/services/NodeIKernelMsgService.ts @@ -141,7 +141,7 @@ export interface NodeIKernelMsgService { getLastMessageList(peer: Peer[]): Promise; - getAioFirstViewLatestMsgs(peer: Peer, unknown: number): unknown; + getAioFirstViewLatestMsgs(peer: Peer, num: number): unknown; getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise; diff --git a/src/onebot11/action/go-cqhttp/GetGroupMsgHistory.ts b/src/onebot11/action/go-cqhttp/GetGroupMsgHistory.ts index a2e051af..c8d4a6af 100644 --- a/src/onebot11/action/go-cqhttp/GetGroupMsgHistory.ts +++ b/src/onebot11/action/go-cqhttp/GetGroupMsgHistory.ts @@ -18,7 +18,7 @@ const SchemaData = { message_seq: { type: 'number' }, count: { type: 'number' } }, - required: [ 'group_id' ] + required: ['group_id'] } as const satisfies JSONSchema; type Payload = FromSchema; @@ -36,8 +36,9 @@ export default class GoCQHTTPGetGroupMsgHistory extends BaseAction {