aboutsummaryrefslogtreecommitdiffstats
path: root/bot/exts/halloween/spookygif.py
diff options
context:
space:
mode:
Diffstat (limited to 'bot/exts/halloween/spookygif.py')
-rw-r--r--bot/exts/halloween/spookygif.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/bot/exts/halloween/spookygif.py b/bot/exts/halloween/spookygif.py
new file mode 100644
index 00000000..818de8cd
--- /dev/null
+++ b/bot/exts/halloween/spookygif.py
@@ -0,0 +1,39 @@
+import logging
+
+import aiohttp
+import discord
+from discord.ext import commands
+
+from bot.constants import Tokens
+
+log = logging.getLogger(__name__)
+
+
+class SpookyGif(commands.Cog):
+ """A cog to fetch a random spooky gif from the web!"""
+
+ def __init__(self, bot: commands.Bot):
+ self.bot = bot
+
+ @commands.command(name="spookygif", aliases=("sgif", "scarygif"))
+ async def spookygif(self, ctx: commands.Context) -> None:
+ """Fetches a random gif from the GIPHY API and responds with it."""
+ async with ctx.typing():
+ async with aiohttp.ClientSession() as session:
+ params = {'api_key': Tokens.giphy, 'tag': 'halloween', 'rating': 'g'}
+ # Make a GET request to the Giphy API to get a random halloween gif.
+ async with session.get('http://api.giphy.com/v1/gifs/random', params=params) as resp:
+ data = await resp.json()
+ url = data['data']['image_url']
+
+ embed = discord.Embed(colour=0x9b59b6)
+ embed.title = "A spooooky gif!"
+ embed.set_image(url=url)
+
+ await ctx.send(embed=embed)
+
+
+def setup(bot: commands.Bot) -> None:
+ """Spooky GIF Cog load."""
+ bot.add_cog(SpookyGif(bot))
+ log.info("SpookyGif cog loaded")