fix: 过长消息(多于4000)被slack夹断切分的问题

This commit is contained in:
ikechan8370 2023-04-17 21:26:04 +08:00
parent fd06f8c21a
commit 40b72989e4
3 changed files with 12 additions and 2 deletions

View file

@ -1514,6 +1514,7 @@ export class chatgpt extends plugin {
logger.info('开启Claude新对话但旧对话未结束自动结束上一次对话')
await redis.del(`CHATGPT:SLACK_CONVERSATION:${e.sender.user_id}`)
}
logger.info('send preset: ' + preset.content)
response = await client.sendMessage(preset.content, e)
await e.reply(response, true)
}

View file

@ -422,11 +422,15 @@ export async function isCN () {
}
}
export function limitString (str, maxLength) {
export function limitString (str, maxLength, addDots = true) {
if (str.length <= maxLength) {
return str
} else {
return str.slice(0, maxLength) + '...'
if (addDots) {
return str.slice(0, maxLength) + '...'
} else {
return str.slice(0, maxLength)
}
}
}

View file

@ -1,6 +1,7 @@
import { Config } from '../config.js'
import slack from '@slack/bolt'
import delay from 'delay'
import {limitString} from "../common.js";
let proxy
if (Config.proxy) {
try {
@ -33,6 +34,10 @@ export class SlackClaudeClient {
if (t > 10) {
return 'claude 未响应'
}
if (prompt.length > 3990) {
logger.warn('消息长度大于slack限制长度剪切至3990')
prompt = limitString(prompt, 3990, false)
}
let qq = e.sender.user_id
let channels = await this.app.client.conversations.list({
token: this.config.slackUserToken,