From 40b72989e4724881bd2a934e4d7714aa32beb71b Mon Sep 17 00:00:00 2001 From: ikechan8370 Date: Mon, 17 Apr 2023 21:26:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BF=87=E9=95=BF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=EF=BC=88=E5=A4=9A=E4=BA=8E4000=EF=BC=89=E8=A2=ABslack=E5=A4=B9?= =?UTF-8?q?=E6=96=AD=E5=88=87=E5=88=86=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/chat.js | 1 + utils/common.js | 8 ++++++-- utils/slack/slackClient.js | 5 +++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/chat.js b/apps/chat.js index 6cf4561..3de259a 100644 --- a/apps/chat.js +++ b/apps/chat.js @@ -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) } diff --git a/utils/common.js b/utils/common.js index 59ea05a..c5e3aa0 100644 --- a/utils/common.js +++ b/utils/common.js @@ -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) + } } } diff --git a/utils/slack/slackClient.js b/utils/slack/slackClient.js index 415b174..cb7b412 100644 --- a/utils/slack/slackClient.js +++ b/utils/slack/slackClient.js @@ -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,