From eae49667ef292a03d16db5c4988bff209340a30a 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: Fri, 24 Jan 2025 21:39:53 +0800 Subject: [PATCH] fix: GetProfileLike --- .gitignore | 4 +-- .../services/NodeIKernelProfileLikeService.ts | 11 ++++++-- src/onebot/action/extends/GetProfileLike.ts | 26 +++++++++++-------- 3 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 1a2b33ac..522e2388 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ package-lock.json out/ dist/ /src/core.lib/common/ -/localdebug/ +devconfig/* # Editor !.vscode/extensions.json @@ -13,4 +13,4 @@ dist/ # Build *.db checkVersion.sh -bun.lockb +bun.lockb \ No newline at end of file diff --git a/src/core/services/NodeIKernelProfileLikeService.ts b/src/core/services/NodeIKernelProfileLikeService.ts index 5bc413d5..8e692255 100644 --- a/src/core/services/NodeIKernelProfileLikeService.ts +++ b/src/core/services/NodeIKernelProfileLikeService.ts @@ -10,14 +10,21 @@ export interface NodeIKernelProfileLikeService { getBuddyProfileLike(req: BuddyProfileLikeReq): Promise,//哪些人点我 + total_count: number, + last_time: number, + today_count: number + }, voteInfo: { total_count: number, new_count: number, new_nearby_count: number, last_visit_time: number, - userInfos: Array + userInfos: Array,//点过哪些人 } - }>, friendMaxVotes: number, start: number diff --git a/src/onebot/action/extends/GetProfileLike.ts b/src/onebot/action/extends/GetProfileLike.ts index 966dfdd1..db7b207a 100644 --- a/src/onebot/action/extends/GetProfileLike.ts +++ b/src/onebot/action/extends/GetProfileLike.ts @@ -5,8 +5,7 @@ import { Type, Static } from '@sinclair/typebox'; const SchemaData = Type.Object({ user_id: Type.Optional(Type.Union([Type.Number(), Type.String()])), start: Type.Union([Type.Number(), Type.String()], { default: 0 }), - count: Type.Union([Type.Number(), Type.String()], { default: 10 }), - type: Type.Union([Type.Number(), Type.String()], { default: 2 }), + count: Type.Union([Type.Number(), Type.String()], { default: 10 }) }); type Payload = Static; @@ -15,15 +14,20 @@ export class GetProfileLike extends OneBotAction { actionName = ActionName.GetProfileLike; payloadSchema = SchemaData; async _handle(payload: Payload) { - const user_uid = - this.core.selfInfo.uin === payload.user_id || !payload.user_id ? - this.core.selfInfo.uid : - await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); - const ret = await this.core.apis.UserApi.getProfileLike(user_uid ?? this.core.selfInfo.uid, +payload.start, +payload.count, +payload.type); - const listdata = ret.info.userLikeInfos[0].voteInfo.userInfos; - for (const item of listdata) { + const isSelf = this.core.selfInfo.uin === payload.user_id || !payload.user_id; + const userUid = isSelf || !payload.user_id ? this.core.selfInfo.uid : await this.core.apis.UserApi.getUidByUinV2(payload.user_id.toString()); + const type = isSelf ? 2 : 1; + const ret = await this.core.apis.UserApi.getProfileLike(userUid ?? this.core.selfInfo.uid, +payload.start, +payload.count, type); + const data = ret.info.userLikeInfos[0]; + if (!data) { + throw new Error('get info error'); + } + for (const item of data.voteInfo.userInfos) { item.uin = +((await this.core.apis.UserApi.getUinByUidV2(item.uid)) ?? ''); } - return ret.info.userLikeInfos[0].voteInfo; + for (const item of data.favoriteInfo.userInfos) { + item.uin = +((await this.core.apis.UserApi.getUinByUidV2(item.uid)) ?? ''); + } + return data; } -} +} \ No newline at end of file