diff options
| author | 2021-10-10 13:41:24 -0400 | |
|---|---|---|
| committer | 2021-10-10 13:48:18 -0400 | |
| commit | 016f65b4d450ff538a2b5deb21f8f03d678dac84 (patch) | |
| tree | 78bdde3e151a8b7b9bb724963cbbc2d028e13ad4 | |
| parent | Merge pull request #1630 from python-discord/kill-subdomains (diff) | |
Handle 400 when setting pre-existing doc package
If you run, for example:
    !doc setdoc black https://black.readthedocs/en/stable/objects.inv
twice over. You'll get an unhelpful "According to the API, your request
is malformed." error message back. This commit adds an error handler
to catch the HTTP 400 and tell the user the package already exists.
| -rw-r--r-- | bot/exts/info/doc/_cog.py | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/bot/exts/info/doc/_cog.py b/bot/exts/info/doc/_cog.py index e7710db24..7d63bc9a9 100644 --- a/bot/exts/info/doc/_cog.py +++ b/bot/exts/info/doc/_cog.py @@ -13,6 +13,7 @@ import aiohttp  import discord  from discord.ext import commands +from bot.api import ResponseCodeError  from bot.bot import Bot  from bot.constants import MODERATION_ROLES, RedirectOutput  from bot.converters import Inventory, PackageName, ValidURL, allowed_strings @@ -395,7 +396,14 @@ class DocCog(commands.Cog):              "base_url": base_url,              "inventory_url": inventory_url          } -        await self.bot.api_client.post("bot/documentation-links", json=body) +        try: +            await self.bot.api_client.post("bot/documentation-links", json=body) +        except ResponseCodeError as err: +            if err.status == 400 and "already exists" in err.response_json.get("package", [""])[0]: +                log.info(f"Ignoring HTTP 400 as package {package_name} has already been added.") +                await ctx.send(f"Package {package_name} has already already added.") +                return +            raise          log.info(              f"User @{ctx.author} ({ctx.author.id}) added a new documentation package:\n" | 
