diff --git a/Transformers.py b/Transformers.py new file mode 100644 index 0000000..ce76712 --- /dev/null +++ b/Transformers.py @@ -0,0 +1,23 @@ +import discord +from datetime import datetime +from datetime_utils import to_unix +from loguru import logger + + +class DateTransformer(discord.app_commands.Transformer): + """ + Converts date as 2022-12-24 to unix timestamp + """ + + async def transform(self, interaction: discord.Interaction, value: str, /) -> int: + logger.trace(f'Converting {value} to unix timestamp') + + date_format = "%Y-%m-%d" + + try: + date = to_unix(datetime.strptime(value, date_format)) + return date + + except Exception: + logger.opt(exception=True).warning(f"Failed to parse to datetime {value!r}") + raise