From 4618f722a8f02589ad3e1b7968ebddd4f170dcca Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Thu, 17 Oct 2024 19:31:59 -0700 Subject: [PATCH] Simplify the whole operation and use discord's neat built ins for relative times --- app/cogs/tarkov.py | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/app/cogs/tarkov.py b/app/cogs/tarkov.py index 7f3e5e84..537d7e47 100755 --- a/app/cogs/tarkov.py +++ b/app/cogs/tarkov.py @@ -1,5 +1,4 @@ from datetime import datetime -from datetime import timezone from discord.ext import commands import core_utils import discord @@ -15,13 +14,6 @@ else: channel_id = 932476007439552522 -def format_timedelta(td): - total_seconds = int(td.total_seconds()) - hours, remainder = divmod(total_seconds, 3600) # 3600 seconds in an hour - minutes, seconds = divmod(remainder, 60) # 60 seconds in a minute - return f"{hours}h {minutes}m {seconds}s" - - class Tarkov(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot @@ -43,7 +35,6 @@ class Tarkov(commands.Cog): embed.set_author(name="PVE Trader Reset Times") embed.set_thumbnail(url="https://i.ytimg.com/vi/8He5q7qOzNw/maxresdefault.jpg") - query = """ { traders(gameMode:pve) { @@ -58,29 +49,21 @@ class Tarkov(commands.Cog): "https://api.tarkov.dev/graphql", headers=headers, json={"query": query} ).json()["data"]["traders"] - # print(response) - current_time = datetime.now(timezone.utc) - # Loop through the dataset for entry in response: - name = entry["name"] - if name in ["BTR Driver", "Lightkeeper"]: + trader_name = entry["name"] + if trader_name in ["BTR Driver", "Lightkeeper"]: break + + # Convert to datetime object reset_time = datetime.fromisoformat( entry["resetTime"].replace("Z", "+00:00") - ) # Convert to datetime object - time_until = reset_time - current_time # Calculate time until the reset - - # Format the time until as human-readable - if time_until.total_seconds() > 0: # Only format if there's time remaining - readable_time = format_timedelta(time_until) - else: - readable_time = "Just Reset" + ) # Print the name and formatted time until reset embed.add_field( - name=name, - value=f"`{readable_time}`", + name=trader_name, + value=discord.utils.format_dt(reset_time, style="R"), inline=True, ) await ctx.send_followup(embed=embed)