refactor: BuddyList

This commit is contained in:
手瓜一十雪 2024-08-04 12:26:55 +08:00
parent 48d5cb53bd
commit 3db74c3427
3 changed files with 55 additions and 3 deletions

View File

@ -1,8 +1,14 @@
import { FriendRequest, User } from '@/core/entities';
import { napCatCore, OnBuddyChangeParams } from '@/core';
import { BuddyListReqType, napCatCore, OnBuddyChangeParams } from '@/core';
import { NTEventDispatch } from '@/common/utils/EventTask';
export class NTQQFriendApi {
static async getBuddyV2(refresh = false) {
if (!refresh) {
return await napCatCore.session.getBuddyService().getBuddyListFromCache('0');
}
return (await (napCatCore.session.getBuddyService().getBuddyListV2('0', BuddyListReqType.KNOMAL))).data;
}
static async isBuddy(uid: string) {
return napCatCore.session.getBuddyService().isBuddy(uid);
}

View File

@ -65,6 +65,43 @@ export class NTQQUserApi {
// KQZONE,
// KOTHER
// }
static async fetchUserDetailInfos(uids: string[]) {
type EventService = NodeIKernelProfileService['fetchUserDetailInfo'];
type EventListener = NodeIKernelProfileListener['onUserDetailInfoChanged'];
let retData: User[] = [];
let [_retData, _retListener] = await NTEventDispatch.CallNormalEvent
<EventService, EventListener>
(
'NodeIKernelProfileService/fetchUserDetailInfo',
'NodeIKernelProfileListener/onUserDetailInfoChanged',
uids.length,
5000,
(profile) => {
if (uids.includes(profile.uid)) {
let RetUser: User = {
...profile.simpleInfo.coreInfo,
...profile.simpleInfo.status,
...profile.simpleInfo.vasInfo,
...profile.commonExt,
...profile.simpleInfo.baseInfo,
qqLevel: profile.commonExt.qqLevel,
pendantId: ""
};
retData.push(RetUser);
return true;
}
return false;
},
"BuddyProfileStore",
uids,
UserDetailSource.KSERVER,
[
ProfileBizType.KALL
]
);
return retData;
}
static async fetchUserDetailInfo(uid: string) {
type EventService = NodeIKernelProfileService['fetchUserDetailInfo'];
type EventListener = NodeIKernelProfileListener['onUserDetailInfoChanged'];

View File

@ -7,7 +7,16 @@ export enum BuddyListReqType {
}
export interface NodeIKernelBuddyService {
// 26702 以上
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult>;
getBuddyListV2(callFrom: string, reqType: BuddyListReqType): Promise<GeneralCallResult & {
data: Array<{
categoryId: number,
categorySortId: number,
categroyName: string,
categroyMbCount: number,
onlineCount: number,
buddyUids: Array<string>
}>
}>;
//26702 以上
getBuddyListFromCache(callFrom: string): Promise<Array<
{
@ -22,7 +31,7 @@ export interface NodeIKernelBuddyService {
addKernelBuddyListener(listener: NodeIKernelBuddyListener): number;
getAllBuddyCount(): number;
removeKernelBuddyListener(listener: unknown): void;
/**