aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/evergreen/status_codes.py
diff options
context:
space:
mode:
authorGravatar Janine vN <[email protected]>2021-09-05 00:31:20 -0400
committerGravatar Janine vN <[email protected]>2021-09-05 00:31:20 -0400
commit02512e43f3d68ffd89654c5f2e9e3e9a27c0c018 (patch)
tree4b62a6dbb39601f02aa435c7eb8a10433585c3bb /bot/exts/evergreen/status_codes.py
parentMove snakes commands into fun folder (diff)
Move game and fun commands to Fun folder, fix ddg
This moves all the fun commands and games into the fun folder. This commit also makes changes to the duck_game. It was setting a footer during an embed init, which is no longer possible with the version of d.py we use. Additionally, an issue with editing an embed that had a local image loaded. The workaround for the time being is to update the message, not the embed.
Diffstat (limited to 'bot/exts/evergreen/status_codes.py')
-rw-r--r--bot/exts/evergreen/status_codes.py87
1 files changed, 0 insertions, 87 deletions
diff --git a/bot/exts/evergreen/status_codes.py b/bot/exts/evergreen/status_codes.py
deleted file mode 100644
index 501cbe0a..00000000
--- a/bot/exts/evergreen/status_codes.py
+++ /dev/null
@@ -1,87 +0,0 @@
-from random import choice
-
-import discord
-from discord.ext import commands
-
-from bot.bot import Bot
-
-HTTP_DOG_URL = "https://httpstatusdogs.com/img/{code}.jpg"
-HTTP_CAT_URL = "https://http.cat/{code}.jpg"
-STATUS_TEMPLATE = "**Status: {code}**"
-ERR_404 = "Unable to find status floof for {code}."
-ERR_UNKNOWN = "Error attempting to retrieve status floof for {code}."
-ERROR_LENGTH_EMBED = discord.Embed(
- title="Input status code does not exist",
- description="The range of valid status codes is 100 to 599",
-)
-
-
-class HTTPStatusCodes(commands.Cog):
- """
- Fetch an image depicting HTTP status codes as a dog or a cat.
-
- If neither animal is selected a cat or dog is chosen randomly for the given status code.
- """
-
- def __init__(self, bot: Bot):
- self.bot = bot
-
- @commands.group(
- name="http_status",
- aliases=("status", "httpstatus"),
- invoke_without_command=True,
- )
- async def http_status_group(self, ctx: commands.Context, code: int) -> None:
- """Choose a cat or dog randomly for the given status code."""
- subcmd = choice((self.http_cat, self.http_dog))
- await subcmd(ctx, code)
-
- @http_status_group.command(name="cat")
- async def http_cat(self, ctx: commands.Context, code: int) -> None:
- """Send a cat version of the requested HTTP status code."""
- if code in range(100, 600):
- await self.build_embed(url=HTTP_CAT_URL.format(code=code), ctx=ctx, code=code)
- return
- await ctx.send(embed=ERROR_LENGTH_EMBED)
-
- @http_status_group.command(name="dog")
- async def http_dog(self, ctx: commands.Context, code: int) -> None:
- """Send a dog version of the requested HTTP status code."""
- if code in range(100, 600):
- await self.build_embed(url=HTTP_DOG_URL.format(code=code), ctx=ctx, code=code)
- return
- await ctx.send(embed=ERROR_LENGTH_EMBED)
-
- async def build_embed(self, url: str, ctx: commands.Context, code: int) -> None:
- """Attempt to build and dispatch embed. Append error message instead if something goes wrong."""
- async with self.bot.http_session.get(url, allow_redirects=False) as response:
- if response.status in range(200, 300):
- await ctx.send(
- embed=discord.Embed(
- title=STATUS_TEMPLATE.format(code=code)
- ).set_image(url=url)
- )
- elif response.status in (302, 404): # dog URL returns 302 instead of 404
- if "dog" in url:
- await ctx.send(
- embed=discord.Embed(
- title=ERR_404.format(code=code)
- ).set_image(url="https://httpstatusdogs.com/img/404.jpg")
- )
- return
- await ctx.send(
- embed=discord.Embed(
- title=ERR_404.format(code=code)
- ).set_image(url="https://http.cat/404.jpg")
- )
- else:
- await ctx.send(
- embed=discord.Embed(
- title=STATUS_TEMPLATE.format(code=code)
- ).set_footer(text=ERR_UNKNOWN.format(code=code))
- )
-
-
-def setup(bot: Bot) -> None:
- """Load the HTTPStatusCodes cog."""
- bot.add_cog(HTTPStatusCodes(bot))