Merge remote-tracking branch 'origin/master'
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 15s
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 15s
This commit is contained in:
commit
3dd59318ed
1 changed files with 13 additions and 2 deletions
15
src/main.py
15
src/main.py
|
@ -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})")
|
||||||
|
|
Loading…
Reference in a new issue