diff --git a/src/core/apis/friend.ts b/src/core/apis/friend.ts index b4c7b797..20574d7d 100644 --- a/src/core/apis/friend.ts +++ b/src/core/apis/friend.ts @@ -54,21 +54,21 @@ export class NTQQFriendApi { uids.push( ...buddyListV2.flatMap(item => { item.buddyUids.forEach(uid => { - categoryMap.set(uid, { categoryId: item.categoryId, categroyName: item.categroyName }); + categoryMap.set(uid, { categoryId: item.categoryId, categoryName: item.categroyName }); }); return item.buddyUids; })); const data = await this.core.eventWrapper.callNoListenerEvent( 'NodeIKernelProfileService/getCoreAndBaseInfo', 5000, 'nodeStore', uids, ); - return Array.from(data).map(([key, value]) => { - const category = categoryMap.get(key); - return category ? { - ...value, - categoryId: category.categoryId, - categroyName: category.categroyName, - } : value; - }); + return buddyListV2.map(category => ({ + categoryId: category.categoryId, + categorySortId: category.categorySortId, + categoryName: category.categroyName, + categoryMbCount: category.categroyMbCount, + onlineCount: category.onlineCount, + buddyList: category.buddyUids.map(uid => data.get(uid)!).filter(value => value), + })); } async isBuddy(uid: string) { diff --git a/src/core/entities/user.ts b/src/core/entities/user.ts index 9b2c0091..073f0cd8 100644 --- a/src/core/entities/user.ts +++ b/src/core/entities/user.ts @@ -176,10 +176,7 @@ export interface SimpleInfo { intimate: any | null; } -export interface FriendV2 extends SimpleInfo { - categoryId?: number; - categroyName?: string; -} +export type FriendV2 = SimpleInfo; export interface SelfStatusInfo { uid: string; diff --git a/src/onebot/action/extends/GetFriendWithCategory.ts b/src/onebot/action/extends/GetFriendWithCategory.ts index 5554d4af..04373d0c 100644 --- a/src/onebot/action/extends/GetFriendWithCategory.ts +++ b/src/onebot/action/extends/GetFriendWithCategory.ts @@ -8,7 +8,10 @@ export class GetFriendWithCategory extends BaseAction { async _handle(payload: void) { if (this.CoreContext.context.basicInfoWrapper.requireMinNTQQBuild('26702')) { //全新逻辑 - return OB11Constructor.friendsV2(await this.CoreContext.apis.FriendApi.getBuddyV2ExWithCate(true)); + return (await this.CoreContext.apis.FriendApi.getBuddyV2ExWithCate(true)).map(category => ({ + ...category, + buddyList: OB11Constructor.friendsV2(category.buddyList), + })); } else { throw new Error('this ntqq version not support, must be 26702 or later'); } diff --git a/src/onebot/helper/data.ts b/src/onebot/helper/data.ts index dfe7a1e2..763145ae 100644 --- a/src/onebot/helper/data.ts +++ b/src/onebot/helper/data.ts @@ -656,8 +656,6 @@ export class OB11Constructor { remark: friend.coreInfo.nick, sex: sexValue, level: 0, - categroyName: friend.categroyName, - categoryId: friend.categoryId, }); }); return data; diff --git a/src/onebot/types/entity.ts b/src/onebot/types/entity.ts index 99a99290..279b2866 100644 --- a/src/onebot/types/entity.ts +++ b/src/onebot/types/entity.ts @@ -7,7 +7,7 @@ export interface OB11User { age?: number; qid?: string; login_days?: number; - categroyName?: string; + categoryName?: string; categoryId?: number; }