added democracy stickers

This commit is contained in:
doryan04 2024-02-16 00:13:25 +04:00
parent 82a0eef029
commit f286575ba6
3 changed files with 31 additions and 18 deletions

View File

@ -1,7 +1,7 @@
pub mod ban{ pub mod ban{
use teloxide::Bot; use teloxide::Bot;
use teloxide::requests::Requester; use teloxide::requests::Requester;
use teloxide::types::{ChatId, Message, MessageKind}; use teloxide::types::{ChatId, InputFile, Message, MessageKind};
pub async fn ban_user( pub async fn ban_user(
replied_message: Option<&Message>, replied_message: Option<&Message>,
@ -32,7 +32,7 @@ pub mod ban{
Ok(_) => { Ok(_) => {
bot.send_message( bot.send_message(
chat_id, chat_id,
format!("Пользователь {} был заблокирован по причине {}.\ format!("Пользователь {} был заблокирован по причине: \"{}\".\
\n Совершился 🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION \ \n Совершился 🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION \
ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞🇺🇸🦅🦅📞\ ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅📞📞📞🎺USA🇺🇸🦅🦅📞🇺🇸🦅🦅📞🇺🇸🦅🦅📞\
📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅\ 📞📞🎺🇺🇸🦅🦅📞📞📞🎺 DEMOCRATION ALERT🇺🇸🦅🦅📞📞📞🎺🇺🇸🦅🦅\
@ -43,6 +43,10 @@ pub mod ban{
reason.unwrap() reason.unwrap()
) )
).await.unwrap(); ).await.unwrap();
bot.send_sticker(
chat_id,
InputFile::file_id("CAACAgIAAxkBAAEpgPdlzmgotYp4CID3H4LjT7yLpboESQAC-UcAAt-sWUnzukc95MLxuTQE")
).await;
Ok("Демократия была совершена".to_string()) Ok("Демократия была совершена".to_string())
} }
Err(error) => { Err(error) => {

View File

@ -3,6 +3,7 @@ mod mute;
mod unmute; mod unmute;
mod is_admin; mod is_admin;
use std::ops::Deref;
use teloxide::prelude::*; use teloxide::prelude::*;
use crate::ban::ban::ban_user; use crate::ban::ban::ban_user;
use crate::mute::mute::mute_user; use crate::mute::mute::mute_user;
@ -17,12 +18,12 @@ async fn main() {
let bot = Bot::new("6941223962:AAG4SVKKlUOPlgJTINLfxtD09duB_YSkHOw".to_string()); let bot = Bot::new("6941223962:AAG4SVKKlUOPlgJTINLfxtD09duB_YSkHOw".to_string());
Command::repl(bot, callback).await; Commands::repl(bot, callback).await;
} }
#[derive(BotCommands, Clone)] #[derive(BotCommands, Clone, Debug)]
#[command(rename_rule = "lowercase", description = "Поддерживаемые команды:")] #[command(rename_rule = "lowercase", description = "Поддерживаемые команды:")]
enum Command { enum Commands {
#[command(description = "Команда для отображения инструкции")] #[command(description = "Команда для отображения инструкции")]
Help, Help,
#[command(description = "Снимается мьют.")] #[command(description = "Снимается мьют.")]
@ -31,20 +32,21 @@ enum Command {
1. Сделать реплай на сообщение человека, которого вы хотите забанить; \ 1. Сделать реплай на сообщение человека, которого вы хотите забанить; \
2. Указать причину бана." 2. Указать причину бана."
)] )]
NurgbergsCongress(String), Tribunal(String),
#[command(description = "Мьют человека. Для этого необходимо \ #[command(description = "Мьют человека. Для этого необходимо \
1. Сделать реплай на сообщение человека, которого вы хотите замьютить; \ 1. Сделать реплай на сообщение человека, которого вы хотите замьютить; \
2. Указать множитель мьюта." 2. Указатножитель мьюта.",
)] parse_with = "split")]
DemocracyMute(i64), DemocracyMute(i64, String),
} }
async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<()> { async fn callback(bot: Bot, msg: Message, commands: Commands) -> ResponseResult<()> {
match commands { match commands {
Command::Help => { Commands::Help => {
bot.send_message(msg.chat.id, Command::descriptions().to_string()).await?; bot.send_message(msg.chat.id, Commands::descriptions().to_string()).await?;
}, },
Command::NurgbergsCongress(reason) => { Commands::Tribunal(reason) => {
if is_admin_check(&msg, &bot).await { if is_admin_check(&msg, &bot).await {
let reason_result = if reason.is_empty() { None } else { Some(reason) }; let reason_result = if reason.is_empty() { None } else { Some(reason) };
let _ = ban_user( let _ = ban_user(
@ -55,12 +57,13 @@ async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<(
).await; ).await;
} }
}, },
Command::DemocracyMute(multiplier) => { Commands::DemocracyMute(multiplier, reason) => {
if let 1i64..=10i64 = 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(),
multiplier, multiplier,
reason.to_string(),
&bot, &bot,
msg.chat.id, msg.chat.id,
).await; ).await;
@ -83,7 +86,7 @@ async fn callback(bot: Bot, msg: Message, commands: Command) -> ResponseResult<(
выберите множитель из промежутка [1; 10]"); выберите множитель из промежутка [1; 10]");
} }
} }
Command::DemocracyUnmute => { Commands::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

@ -4,11 +4,12 @@ pub mod mute {
use tokio::time::{sleep, Duration}; use tokio::time::{sleep, Duration};
use chrono::{Duration as ChronoDuration, Local}; 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, InputFile, Message, MessageKind};
pub async fn mute_user( pub async fn mute_user(
replied_message: Option<&Message>, replied_message: Option<&Message>,
multiplier: i64, multiplier: i64,
reason: String,
bot: &Bot, bot: &Bot,
chat_id: ChatId) -> Result<String, String> chat_id: ChatId) -> Result<String, String>
{ {
@ -46,12 +47,17 @@ pub mod mute {
Ok(_) => { Ok(_) => {
bot.send_message( bot.send_message(
chat_id, chat_id,
format!("На пользователя {} повесили железный зановес на {} часов", format!("На пользователя {} повесили железный зановес на {} часов по причине \"{}\" ",
user.first_name, user.first_name,
multiplier * dice_value multiplier * dice_value,
reason
) )
).await ).await
.unwrap(); .unwrap();
bot.send_sticker(
chat_id,
InputFile::file_id("CAACAgIAAxkBAAEpgP1lzmlmReALF20lHlRRGRvQ_SSCDAACqjwAAiIpSUkOv2XNIRmlYTQE")
).await;
Ok("Демократия была совершена".to_string()) Ok("Демократия была совершена".to_string())
} }
Err(error) => { Err(error) => {