From aaaee383a8b32acd5b326f765ac6bbbd5cac4342 Mon Sep 17 00:00:00 2001 From: 127Wzc <1274925976@qq.com> Date: Tue, 11 Mar 2025 23:13:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?onebot=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E7=BE=A4=E8=81=8A?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=8F=8A=E5=9B=BE=E7=89=87tools=E5=8F=91?= =?UTF-8?q?=E5=9B=BE=E5=BC=82=E5=B8=B8=201.=E7=B1=BB=E6=AF=94shamrock?= =?UTF-8?q?=EF=BC=8Conebot=E4=BD=BF=E7=94=A8e.group.getChatHistory(0,=20nu?= =?UTF-8?q?m,=20false)=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E5=8F=96?= =?UTF-8?q?=E5=88=B0=E8=AE=B0=E5=BD=95=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=202.=E6=88=91=E8=BF=99=E8=BE=B9napcat=E7=9A=84onebot=E5=BE=97?= =?UTF-8?q?=E5=88=B0=E7=9A=84e.bot.getGroupList()=E6=98=AF=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E8=BF=99=E3=80=82=E4=B8=8D=E5=90=8C=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E5=B7=AE=E5=88=AB=E8=BF=99=E4=B9=88=E5=A4=A7=E5=90=97=E3=80=82?= =?UTF-8?q?=E3=80=82=E5=85=88=E8=BF=99=E6=A0=B7=E8=83=BD=E5=8F=91=E9=80=81?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/chat.js | 82 +++++++++++++++++----------------- utils/tools/SendPictureTool.js | 3 +- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/utils/chat.js b/utils/chat.js index 1d86038..d07cf05 100644 --- a/utils/chat.js +++ b/utils/chat.js @@ -2,54 +2,54 @@ import { Config } from './config.js' import { newFetch } from './proxy.js' export async function getChatHistoryGroup (e, num) { - // if (e.adapter === 'shamrock') { - // return await e.group.getChatHistory(0, num, false) - // } else { - let latestChats = await e.group.getChatHistory(e.seq || e.message_id, 1) - if (latestChats.length > 0) { - let latestChat = latestChats[0] - if (latestChat) { - let seq = latestChat.seq || latestChat.message_id - let chats = [] - while (chats.length < num) { - let chatHistory = await e.group.getChatHistory(seq, 20) - if (!chatHistory || chatHistory.length === 0) { - break + if (e.adapter_name && e.adapter_name === 'OneBotv11') { + return await e.group.getChatHistory(0, num, false) + } else { + let latestChats = await e.group.getChatHistory(e.seq || e.message_id, 1) + if (latestChats.length > 0) { + let latestChat = latestChats[0] + if (latestChat) { + let seq = latestChat.seq || latestChat.message_id + let chats = [] + while (chats.length < num) { + let chatHistory = await e.group.getChatHistory(seq, 20) + if (!chatHistory || chatHistory.length === 0) { + break + } + chats.push(...chatHistory.reverse()) + if (seq === chatHistory[chatHistory.length - 1].seq || seq === chatHistory[chatHistory.length - 1].message_id) { + break + } + seq = chatHistory[chatHistory.length - 1].seq || chatHistory[chatHistory.length - 1].message_id } - chats.push(...chatHistory.reverse()) - if (seq === chatHistory[chatHistory.length - 1].seq || seq === chatHistory[chatHistory.length - 1].message_id) { - break - } - seq = chatHistory[chatHistory.length - 1].seq || chatHistory[chatHistory.length - 1].message_id - } - chats = chats.slice(0, num).reverse() - try { - let mm = await e.bot.gml - for (const chat of chats) { - if (e.adapter === 'shamrock') { - if (chat.sender?.user_id === 0) { - // 奇怪格式的历史消息,过滤掉 - continue - } - let sender = await pickMemberAsync(e, chat.sender.user_id) - if (sender) { - chat.sender = sender - } - } else { - let sender = mm.get(chat.sender.user_id) - if (sender) { - chat.sender = sender + chats = chats.slice(0, num).reverse() + try { + let mm = await e.bot.gml + for (const chat of chats) { + if (e.adapter === 'shamrock') { + if (chat.sender?.user_id === 0) { + // 奇怪格式的历史消息,过滤掉 + continue + } + let sender = await pickMemberAsync(e, chat.sender.user_id) + if (sender) { + chat.sender = sender + } + } else { + let sender = mm.get(chat.sender.user_id) + if (sender) { + chat.sender = sender + } } } + } catch (err) { + logger.warn(err) } - } catch (err) { - logger.warn(err) + // console.log(chats) + return chats } - // console.log(chats) - return chats } } - // } return [] } diff --git a/utils/tools/SendPictureTool.js b/utils/tools/SendPictureTool.js index 1ff6407..412bc2c 100644 --- a/utils/tools/SendPictureTool.js +++ b/utils/tools/SendPictureTool.js @@ -45,7 +45,8 @@ export class SendPictureTool extends AbstractTool { } let errs = [] try { - if (groupList.get(target)) { + if ((typeof groupList.get === 'function' && groupList.get(target)) || + (Array.isArray(groupList) && groupList.includes(target))) { let group = await e.bot.pickGroup(target) for (let pic of pictures) { try { From 04b331af71c31b8279be49a1c48b455c8fd0deef Mon Sep 17 00:00:00 2001 From: 127Wzc <52766844+127Wzc@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:51:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:onebot=E5=9B=9E=E5=A4=8D=E5=9B=BE?= =?UTF-8?q?=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/common.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/utils/common.js b/utils/common.js index 0fea08a..e1ab430 100644 --- a/utils/common.js +++ b/utils/common.js @@ -734,6 +734,15 @@ export async function getImg (e) { e.img = i } } + if (e.reply_id) { + let reply = (await e.getReply(e.reply_id)).message; + for (const val of reply) { + if (val.type === "image") { + e.img = [val.url]; + break; + } + } + } return e.img }