From cac238df97e8e1dd946a134ff57fc82b35d4245b Mon Sep 17 00:00:00 2001
From: Pavel Kirilin <win10@list.ru>
Date: Thu, 23 Feb 2023 00:48:30 +0400
Subject: [PATCH] Changed bot logic.

Signed-off-by: Pavel Kirilin <win10@list.ru>
---
 src/bot/main.rs | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/bot/main.rs b/src/bot/main.rs
index fd91a2b..1288014 100644
--- a/src/bot/main.rs
+++ b/src/bot/main.rs
@@ -155,11 +155,10 @@ async fn run(args: BotConfig, client: Client) -> anyhow::Result<()> {
     Ok(())
 }
 
-/// The main entrypoint for bot.
-///
-/// This function starts bot, performs login and
-/// starts endless loop.
-pub async fn start(args: BotConfig, web_code: Arc<RwLock<Option<String>>>) -> anyhow::Result<()> {
+pub async fn bot_life(
+    args: BotConfig,
+    web_code: Arc<RwLock<Option<String>>>,
+) -> anyhow::Result<()> {
     log::info!("Connecting to Telegram...");
     let client = Client::connect(Config {
         session: Session::load_file_or_create(args.session_file.as_str())?,
@@ -189,3 +188,21 @@ pub async fn start(args: BotConfig, web_code: Arc<RwLock<Option<String>>>) -> an
 
     Ok(())
 }
+
+/// The main entrypoint for bot.
+///
+/// This function starts bot, performs login and
+/// starts endless loop.
+pub async fn start(args: BotConfig, web_code: Arc<RwLock<Option<String>>>) -> anyhow::Result<()> {
+    loop {
+        match bot_life(args.clone(), web_code.clone()).await {
+            Err(err) => {
+                log::error!("{err}");
+            }
+            Ok(_) => {
+                log::info!("Lol, messages are ended.");
+            }
+        }
+        tokio::time::sleep(Duration::from_secs(1)).await;
+    }
+}
-- 
GitLab