Merge branch 'pr-774' into v2

兼容napcat
This commit is contained in:
Chenyuxin221 2025-04-01 22:34:18 +08:00
commit abf6fa6ac2
3 changed files with 52 additions and 42 deletions

View file

@ -2,54 +2,54 @@ import { Config } from './config.js'
import { newFetch } from './proxy.js' import { newFetch } from './proxy.js'
export async function getChatHistoryGroup (e, num) { export async function getChatHistoryGroup (e, num) {
// if (e.adapter === 'shamrock') { if (e.adapter_name && e.adapter_name === 'OneBotv11') {
// return await e.group.getChatHistory(0, num, false) return await e.group.getChatHistory(0, num, false)
// } else { } else {
let latestChats = await e.group.getChatHistory(e.seq || e.message_id, 1) let latestChats = await e.group.getChatHistory(e.seq || e.message_id, 1)
if (latestChats.length > 0) { if (latestChats.length > 0) {
let latestChat = latestChats[0] let latestChat = latestChats[0]
if (latestChat) { if (latestChat) {
let seq = latestChat.seq || latestChat.message_id let seq = latestChat.seq || latestChat.message_id
let chats = [] let chats = []
while (chats.length < num) { while (chats.length < num) {
let chatHistory = await e.group.getChatHistory(seq, 20) let chatHistory = await e.group.getChatHistory(seq, 20)
if (!chatHistory || chatHistory.length === 0) { if (!chatHistory || chatHistory.length === 0) {
break 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()) chats = chats.slice(0, num).reverse()
if (seq === chatHistory[chatHistory.length - 1].seq || seq === chatHistory[chatHistory.length - 1].message_id) { try {
break let mm = await e.bot.gml
} for (const chat of chats) {
seq = chatHistory[chatHistory.length - 1].seq || chatHistory[chatHistory.length - 1].message_id if (e.adapter === 'shamrock') {
} if (chat.sender?.user_id === 0) {
chats = chats.slice(0, num).reverse() // 奇怪格式的历史消息,过滤掉
try { continue
let mm = await e.bot.gml }
for (const chat of chats) { let sender = await pickMemberAsync(e, chat.sender.user_id)
if (e.adapter === 'shamrock') { if (sender) {
if (chat.sender?.user_id === 0) { chat.sender = sender
// 奇怪格式的历史消息,过滤掉 }
continue } else {
} let sender = mm.get(chat.sender.user_id)
let sender = await pickMemberAsync(e, chat.sender.user_id) if (sender) {
if (sender) { chat.sender = 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) { // console.log(chats)
logger.warn(err) return chats
} }
// console.log(chats)
return chats
} }
} }
// }
return [] return []
} }

View file

@ -734,6 +734,15 @@ export async function getImg (e) {
e.img = i 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 return e.img
} }

View file

@ -45,7 +45,8 @@ export class SendPictureTool extends AbstractTool {
} }
let errs = [] let errs = []
try { 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) let group = await e.bot.pickGroup(target)
for (let pic of pictures) { for (let pic of pictures) {
try { try {