diff --git a/src/bots/approved_bot/mod.rs b/src/bots/approved_bot/mod.rs index 659756c..45d86aa 100644 --- a/src/bots/approved_bot/mod.rs +++ b/src/bots/approved_bot/mod.rs @@ -11,11 +11,12 @@ use self::modules::{ update_history::get_update_log_handler, }; -use super::{BotCommands, BotHandler}; +use super::{BotCommands, BotHandler, ignore_channel_messages}; pub fn get_approved_handler() -> (BotHandler, BotCommands) { ( dptree::entry() + .branch(ignore_channel_messages()) .branch(get_help_handler()) .branch(get_settings_handler()) .branch(get_support_handler()) diff --git a/src/bots/mod.rs b/src/bots/mod.rs index cc1369e..0c88716 100644 --- a/src/bots/mod.rs +++ b/src/bots/mod.rs @@ -15,6 +15,16 @@ type BotHandler = Handler< type BotCommands = Option>; +fn ignore_channel_messages() -> crate::bots::BotHandler +{ + Update::filter_message() + .chain(dptree::filter(move |message: Message| { + message.chat.is_channel() + })).endpoint(|_message: Message, _bot: AutoSend| async { + Ok(()) + }) +} + fn get_pending_handler() -> BotHandler { let handler = |msg: Message, bot: AutoSend| async move { let message_text = " @@ -26,7 +36,11 @@ fn get_pending_handler() -> BotHandler { Ok(()) }; - Update::filter_message().chain(dptree::endpoint(handler)) + dptree::entry() + .branch(ignore_channel_messages()) + .branch( + Update::filter_message().chain(dptree::endpoint(handler)) + ) } fn get_blocked_handler() -> BotHandler { @@ -37,7 +51,11 @@ fn get_blocked_handler() -> BotHandler { Ok(()) }; - Update::filter_message().chain(dptree::endpoint(handler)) + dptree::entry() + .branch(ignore_channel_messages()) + .branch( + Update::filter_message().chain(dptree::endpoint(handler)) + ) } pub fn get_bot_handler(status: crate::bots_manager::BotStatus) -> (BotHandler, BotCommands) {