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/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 } 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 {