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 + } +}