mirror of
https://github.com/miaowware/qrm2.git
synced 2024-11-22 15:58:40 -05:00
04ccd807cd
Fixes #387
80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
"""
|
|
Time extension for qrm
|
|
---
|
|
Copyright (C) 2021 classabbyamp, 0x5c
|
|
|
|
SPDX-License-Identifier: LiLiQ-Rplus-1.1
|
|
"""
|
|
|
|
|
|
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))
|