diff --git a/src/core/apis/friend.ts b/src/core/apis/friend.ts index 45a15161..cc808ffb 100644 --- a/src/core/apis/friend.ts +++ b/src/core/apis/friend.ts @@ -26,10 +26,6 @@ export class NTQQFriendApi { return Array.from(data.values()); } - async getBuddyIdMapCache(refresh = false): Promise> { - return await this.getBuddyIdMap(refresh); - } - async getBuddyIdMap(refresh = false): Promise> { const uids: string[] = []; const retMap: LimitedHashTable = new LimitedHashTable(5000); diff --git a/src/core/apis/msg.ts b/src/core/apis/msg.ts index 87fa8ce5..6aaf05f7 100644 --- a/src/core/apis/msg.ts +++ b/src/core/apis/msg.ts @@ -37,7 +37,6 @@ export class NTQQMsgApi { emojiId = emojiId.toString(); return this.context.session.getMsgService().setMsgEmojiLikes(peer, msgSeq, emojiId, emojiId.length > 3 ? '2' : '1', set); } - async getMultiMsg(peer: Peer, rootMsgId: string, parentMsgId: string): Promise { @@ -199,10 +198,6 @@ export class NTQQMsgApi { return this.context.session.getMSFService().getServerTime(); } - async getServerTimeV2() { - return this.core.eventWrapper.callNoListenerEvent<() => string>('NodeIKernelMsgService/getServerTime', 5000); - } - async forwardMsg(srcPeer: Peer, destPeer: Peer, msgIds: string[]) { return this.context.session.getMsgService().forwardMsg(msgIds, srcPeer, [destPeer], new Map()); } diff --git a/src/core/apis/user.ts b/src/core/apis/user.ts index eeae246a..15c140a3 100644 --- a/src/core/apis/user.ts +++ b/src/core/apis/user.ts @@ -203,26 +203,6 @@ export class NTQQUserApi { return skey; } - /** - * @deprecated - */ - async getUidByUin(Uin: string) { - if (this.context.basicInfoWrapper.requireMinNTQQBuild('26702')) { - return await this.getUidByUinV2(Uin); - } - return await this.getUidByUinV1(Uin); - } - - /** - * @deprecated - */ - async getUinByUid(Uid: string) { - if (this.context.basicInfoWrapper.requireMinNTQQBuild('26702')) { - return await this.getUinByUidV2(Uid); - } - return await this.getUinByUidV1(Uid); - } - //后期改成流水线处理 async getUidByUinV2(Uin: string) { let uid = (await this.context.session.getProfileService().getUidByUin('FriendsServiceImpl', [Uin])).get(Uin); @@ -251,36 +231,6 @@ export class NTQQUserApi { return uin; } - async getUidByUinV1(Uin: string) { - // 通用转换开始尝试 - let uid = (await this.context.session.getUixConvertService().getUid([Uin])).uidInfo.get(Uin); - if (!uid) { - const unveifyUid = (await this.getUserDetailInfoByUin(Uin)).info.uid;//从QQ Native 特殊转换 方法三 - if (unveifyUid.indexOf('*') == -1) { - uid = unveifyUid; - } - } - return uid; - } - - async getUinByUidV1(Uid: string) { - const ret = await this.core.eventWrapper.callNoListenerEvent<(Uin: string[]) => Promise<{ - uinInfo: Map - }>> - ('NodeIKernelUixConvertService/getUin', 5000, [Uid]); - let uin = ret.uinInfo.get(Uid); - if (!uin) { - uin = (await this.getUserDetailInfo(Uid)).uin; //从QQ Native 转换 - } - // if (!uin) { - // uin = (await NTQQFriendApi.getFriends(false)).find((t) => { t.uid == Uid })?.uin; //从QQ Native 缓存转换 - // } - // if (!uin) { - // uin = (await NTQQFriendApi.getFriends(true)).find((t) => { t.uid == Uid })?.uin; //从QQ Native 非缓存转换 - // } - return uin; - } - async getRecentContactListSnapShot(count: number) { return await this.context.session.getRecentContactService().getRecentContactListSnapShot(count); } diff --git a/src/onebot/action/group/GetGroupMemberList.ts b/src/onebot/action/group/GetGroupMemberList.ts index 9e7dc122..d555d24f 100644 --- a/src/onebot/action/group/GetGroupMemberList.ts +++ b/src/onebot/action/group/GetGroupMemberList.ts @@ -22,23 +22,17 @@ class GetGroupMemberList extends BaseAction { async _handle(payload: Payload) { const NTQQGroupApi = this.CoreContext.apis.GroupApi; const NTQQWebApi = this.CoreContext.apis.WebApi; - const isNocache = payload.no_cache == true || payload.no_cache === 'true'; - // const GroupList = await NTQQGroupApi.getGroups(isNocache); - // const group = GroupList.find(item => item.groupCode == payload.group_id); - // if (!group) { - // throw (`群${payload.group_id}不存在`); - // } + //const isNocache = payload.no_cache == true || payload.no_cache === 'true';//已强制无缓存 const groupMembers = await NTQQGroupApi.getGroupMembers(payload.group_id.toString()); const groupMembersArr = Array.from(groupMembers.values()); - const groupMembersUids = groupMembersArr.map(e => e.uid); + let _groupMembers = groupMembersArr.map(item => { return OB11Constructor.groupMember(payload.group_id.toString(), item); }); const MemberMap: Map = new Map(); - // 转为Map 方便索引 - const GroupMemberUids: string[] = []; const date = Math.round(Date.now() / 1000); + for (let i = 0, len = _groupMembers.length; i < len; i++) { // 保证基础数据有这个 同时避免群管插件过于依赖这个杀了 _groupMembers[i].join_time = date; @@ -46,59 +40,31 @@ class GetGroupMemberList extends BaseAction { MemberMap.set(_groupMembers[i].user_id, _groupMembers[i]); } - if (!this.CoreContext.context.basicInfoWrapper.requireMinNTQQBuild('26702')) { - const selfRole = groupMembers.get(this.CoreContext.selfInfo.uid)?.role; - const isPrivilege = selfRole === 3 || selfRole === 4; + const selfRole = groupMembers.get(this.CoreContext.selfInfo.uid)?.role; + const isPrivilege = selfRole === 3 || selfRole === 4; - if (isPrivilege) { - const webGroupMembers = await NTQQWebApi.getGroupMembers(payload.group_id.toString()); - for (let i = 0, len = webGroupMembers.length; i < len; i++) { - if (!webGroupMembers[i]?.uin) { - continue; - } - const MemberData = MemberMap.get(webGroupMembers[i]?.uin); - if (MemberData) { - MemberData.join_time = webGroupMembers[i]?.join_time; - MemberData.last_sent_time = webGroupMembers[i]?.last_speak_time; - MemberData.qage = webGroupMembers[i]?.qage; - MemberData.level = webGroupMembers[i]?.lv.level.toString(); - MemberMap.set(webGroupMembers[i]?.uin, MemberData); - } + _groupMembers.forEach(item => { + item.last_sent_time = date; + item.join_time = date; + }); + + if (isPrivilege) { + const webGroupMembers = await NTQQWebApi.getGroupMembers(payload.group_id.toString()); + for (let i = 0, len = webGroupMembers.length; i < len; i++) { + if (!webGroupMembers[i]?.uin) { + continue; } - } else { - if (isNocache) { - const DateMap = await NTQQGroupApi.getGroupMemberLatestSendTimeCache(payload.group_id.toString(), groupMembersUids);//开始从本地拉取 - for (const DateUin of DateMap.keys()) { - const MemberData = MemberMap.get(parseInt(DateUin)); - if (MemberData) { - MemberData.last_sent_time = parseInt(DateMap.get(DateUin)!); - //join_time 有基础数据兜底 - } - } - } else { - _groupMembers.forEach(item => { - item.last_sent_time = date; - item.join_time = date; - }); + const MemberData = MemberMap.get(webGroupMembers[i]?.uin); + if (MemberData) { + MemberData.join_time = webGroupMembers[i]?.join_time; + MemberData.last_sent_time = webGroupMembers[i]?.last_speak_time; + MemberData.qage = webGroupMembers[i]?.qage; + MemberData.level = webGroupMembers[i]?.lv.level.toString(); + MemberMap.set(webGroupMembers[i]?.uin, MemberData); } } - } else { - // Mlikiowa V2.0.20 Refactor Todo - // _groupMembers.forEach(async item => { - // item.last_sent_time = parseInt((await getGroupMember(payload.group_id.toString(), item.user_id))?.lastSpeakTime || date.toString()); - // item.join_time = parseInt((await getGroupMember(payload.group_id.toString(), item.user_id))?.joinTime || date.toString()); - // }); } - // 还原索引到Array 一同返回 - - // let retData: any[] = []; - // for (let retMem of MemberMap.values()) { - // retMem.level = TypeConvert.toString(retMem.level) as any; - // retData.push(retMem) - // } - - // _groupMembers = Array.from(retData); - + _groupMembers = Array.from(MemberMap.values()); return _groupMembers; }