Skip to content

Commit 12d1844

Browse files
authored
Adds uptime tracking for healtcheck (#161)
1 parent dba2e39 commit 12d1844

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/bot/cogs/admin/healthchecks.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
logger = logging.getLogger(__name__)
88

99

10-
def embed_hc(api, db):
10+
def embed_hc(api, db, uptime):
1111
"""
1212
Embedding for avatar change alerts.
1313
"""
@@ -24,6 +24,7 @@ def embed_hc(api, db):
2424
)
2525
embed.add_field(name=api.get("message"), value=api.get("status_code"), inline=False)
2626
embed.add_field(name=db.get("message"), value=db.get("status_code"), inline=False)
27+
embed.add_field(name="Uptime:", value=uptime, inline=False)
2728
return embed
2829

2930

@@ -74,7 +75,25 @@ async def hc(self, ctx: commands.Context) -> None:
7475
else discord.Color.red(),
7576
}
7677

77-
await ctx.reply(embed=embed_hc(api_info, db_info))
78+
uptime = self.get_uptime(self.bot.boot_time)
79+
80+
await ctx.reply(embed=embed_hc(api_info, db_info, uptime))
81+
82+
def get_uptime(self, boot_time: datetime.datetime) -> str:
83+
"""Get uptime from bot"""
84+
now = datetime.datetime.now()
85+
delta: datetime.timedelta = now - boot_time
86+
message = self.format_uptime(delta)
87+
return message
88+
89+
def format_uptime(self, time_delta: datetime.timedelta) -> str:
90+
"""Format time_delta components for embed message"""
91+
total_minutes: int = time_delta.seconds // 60
92+
minutes: int = total_minutes % 60
93+
hours: int = time_delta.seconds // 3600
94+
days: int = time_delta.days
95+
96+
return f"{days}d {hours}h {minutes}m"
7897

7998

8099
async def setup(bot: commands.Bot) -> None:

src/bot/main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import datetime
12
import logging
23
import os
34
import sys
@@ -16,6 +17,7 @@
1617

1718
intents = discord.Intents.all()
1819
bot = commands.Bot(command_prefix=os.getenv("PREFIX"), intents=intents)
20+
bot.boot_time = datetime.datetime.now()
1921

2022

2123
async def load_cogs(robot: commands.Bot) -> None:

0 commit comments

Comments
 (0)