This commit is contained in:
2023-07-21 23:10:28 +02:00
parent 8e6e89d4c7
commit c707c20c7b

View File

@@ -63,9 +63,12 @@ pub static CHAT_DONATION_NOTIFICATIONS_CACHE: Lazy<Cache<ChatId, ()>> = Lazy::ne
}); });
type Routes = Arc<RwLock<HashMap<String, UnboundedSender<Result<Update, std::convert::Infallible>>>>>;
#[derive(Default, Clone)] #[derive(Default, Clone)]
struct ServerState { struct ServerState {
routers: Arc<RwLock<HashMap<String, UnboundedSender<Result<Update, std::convert::Infallible>>>>>, routers: Routes,
} }
pub struct BotsManager { pub struct BotsManager {
@@ -100,7 +103,7 @@ impl BotsManager {
}, },
); );
return (tx, listener); (tx, listener)
} }
async fn start_bot(&mut self, bot_data: &BotData) -> bool { async fn start_bot(&mut self, bot_data: &BotData) -> bool {
@@ -130,8 +133,10 @@ impl BotsManager {
let (tx, listener) = self.get_listener(); let (tx, listener) = self.get_listener();
let mut routers = self.state.routers.write().unwrap(); {
routers.insert(token.to_string(), tx); let mut routers = self.state.routers.write().unwrap();
routers.insert(token.to_string(), tx);
}
let host = format!("{}:{}", &config::CONFIG.webhook_base_url, self.port); let host = format!("{}:{}", &config::CONFIG.webhook_base_url, self.port);
let url = Url::parse(&format!("{host}/{token}/")) let url = Url::parse(&format!("{host}/{token}/"))
@@ -151,7 +156,7 @@ impl BotsManager {
.await; .await;
}); });
return true; true
} }
async fn check(&mut self){ async fn check(&mut self){
@@ -236,7 +241,7 @@ impl BotsManager {
let stop_token = self.stop_data.0.clone(); let stop_token = self.stop_data.0.clone();
let stop_flag = self.stop_data.1.clone(); let stop_flag = self.stop_data.1.clone();
let state = self.state.clone(); let state = self.state.clone();
let port = self.port.clone(); let port = self.port;
tokio::spawn(async move { tokio::spawn(async move {
log::info!("Start webserver..."); log::info!("Start webserver...");