mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 13:57:10 +00:00
fix: 尝试修复onebot无法获取群聊记录及图片tools发图异常
1.类比shamrock,onebot使用e.group.getChatHistory(0, num, false)可以直接取到记录历史记录 2.我这边napcat的onebot得到的e.bot.getGroupList()是数组这。不同协议差别这么大吗。。先这样能发送了
This commit is contained in:
parent
4900f40502
commit
aaaee383a8
2 changed files with 43 additions and 42 deletions
|
|
@ -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 []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue