From 81e4e54f2555f8b4abd66cfb3d260d89bd493d31 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, 25 Jan 2026 13:21:27 +0800 Subject: [PATCH] Optimize emoji likes fetching logic Adjusts the pagination logic to fetch only the required number of pages based on the requested count. Trims the result list to the specified count if provided, improving efficiency and accuracy. --- packages/napcat-onebot/action/extends/GetEmojiLikes.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/napcat-onebot/action/extends/GetEmojiLikes.ts b/packages/napcat-onebot/action/extends/GetEmojiLikes.ts index 502150ac..5eaee161 100644 --- a/packages/napcat-onebot/action/extends/GetEmojiLikes.ts +++ b/packages/napcat-onebot/action/extends/GetEmojiLikes.ts @@ -49,8 +49,8 @@ export class GetEmojiLikes extends OneBotAction { const emojiType = payload.emoji_type ?? (payload.emoji_id.length > 3 ? '2' : '1'); const emojiLikeList: Array<{ user_id: string; nick_name: string; }> = []; let cookie = ''; - - for (let page = 0; page < 200; page++) { + let needFetchCount = payload.count == 0 ? 200 : Math.ceil(payload.count / 15); + for (let page = 0; page < needFetchCount; page++) { const res = await this.core.apis.MsgApi.getMsgEmojiLikesList( peer, msg.msgSeq, payload.emoji_id.toString(), emojiType, cookie, 15 ); @@ -64,7 +64,10 @@ export class GetEmojiLikes extends OneBotAction { if (res.isLastPage || !res.cookie) break; cookie = res.cookie; } - + // 切断多余部分 + if (payload.count > 0) { + emojiLikeList.splice(payload.count); + } return { emoji_like_list: emojiLikeList }; } }