use std::sync::Arc; use tbot::{ contexts::Text, predicates::{ chat::{is_group, is_supergroup}, media::match_extension, PredicateBooleanOperations, }, prelude::*, Bot, }; async fn is_message_short(context: Arc) -> bool { context.text.value.chars().count() < 5 } #[tokio::main] async fn main() { let mut bot = Bot::from_env("BOT_TOKEN").event_loop(); bot.text_if( is_supergroup.or(is_group).and(is_message_short.not()), |context| async move { context .send_message_in_reply("Hello group!") .call() .await .unwrap(); }, ); bot.text_if(is_message_short, |context| async move { context .send_message_in_reply("The message is too short!") .call() .await .unwrap(); }); bot.document_if(match_extension(["rs", "toml"]), |context| async move { context .send_message_in_reply("I see you're a man of the culture as well!") .call() .await .unwrap(); }); bot.polling().start().await.unwrap(); }