""" Time extension for qrm --- Copyright (C) 2021 classabbyamp, 0x5c This file is part of qrm2 and is released under the terms of the GNU General Public License, version 2. """ from datetime import datetime, timedelta import discord.ext.commands as commands import common as cmn class TimeCog(commands.Cog): offsets = [ ("Y", "", timedelta(hours=-12)), ("X", "", timedelta(hours=-11)), ("W", "", timedelta(hours=-10)), ("V", "", timedelta(hours=-9)), ("U", "", timedelta(hours=-8)), ("T", "", timedelta(hours=-7)), ("S", "", timedelta(hours=-6)), ("R", "", timedelta(hours=-5)), ("Q", "", timedelta(hours=-4)), ("P", "", timedelta(hours=-3)), ("O", "", timedelta(hours=-2)), ("N", "", timedelta(hours=-1)), ("Z", "UTC", timedelta(hours=0)), ("A", "", timedelta(hours=+1)), ("B", "", timedelta(hours=+2)), ("C", "", timedelta(hours=+3)), ("D", "", timedelta(hours=+4)), ("E", "", timedelta(hours=+5)), ("F", "", timedelta(hours=+6)), ("G", "", timedelta(hours=+7)), ("H", "", timedelta(hours=+8)), ("I", "", timedelta(hours=+9)), ("K", "", timedelta(hours=+10)), ("L", "", timedelta(hours=+11)), ("M", "", timedelta(hours=+12)) ] def __init__(self, bot): self.bot = bot @commands.command(name="utc", aliases=["z"], category=cmn.Cats.TIME) async def _utc_lookup(self, ctx: commands.Context): """Returns the current time in UTC.""" now = datetime.utcnow() result = "**" + now.strftime("%Y-%m-%d %H:%M") + "Z**" embed = cmn.embed_factory(ctx) embed.title = "The current time is:" embed.description = result embed.colour = cmn.colours.good await ctx.send(embed=embed) @commands.command(name="miltime", category=cmn.Cats.TIME) async def miltime(self, ctx: commands.Context): """Prints the current time in all 25 military time zones.""" time = ctx.message.created_at embed = cmn.embed_factory(ctx) embed.title = f"{cmn.emojis.clock} Military Time Zones Now" embed.colour = cmn.colours.good embed.description = "```" embed.description += "\n".join([f"{x}: {time + z :%Y-%m-%d %H:%M} {y}" for x, y, z in self.offsets]) embed.description += "```" embed.add_field(name="Notes", value=( "**J** is not present in the table, and is used for local time.\n" "The zones are referenced by their letters, using phonetics.\n" f"You can check the NATO phonetics for a letter using the `{ctx.prefix}phonetics` command." )) await ctx.send(embed=embed) def setup(bot: commands.Bot): bot.add_cog(TimeCog(bot))