@fraqjs/plugin-message-store
@fraqjs/plugin-message-store 提供了将消息存储在本地数据库的能力,并且替换了 get_message 和 get_history_messages 的默认实现,使其从数据库中获取消息。
安装与配置
将插件添加到 fraq.yml 的 plugins 字段下:
plugins:
# 本插件依赖 fraqjs/kysely,因此需要一并安装
fraqjs/kysely:
# 在这里传入 KyselyPlugin 的配置选项
fraqjs/message-store:
# 是否监听消息撤回事件,默认为 true
# 为 true 时,消息撤回事件会被存储在数据库中,并且撤回后的消息将无法再通过 get_message 方法获取
listenRecall: true
# 自动清理消息的相关配置
autoFlush:
# 是否启用自动清理功能,默认为 true
# 若为 false,则不会自动清理过期消息
enabled: true
# 自动清理的时间间隔,单位为分钟,默认为 60
intervalMinutes: 60
# 消息的最大存储天数,超过该天数的消息将被清理,默认为 7,即最长保存一周的消息
maxAgeDays: 7插件开发者通常情况下无需直接使用 MessageStorePlugin。如果需要使用,请将本插件添加到项目的 peerDependencies 中,并在自己的插件中声明依赖:
import { definePlugin } from '@fraqjs/fraq';
import { MessageStoreService } from '@fraqjs/plugin-message-store';
definePlugin({
name: 'my-plugin',
inject: {
messageStore: MessageStoreService,
},
apply(ctx) {
// 使用 ctx.messageStore 来访问 MessageStoreService
},
});