Add channel messages ignoring

This commit is contained in:
2022-10-01 00:37:57 +06:00
parent ae56c2a4a2
commit 8991d4ef06
2 changed files with 22 additions and 3 deletions

View File

@@ -11,11 +11,12 @@ use self::modules::{
update_history::get_update_log_handler, update_history::get_update_log_handler,
}; };
use super::{BotCommands, BotHandler}; use super::{BotCommands, BotHandler, ignore_channel_messages};
pub fn get_approved_handler() -> (BotHandler, BotCommands) { pub fn get_approved_handler() -> (BotHandler, BotCommands) {
( (
dptree::entry() dptree::entry()
.branch(ignore_channel_messages())
.branch(get_help_handler()) .branch(get_help_handler())
.branch(get_settings_handler()) .branch(get_settings_handler())
.branch(get_support_handler()) .branch(get_support_handler())

View File

@@ -15,6 +15,16 @@ type BotHandler = Handler<
type BotCommands = Option<Vec<teloxide::types::BotCommand>>; type BotCommands = Option<Vec<teloxide::types::BotCommand>>;
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<Bot>| async {
Ok(())
})
}
fn get_pending_handler() -> BotHandler { fn get_pending_handler() -> BotHandler {
let handler = |msg: Message, bot: AutoSend<Bot>| async move { let handler = |msg: Message, bot: AutoSend<Bot>| async move {
let message_text = " let message_text = "
@@ -26,7 +36,11 @@ fn get_pending_handler() -> BotHandler {
Ok(()) 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 { fn get_blocked_handler() -> BotHandler {
@@ -37,7 +51,11 @@ fn get_blocked_handler() -> BotHandler {
Ok(()) 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) { pub fn get_bot_handler(status: crate::bots_manager::BotStatus) -> (BotHandler, BotCommands) {