feat(blanket): Add timestamp command.

This commit is contained in:
2023-09-24 10:53:13 +03:00
parent 29739426be
commit 81734f00ef

View File

@@ -1,6 +1,9 @@
from typing import Optional
import json
import asyncio
import datetime as dt
from dateutil.parser import parse, ParserError
import discord
from discord.ext import commands as cmds
@@ -54,3 +57,27 @@ class BlanketCog(LionCog):
await ctx.interaction.edit_original_response(
content="Message sent! {message.jump_url}"
)
@cmds.hybrid_command(
name="timestamp",
description="Get a discord timestamp in your timezone.",
)
@appcmds.describe(
time="Time you want the timestamp for. Syntax is flexible."
)
async def timestamp_cmd(self, ctx: LionContext, time: str):
timezone = ctx.lmember.timezone
time = time.strip()
default = dt.datetime.now(tz=timezone).replace(hour=0, minute=0, second=0, microsecond=0)
try:
ts = parse(time, fuzzy=True, default=default)
except ParserError:
await ctx.error_reply(
f"Could not parse `{time}` as a time! "
"For best results use `YYYY-MM-DD HH:MM`"
)
else:
tstr = discord.utils.format_dt(ts, style='f')
await ctx.reply(
f"{tstr} is `{tstr}`"
)