From 793f10771aea131603022aad8da53c2c66af7e3e Mon Sep 17 00:00:00 2001 From: Michael Hensley <29671149+ZRexshima@users.noreply.github.com> Date: Sun, 21 Jun 2026 01:17:29 +0900 Subject: [PATCH] Adds uptime tracking for healtcheck --- src/bot/cogs/admin/healthchecks.py | 23 +++++++++++++++++++++-- src/bot/main.py | 2 ++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/bot/cogs/admin/healthchecks.py b/src/bot/cogs/admin/healthchecks.py index 5c4210f..428a462 100644 --- a/src/bot/cogs/admin/healthchecks.py +++ b/src/bot/cogs/admin/healthchecks.py @@ -7,7 +7,7 @@ logger = logging.getLogger(__name__) -def embed_hc(api, db): +def embed_hc(api, db, uptime): """ Embedding for avatar change alerts. """ @@ -24,6 +24,7 @@ def embed_hc(api, db): ) embed.add_field(name=api.get("message"), value=api.get("status_code"), inline=False) embed.add_field(name=db.get("message"), value=db.get("status_code"), inline=False) + embed.add_field(name="Uptime:", value=uptime, inline=False) return embed @@ -74,7 +75,25 @@ async def hc(self, ctx: commands.Context) -> None: else discord.Color.red(), } - await ctx.reply(embed=embed_hc(api_info, db_info)) + uptime = self.get_uptime(self.bot.boot_time) + + await ctx.reply(embed=embed_hc(api_info, db_info, uptime)) + + def get_uptime(self, boot_time: datetime.datetime) -> str: + """Get uptime from bot""" + now = datetime.datetime.now() + delta: datetime.timedelta = now - boot_time + message = self.format_uptime(delta) + return message + + def format_uptime(self, time_delta: datetime.timedelta) -> str: + """Format time_delta components for embed message""" + total_minutes: int = time_delta.seconds // 60 + minutes: int = total_minutes % 60 + hours: int = time_delta.seconds // 3600 + days: int = time_delta.days + + return f"{days}d {hours}h {minutes}m" async def setup(bot: commands.Bot) -> None: diff --git a/src/bot/main.py b/src/bot/main.py index 9b993b0..86d7e45 100644 --- a/src/bot/main.py +++ b/src/bot/main.py @@ -1,3 +1,4 @@ +import datetime import logging import os import sys @@ -16,6 +17,7 @@ intents = discord.Intents.all() bot = commands.Bot(command_prefix=os.getenv("PREFIX"), intents=intents) +bot.boot_time = datetime.datetime.now() async def load_cogs(robot: commands.Bot) -> None: