Skip to main content

Module manager

Module manager 

Source
Expand description

自动回复管理器

核心管理器,集成所有组件处理自动回复逻辑。

§功能

  • 集成 WhitelistManager, CooldownTracker, KeywordMatcher, TriggerRegistry
  • 实现 should_reply() 核心方法检测消息是否应该触发自动回复
  • 支持群组激活配置
  • 支持配置持久化和热重载

§消息处理流程

  1. 检查白名单(Requirement 6.6)
  2. 检查冷却时间(Requirement 6.7)
  3. 检查群组激活配置(如果是群组消息)
  4. 评估所有启用的触发器(按优先级排序)(Requirements 6.1, 6.2)
  5. 返回适当的 TriggerResult(Requirements 6.3, 6.4, 6.5)

§示例

use aster::auto_reply::{AutoReplyManager, IncomingMessage, TriggerResult};
use std::path::PathBuf;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut manager = AutoReplyManager::new(PathBuf::from("config.json")).await?;
     
    // 注册触发器、设置白名单等...
     
    let message = IncomingMessage { /* ... */ };
    match manager.should_reply(&message) {
        TriggerResult::Triggered { trigger, context } => {
            println!("触发: {}", trigger.name);
        }
        TriggerResult::Rejected { reason } => {
            println!("拒绝: {:?}", reason);
        }
        TriggerResult::NoMatch => {
            println!("无匹配");
        }
    }
    Ok(())
}

Structs§

AutoReplyManager
自动回复管理器
AutoReplyStats
自动回复统计信息