From 371241de3aa2477b51866820160780967249fefd Mon Sep 17 00:00:00 2001 From: Conatum Date: Sun, 10 Sep 2023 07:29:52 +0300 Subject: [PATCH] fix(meta): Catch TransformerError. --- src/meta/LionBot.py | 13 ++++++++++++- src/utils/transformers.py | 5 ++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/meta/LionBot.py b/src/meta/LionBot.py index d20349de..f6bc2a38 100644 --- a/src/meta/LionBot.py +++ b/src/meta/LionBot.py @@ -7,7 +7,7 @@ import discord from discord.utils import MISSING from discord.ext.commands import Bot, Cog, HybridCommand, HybridCommandError from discord.ext.commands.errors import CommandInvokeError, CheckFailure -from discord.app_commands.errors import CommandInvokeError as appCommandInvokeError +from discord.app_commands.errors import CommandInvokeError as appCommandInvokeError, TransformerError from aiohttp import ClientSession from data import Database @@ -161,6 +161,17 @@ class LionBot(Bot): raise original except HandledException: pass + except TransformerError as e: + msg = str(e) + if msg: + try: + await ctx.error_reply(msg) + except Exception: + pass + logger.debug( + f"Caught a transformer error: {repr(e)}", + extra={'action': 'BotError', 'with_ctx': True} + ) except SafeCancellation: if original.msg: try: diff --git a/src/utils/transformers.py b/src/utils/transformers.py index 3014df4d..f4dccba7 100644 --- a/src/utils/transformers.py +++ b/src/utils/transformers.py @@ -40,7 +40,10 @@ class DurationTransformer(Transformer): duration = parse_duration(value) if duration is None: raise UserInputError( - t(_p('utils:parse_dur|error', "Cannot parse `{value}` as a duration.")).format( + t(_p( + 'utils:parse_dur|error', + "Cannot parse `{value}` as a duration." + )).format( value=value ) )