Fraqv0.14.0

@fraqjs/plugin-message-store

@fraqjs/plugin-message-store npm version

@fraqjs/plugin-message-store 提供了将消息存储在本地数据库的能力,并且替换了 get_messageget_history_messages 的默认实现,使其从数据库中获取消息。

安装与配置

将插件添加到 fraq.ymlplugins 字段下:

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
  },
});

On this page