From fb46d8cc5364b84ec99cef1f2ce7381d08662cbc 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 }; } }