blivedm_plugins/
lib.rs

1pub mod terminal_display;
2pub mod tts;
3pub mod auto_reply;
4
5use client::scheduler::EventHandler;
6use std::sync::Arc;
7
8/// Helper to create the handler as Arc<dyn EventHandler>
9pub fn terminal_display_handler() -> Arc<dyn EventHandler> {
10    Arc::new(terminal_display::TerminalDisplayHandler)
11}
12
13/// Helper to create the TTS handler as Arc<dyn EventHandler>
14/// Uses default Chinese voice settings with REST API
15pub fn tts_handler_default(server_url: String) -> Arc<dyn EventHandler> {
16    Arc::new(tts::TtsHandler::new_rest_api_default(server_url))
17}
18
19/// Helper to create the TTS handler with REST API and custom configuration as Arc<dyn EventHandler>
20pub fn tts_handler(
21    server_url: String,
22    voice: Option<String>,
23    backend: Option<String>,
24    quality: Option<String>,
25    format: Option<String>,
26    sample_rate: Option<u32>,
27) -> Arc<dyn EventHandler> {
28    Arc::new(tts::TtsHandler::new_rest_api(
29        server_url,
30        voice,
31        backend,
32        quality,
33        format,
34        sample_rate,
35    ))
36}
37
38/// Helper to create the command-based TTS handler as Arc<dyn EventHandler>
39/// For local TTS commands like `say` on macOS or `espeak-ng` on Linux
40pub fn tts_handler_command(tts_command: String, tts_args: Vec<String>) -> Arc<dyn EventHandler> {
41    Arc::new(tts::TtsHandler::new_command(tts_command, tts_args))
42}
43
44/// Helper to create the auto reply handler as Arc<dyn EventHandler>
45pub fn auto_reply_handler(config: auto_reply::AutoReplyConfig) -> Arc<dyn EventHandler> {
46    Arc::new(auto_reply::AutoReplyHandler::new(config))
47}
48
49#[cfg(test)]
50mod tests {}