1use teloxide::prelude::*;
2use teloxide_plugins::{dispatch, PluginContext};
3mod plugs;
4
5async fn handle_message(bot: Bot, msg: Message) -> ResponseResult<()> {
6 println!("message: {:?}", msg);
7 let ctx = PluginContext::new(bot.clone(), Some(msg.clone()), None);
8 let _ = dispatch(ctx).await;
9 Ok(())
10}
11
12async fn handle_callback_query(bot: Bot, cq: CallbackQuery) -> ResponseResult<()> {
13 println!("callback query: {:?}", cq);
14 let ctx = PluginContext::new(bot.clone(), None, Some(cq.clone()));
15 let _ = dispatch(ctx).await;
16 Ok(())
17}
18
19#[tokio::main]
20async fn main() {
21 println!("Starting bot...");
22
23 let bot = Bot::new(std::env::var("TELOXIDE_BOT_TOKEN").unwrap());
24
25 let handler = dptree::entry()
26 .branch(Update::filter_message().endpoint(handle_message))
27 .branch(Update::filter_callback_query().endpoint(handle_callback_query));
28
29 Dispatcher::builder(bot, handler)
30 .enable_ctrlc_handler()
31 .build()
32 .dispatch()
33 .await;
34}