Skip to main content

aster/auto_reply/
mod.rs

1//! Auto-Reply Mechanism Module
2//!
3//! 本模块实现 Aster-Rust 框架的自动回复触发机制。
4//! 支持多种触发方式:@提及、关键词匹配、私聊、定时触发和 Webhook。
5//!
6//! # 主要组件
7//!
8//! - [`types`] - 触发类型和配置定义
9//! - [`whitelist`] - 白名单管理器
10//! - [`cooldown`] - 冷却时间追踪器
11//! - [`keyword_matcher`] - 关键词匹配器
12//! - [`registry`] - 触发器注册表
13//! - [`message`] - 入站消息和触发结果类型
14//! - [`group`] - 群组激活配置
15//! - [`manager`] - 自动回复管理器
16//! - [`config`] - 配置持久化
17//! - [`webhook`] - Webhook 触发处理
18//! - [`schedule`] - Scheduler 集成
19//!
20//! # 示例
21//!
22//! ```rust,ignore
23//! use aster::auto_reply::{AutoReplyManager, IncomingMessage, TriggerResult};
24//!
25//! let manager = AutoReplyManager::new(config_path).await?;
26//! let message = IncomingMessage { /* ... */ };
27//!
28//! match manager.should_reply(&message) {
29//!     TriggerResult::Triggered { trigger, context } => {
30//!         // 处理触发的自动回复
31//!     }
32//!     TriggerResult::Rejected { reason } => {
33//!         // 处理拒绝原因
34//!     }
35//!     TriggerResult::NoMatch => {
36//!         // 无匹配触发器
37//!     }
38//! }
39//! ```
40
41// 基础类型定义
42pub mod types;
43
44// 白名单管理器
45pub mod whitelist;
46
47// 冷却时间追踪器
48pub mod cooldown;
49
50// 关键词匹配器
51pub mod keyword_matcher;
52
53// 触发器注册表
54pub mod registry;
55
56// 消息和结果类型
57pub mod message;
58
59// 群组激活配置
60pub mod group;
61
62// 自动回复管理器
63pub mod manager;
64
65// 配置持久化
66pub mod config;
67
68// Webhook 触发处理
69pub mod webhook;
70
71// Scheduler 集成
72pub mod schedule;
73
74// Re-exports for convenience
75pub use config::AutoReplyConfig;
76pub use cooldown::{CooldownCheckResult, CooldownTracker};
77pub use group::{GroupActivation, GroupActivationManager, GroupRejectionReason};
78pub use keyword_matcher::{KeywordMatchResult, KeywordMatcher};
79pub use manager::{AutoReplyManager, AutoReplyStats};
80pub use message::{IncomingMessage, RejectionReason, TriggerContext, TriggerResult};
81pub use registry::{AutoReplyTrigger, TriggerRegistry};
82pub use schedule::{ScheduleContext, ScheduleTriggerEvent, ScheduleTriggerHandler};
83pub use types::{
84    KeywordTriggerConfig, ScheduleTriggerConfig, ScheduleType, TriggerConfig, TriggerType,
85    WebhookTriggerConfig,
86};
87pub use webhook::{WebhookHandler, WebhookRequest, WebhookResult};
88pub use whitelist::WhitelistManager;