added democracy stickers
This commit is contained in:
parent
82a0eef029
commit
f286575ba6
|
@ -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) => {
|
||||||
|
|
29
src/main.rs
29
src/main.rs
|
@ -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(),
|
||||||
|
|
12
src/mute.rs
12
src/mute.rs
|
@ -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) => {
|
||||||
|
|
Reference in New Issue