Merge branch 'v2' into v2

This commit is contained in:
ycxom 2025-02-15 19:44:33 +08:00 committed by GitHub
commit a568f3c15a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 68 additions and 297 deletions

View file

@ -16,13 +16,13 @@ export async function getChatHistoryGroup (e, num) {
if (!chatHistory || chatHistory.length === 0) {
break
}
chats.push(...chatHistory)
if (seq === chatHistory[0].seq || seq === chatHistory[0].message_id) {
chats.push(...chatHistory.reverse())
if (seq === chatHistory[chatHistory.length - 1].seq || seq === chatHistory[chatHistory.length - 1].message_id) {
break
}
seq = chatHistory[0].seq || chatHistory[0].message_id
seq = chatHistory[chatHistory.length - 1].seq || chatHistory[chatHistory.length - 1].message_id
}
chats = chats.slice(0, num)
chats = chats.slice(0, num).reverse()
try {
let mm = await e.bot.gml
for (const chat of chats) {

View file

@ -12,14 +12,18 @@ export class SerpImageTool extends AbstractTool {
limit: {
type: 'number',
description: 'image number'
},
source: {
type: 'string',
description: 'search source, bing or yandex'
}
},
required: ['q']
required: ['q', 'source']
}
func = async function (opts) {
let { q, limit = 2 } = opts
let serpRes = await fetch(`https://serp.ikechan8370.com/image/bing?q=${encodeURIComponent(q)}&limit=${limit}`, {
let { q, limit = 2, source = 'bing' } = opts
let serpRes = await fetch(`https://serp.ikechan8370.com/image/${source}?q=${encodeURIComponent(q)}&limit=${limit}`, {
headers: {
'X-From-Library': 'ikechan8370'
}

View file

@ -41,18 +41,32 @@ export class SendPictureTool extends AbstractTool {
} catch (err) {
groupList = e.bot.gl
}
let errs = []
try {
if (groupList.get(target)) {
let group = await e.bot.pickGroup(target)
await group.sendMsg(pictures)
return 'picture has been sent to group' + target
for (let pic of pictures) {
try {
await group.sendMsg(pic)
} catch (err) {
errs.push(pic.url)
}
}
// await group.sendMsg(pictures)
return 'picture has been sent to group' + target + errs.length > 0 ? `, but some pictures failed to send (${errs.join('、')})` : ''
} else {
let user = e.bot.pickUser(target)
if (e.group_id) {
user = user.asMember(e.group_id)
}
await user.sendMsg(pictures)
return 'picture has been sent to user' + target
for (let pic of pictures) {
try {
await user.sendMsg(pictures)
} catch (err) {
errs.push(pic.url)
}
}
return 'picture has been sent to user' + target + errs.length > 0 ? `, but some pictures failed to send (${errs.join('、')})` : ''
}
} catch (err) {
return `failed to send pictures, error: ${JSON.stringify(err)}`