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" |