Merge remote-tracking branch 'origin/master'
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 15s

This commit is contained in:
Nexus 2024-05-03 19:11:00 +01:00
commit 3dd59318ed
Signed by: nex
GPG key ID: 0FA334385D0B689F

View file

@ -35,6 +35,7 @@ class KumaThread(KillableThread):
self.interval = interval self.interval = interval
self.kill = Event() self.kill = Event()
self.retries = 0 self.retries = 0
self.previous = False
def calculate_backoff(self) -> float: def calculate_backoff(self) -> float:
rnd = random.uniform(0, 1) rnd = random.uniform(0, 1)
@ -50,10 +51,17 @@ class KumaThread(KillableThread):
start_time = time.time() start_time = time.time()
try: try:
self.retries += 1 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() response.raise_for_status()
self.previous = bot.is_ready()
except httpx.HTTPError as error: 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() timeout = self.calculate_backoff()
self.log.warning("Waiting %d seconds before retrying ping.", timeout) self.log.warning("Waiting %d seconds before retrying ping.", timeout)
time.sleep(timeout) time.sleep(timeout)
@ -62,6 +70,8 @@ class KumaThread(KillableThread):
self.retries = 0 self.retries = 0
end_time = time.time() end_time = time.time()
timeout = self.interval - (end_time - start_time) timeout = self.interval - (end_time - start_time)
if self.previous is False:
timeout = 2.5
self.kill.wait(timeout) self.kill.wait(timeout)
@ -140,6 +150,7 @@ for module in CONFIG["jimmy"].get("modules", ["cogs/*.py"]):
else: else:
log.info(f"Loaded extension {module}") log.info(f"Loaded extension {module}")
@bot.event @bot.event
async def on_ready(): async def on_ready():
log.info(f"Logged in as {bot.user} ({bot.user.id})") log.info(f"Logged in as {bot.user} ({bot.user.id})")