aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Richard Si <[email protected]>2021-10-10 13:41:24 -0400
committerGravatar Richard Si <[email protected]>2021-10-10 13:48:18 -0400
commit016f65b4d450ff538a2b5deb21f8f03d678dac84 (patch)
tree78bdde3e151a8b7b9bb724963cbbc2d028e13ad4
parentMerge 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.py10
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"