Update BotsManager check func

This commit is contained in:
2024-02-25 18:45:25 +01:00
parent 8e45b0379e
commit 02fba3204f

View File

@@ -7,6 +7,7 @@ pub mod utils;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
use smartstring::alias::String as SmartString; use smartstring::alias::String as SmartString;
use teloxide::stop::StopToken; use teloxide::stop::StopToken;
use tokio::task::JoinSet;
use tracing::log; use tracing::log;
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
@@ -74,22 +75,35 @@ impl BotsManager {
async fn check() { async fn check() {
let bots_data = get_bots().await; let bots_data = get_bots().await;
match bots_data { let bots_data = match bots_data {
Ok(v) => { Ok(v) => v,
for bot_data in v.iter() {
if BOTS_DATA.contains_key(&bot_data.token) {
continue;
}
BOTS_DATA
.insert(bot_data.token.clone(), bot_data.clone())
.await;
set_webhook(bot_data).await;
}
}
Err(err) => { Err(err) => {
log::info!("{:?}", err); log::info!("{:?}", err);
return;
}
};
let mut set_webhook_tasks = JoinSet::new();
for bot_data in bots_data.iter() {
if BOTS_DATA.contains_key(&bot_data.token) {
continue;
}
BOTS_DATA
.insert(bot_data.token.clone(), bot_data.clone())
.await;
let bot_data = bot_data.clone();
set_webhook_tasks.spawn(async move {
set_webhook(&bot_data).await;
});
}
loop {
if set_webhook_tasks.join_next().await.is_none() {
break;
} }
} }
} }