From 3885527a7d551a2cfedd664098f42350772ed5e1 Mon Sep 17 00:00:00 2001 From: ikechan8370 Date: Sun, 26 Mar 2023 22:58:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8D=95=E7=8B=AC=E6=8F=90=E5=87=BA?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E5=AF=B9=E8=AF=9D=E4=BB=A5=E4=BE=BF=E8=B5=8B?= =?UTF-8?q?=E4=BA=88=E8=BE=83=E9=AB=98=E4=BC=98=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/chat.js | 34 ------------------------------- apps/intercept.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 34 deletions(-) create mode 100644 apps/intercept.js diff --git a/apps/chat.js b/apps/chat.js index ebb10f9..a808f01 100644 --- a/apps/chat.js +++ b/apps/chat.js @@ -13,7 +13,6 @@ import { upsertMessage, randomString, getDefaultUserSetting, isCN - , formatDate } from '../utils/common.js' import { ChatGPTPuppeteer } from '../utils/browser.js' import { KeyvFile } from 'keyv-file' @@ -71,12 +70,6 @@ export class chatgpt extends plugin { /** 优先级,数字越小等级越高 */ priority: 1144, rule: [ - { - /** 学习群友聊天 **/ - reg: '^[^#][sS]*', - fnc: 'recordChat', - log: false - }, { /** 命令正则匹配 */ reg: '^#chat3[sS]*', @@ -1286,31 +1279,4 @@ export class chatgpt extends plugin { } return await this.chatGPTApi.sendMessage(prompt, sendMessageOption) } - - async recordChat (e) { - // let gl = await this.e.group.getMemberMap() - if (!e.raw_message) { - if (e.img && e.img.length > 0) { - e.msg = '[图片]' - } - } - if (e.isGroup && e.raw_message) { - const chat = { - sender: e.sender.card, - senderId: e.sender.user_id, - senderSex: e.sender.sex, - msg: e.raw_message, - role: e.sender.role, - area: e.sender.area, - age: e.sender.age, - time: formatDate(new Date()) - } - // console.log(chat) - await redis.rPush('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id, JSON.stringify(chat)) - if (await redis.lLen('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) > Config.groupContextLength) { - await redis.lPop('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) - } - } - return false - } } diff --git a/apps/intercept.js b/apps/intercept.js new file mode 100644 index 0000000..46ef8c1 --- /dev/null +++ b/apps/intercept.js @@ -0,0 +1,52 @@ +import plugin from '../../../lib/plugins/plugin.js' +import { Config } from '../utils/config.js' +import { formatDate } from '../utils/common.js' + +export class intercepter extends plugin { + constructor () { + super({ + /** 功能名称 */ + name: 'ChatGPT-Plugin 监听群聊对话', + /** 功能描述 */ + dsc: 'ChatGPT-Plugin 监听群聊对话,以便了解上下文', + event: 'message', + /** 优先级,数字越小等级越高 */ + priority: 1, + rule: [ + { + /** 学习群友聊天 **/ + reg: '^[^#][sS]*', + fnc: 'recordChat', + log: false + } + ] + }) + } + + async recordChat (e) { + // let gl = await this.e.group.getMemberMap() + if (!e.raw_message) { + if (e.img && e.img.length > 0) { + e.msg = '[图片]' + } + } + if (e.isGroup && e.raw_message) { + const chat = { + sender: e.sender.card, + senderId: e.sender.user_id, + senderSex: e.sender.sex, + msg: e.raw_message, + role: e.sender.role, + area: e.sender.area, + age: e.sender.age, + time: formatDate(new Date()) + } + // console.log(chat) + await redis.rPush('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id, JSON.stringify(chat)) + if (await redis.lLen('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) > Config.groupContextLength) { + await redis.lPop('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) + } + } + return false + } +}