Expand description
自动回复管理器
核心管理器,集成所有组件处理自动回复逻辑。
§功能
- 集成 WhitelistManager, CooldownTracker, KeywordMatcher, TriggerRegistry
- 实现
should_reply()核心方法检测消息是否应该触发自动回复 - 支持群组激活配置
- 支持配置持久化和热重载
§消息处理流程
- 检查白名单(Requirement 6.6)
- 检查冷却时间(Requirement 6.7)
- 检查群组激活配置(如果是群组消息)
- 评估所有启用的触发器(按优先级排序)(Requirements 6.1, 6.2)
- 返回适当的 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§
- Auto
Reply Manager - 自动回复管理器
- Auto
Reply Stats - 自动回复统计信息