added DEMOCRACY ALERT and delay

This commit is contained in:
doryan04 2024-02-12 12:12:09 +04:00
parent 44de5a191a
commit 82a0eef029
3 changed files with 40 additions and 16 deletions

View File

@ -32,7 +32,13 @@ pub mod ban{
Ok(_) => { Ok(_) => {
bot.send_message( bot.send_message(
chat_id, chat_id,
format!("Пользователь {} был заблокирован по причине {}", format!("Пользователь {} был заблокирован по причине {}.\
\n Совершился 🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION \
ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞🇺🇸🦅🦅📞\
📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅\
📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION ALERT\
🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺 \
DEMOCRATION ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞",
user.first_name, user.first_name,
reason.unwrap() reason.unwrap()
) )

View File

@ -25,9 +25,8 @@ async fn main() {
enum Command { enum Command {
#[command(description = "Команда для отображения инструкции")] #[command(description = "Команда для отображения инструкции")]
Help, Help,
#[command(description = "Снимается мьют." #[command(description = "Снимается мьют.")]
)] DemocracyUnmute,
Unmute,
#[command(description = "Банит человека. Для этого необходимо \ #[command(description = "Банит человека. Для этого необходимо \
1. Сделать реплай на сообщение человека, которого вы хотите забанить; \ 1. Сделать реплай на сообщение человека, которого вы хотите забанить; \
2. Указать причину бана." 2. Указать причину бана."
@ -37,7 +36,7 @@ enum Command {
1. Сделать реплай на сообщение человека, которого вы хотите замьютить; \ 1. Сделать реплай на сообщение человека, которого вы хотите замьютить; \
2. Указать множитель мьюта." 2. Указать множитель мьюта."
)] )]
Mute(i64), DemocracyMute(i64),
} }
async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<()> { async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<()> {
@ -56,7 +55,8 @@ async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<(
).await; ).await;
} }
}, },
Command::Mute(multiplier) => { Command::DemocracyMute(multiplier) => {
if let 1i64..=10i64 = multiplier{
if is_admin_check(&msg, &bot).await { if is_admin_check(&msg, &bot).await {
let _ = mute_user( let _ = mute_user(
msg.reply_to_message(), msg.reply_to_message(),
@ -65,8 +65,25 @@ async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<(
msg.chat.id, msg.chat.id,
).await; ).await;
} }
} else if let 10i64..=i64::MAX = multiplier{
bot.send_message(
msg.chat.id,
"Вы ввели слишком большой множитель, пожалуйста, \
выберите множитель из промежутка [1; 10]"
).await
.expect("Вы ввели слишком большой множитель, пожалуйста, \
выберите множитель из промежутка [1; 10]");
} else {
bot.send_message(
msg.chat.id,
"Вы ввели нулевой или отрицательный множитель, пожалуйста, \
выберите множитель из промежутка [1; 10]"
).await
.expect("Вы ввели нулевой или отрицательный множитель, пожалуйста, \
выберите множитель из промежутка [1; 10]");
} }
Command::Unmute => { }
Command::DemocracyUnmute => {
if is_admin_check(&msg, &bot).await { if is_admin_check(&msg, &bot).await {
let _ = unmute( let _ = unmute(
msg.reply_to_message(), msg.reply_to_message(),

View File

@ -1,7 +1,8 @@
pub mod mute { pub mod mute {
use teloxide::Bot; use teloxide::Bot;
use chrono::{Duration, Local};
use teloxide::requests::Requester; use teloxide::requests::Requester;
use tokio::time::{sleep, Duration};
use chrono::{Duration as ChronoDuration, Local};
use teloxide::payloads::RestrictChatMemberSetters; use teloxide::payloads::RestrictChatMemberSetters;
use teloxide::types::{ChatId, ChatPermissions, Message, MessageKind}; use teloxide::types::{ChatId, ChatPermissions, Message, MessageKind};
@ -31,9 +32,9 @@ pub mod mute {
.unwrap() .unwrap()
.value as i64; .value as i64;
let duration = Local::now().naive_utc() + Duration::hours(multiplier * dice_value); let duration = Local::now().naive_utc() + ChronoDuration::hours(multiplier * dice_value);
println!("{:?}", duration); sleep(Duration::from_secs(4)).await ;
match bot.restrict_chat_member( match bot.restrict_chat_member(
chat_id, chat_id,