2020-03-04 14:15:23 +06:00
|
|
|
// This bot answers how many messages it received in total on every message.
|
|
|
|
|
|
|
|
use std::sync::atomic::{AtomicU64, Ordering};
|
|
|
|
|
2022-02-04 20:14:57 +06:00
|
|
|
use once_cell::sync::Lazy;
|
2022-01-06 14:50:59 +02:00
|
|
|
use teloxide::prelude2::*;
|
2020-03-04 14:15:23 +06:00
|
|
|
|
2022-02-04 20:14:57 +06:00
|
|
|
static MESSAGES_TOTAL: Lazy<AtomicU64> = Lazy::new(AtomicU64::default);
|
2020-03-04 14:15:23 +06:00
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() {
|
|
|
|
teloxide::enable_logging!();
|
2020-07-25 19:45:57 +06:00
|
|
|
log::info!("Starting shared_state_bot...");
|
2020-03-04 14:15:23 +06:00
|
|
|
|
2021-03-06 03:24:10 +06:00
|
|
|
let bot = Bot::from_env().auto_send();
|
2020-03-04 14:15:23 +06:00
|
|
|
|
2022-01-26 15:51:51 +06:00
|
|
|
let handler = Update::filter_message().branch(dptree::endpoint(
|
2022-02-02 15:40:22 +06:00
|
|
|
|msg: Message, bot: AutoSend<Bot>| async move {
|
2022-01-26 15:51:51 +06:00
|
|
|
let previous = MESSAGES_TOTAL.fetch_add(1, Ordering::Relaxed);
|
2022-02-02 15:40:22 +06:00
|
|
|
bot.send_message(msg.chat.id, format!("I received {} messages in total.", previous))
|
2022-01-06 13:59:50 +02:00
|
|
|
.await?;
|
2022-01-26 15:51:51 +06:00
|
|
|
respond(())
|
|
|
|
},
|
|
|
|
));
|
|
|
|
|
2022-02-04 20:09:53 +06:00
|
|
|
Dispatcher::builder(bot, handler).build().setup_ctrlc_handler().dispatch().await;
|
2020-03-04 14:15:23 +06:00
|
|
|
}
|