fix: 上下文、文件、ocr等进一步适配shamrock

This commit is contained in:
ikechan8370 2023-12-10 23:08:10 +08:00
parent 46328a9716
commit 247f3e15d0
4 changed files with 70 additions and 33 deletions

View file

@ -1,3 +1,5 @@
import common from '../../../lib/common/common.js'
export async function getChatHistoryGroup (e, num) {
// if (e.adapter === 'shamrock') {
// return await e.group.getChatHistory(0, num, false)
@ -16,12 +18,23 @@ export async function getChatHistoryGroup (e, num) {
chats = chats.slice(0, num)
try {
let mm = await e.group.getMemberMap()
chats.forEach(chat => {
let sender = mm.get(chat.sender.user_id)
if (sender) {
chat.sender = sender
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)
}
@ -32,3 +45,11 @@ export async function getChatHistoryGroup (e, num) {
// }
return []
}
function pickMemberAsync (e, userId) {
return new Promise((resolve, reject) => {
e.group.pickMember(userId, true, (sender) => {
resolve(sender)
})
})
}