diff options
author | 2021-09-11 15:34:05 +0200 | |
---|---|---|
committer | 2021-09-11 18:23:22 +0200 | |
commit | ba33608246a4262463f90dd04c91b5fb1acb99c2 (patch) | |
tree | 173c623850eec0bb8dff71ade863a6393e0b3b58 | |
parent | Raise InvalidHeaderError if inventory has invalid header (diff) |
Display BadArgument to user when invalid header is raised in converter
-rw-r--r-- | bot/converters.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/bot/converters.py b/bot/converters.py index 18bb6e4e5..d7946b86c 100644 --- a/bot/converters.py +++ b/bot/converters.py @@ -235,11 +235,16 @@ class Inventory(Converter): async def convert(ctx: Context, url: str) -> t.Tuple[str, _inventory_parser.InventoryDict]: """Convert url to Intersphinx inventory URL.""" await ctx.trigger_typing() - if (inventory := await _inventory_parser.fetch_inventory(url)) is None: - raise BadArgument( - f"Failed to fetch inventory file after {_inventory_parser.FAILED_REQUEST_ATTEMPTS} attempts." - ) - return url, inventory + try: + inventory = await _inventory_parser.fetch_inventory(url) + except _inventory_parser.InvalidHeaderError: + raise BadArgument("Unable to parse inventory because of invalid header, check if URL is correct.") + else: + if inventory is None: + raise BadArgument( + f"Failed to fetch inventory file after {_inventory_parser.FAILED_REQUEST_ATTEMPTS} attempts." + ) + return url, inventory class Snowflake(IDConverter): |