31
src/bot/handlers/fun/greeter.rs
Normal file
31
src/bot/handlers/fun/greeter.rs
Normal file
@ -0,0 +1,31 @@
|
||||
use async_trait::async_trait;
|
||||
use grammers_client::{Client, Update};
|
||||
use rand::seq::IteratorRandom;
|
||||
|
||||
use crate::bot::handlers::base::Handler;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Greeter;
|
||||
|
||||
#[async_trait]
|
||||
impl Handler for Greeter {
|
||||
async fn react(&self, client: &Client, update: &Update) -> anyhow::Result<()> {
|
||||
let Update::NewMessage(message) = update else {return Ok(())};
|
||||
|
||||
// Check if chat has less than 100 participants.
|
||||
let participants = client.iter_participants(message.chat()).total().await?;
|
||||
if participants >= 100 {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let reply_text = ["Привет!", "Добрый день!", "Здравствуйте.", "Приетствую"]
|
||||
.into_iter()
|
||||
.choose(&mut rand::thread_rng());
|
||||
|
||||
if let Some(text) = reply_text {
|
||||
message.reply(text).await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user