diff --git a/src/main.py b/src/main.py index ed0db78..722dc81 100644 --- a/src/main.py +++ b/src/main.py @@ -35,6 +35,7 @@ class KumaThread(KillableThread): self.interval = interval self.kill = Event() self.retries = 0 + self.previous = False def calculate_backoff(self) -> float: rnd = random.uniform(0, 1) @@ -50,10 +51,17 @@ class KumaThread(KillableThread): start_time = time.time() try: self.retries += 1 - response = client.get(self.url) + url = self.url + if url.endswith("ping="): + url += str(round(bot.latency * 1000, 2)) + if bot.is_ready() is False: + url = url.replace("status=up", "status=down") + url = url.replace("msg=OK", "msg=Bot%20not%20ready") + response = client.get(url) response.raise_for_status() + self.previous = bot.is_ready() except httpx.HTTPError as error: - self.log.error("Failed to connect to uptime-kuma: %r: %r", self.url, error, exc_info=error) + self.log.error("Failed to connect to uptime-kuma: %r: %r", url, error, exc_info=error) timeout = self.calculate_backoff() self.log.warning("Waiting %d seconds before retrying ping.", timeout) time.sleep(timeout) @@ -62,6 +70,8 @@ class KumaThread(KillableThread): self.retries = 0 end_time = time.time() timeout = self.interval - (end_time - start_time) + if self.previous is False: + timeout = 2.5 self.kill.wait(timeout) @@ -140,6 +150,7 @@ for module in CONFIG["jimmy"].get("modules", ["cogs/*.py"]): else: log.info(f"Loaded extension {module}") + @bot.event async def on_ready(): log.info(f"Logged in as {bot.user} ({bot.user.id})")