updated meme to allow blank topics

This commit is contained in:
phixxy 2024-02-15 22:48:00 -08:00
parent 404244c573
commit e4fe215928

View file

@ -1,6 +1,7 @@
#plugin for sparkytron3000 #plugin for sparkytron3000
import os import os
import random import random
import time
from discord.ext import commands from discord.ext import commands
from cogs.base_cog.bot_base_cog import BotBaseCog from cogs.base_cog.bot_base_cog import BotBaseCog
@ -31,14 +32,7 @@ class Meme(BotBaseCog):
except: except:
return "error occurred in meme" return "error occurred in meme"
@commands.command( async def generate_random_meme(self, topic):
description="Meme",
help="Generates a meme based on input. Usage: !meme (topic)",
brief="Generate a meme"
)
async def meme(self, ctx):
self.logger.info(f"Meme command called by {ctx.author.name}")
async def generate_random_meme(topic):
async with self.http_session.get('https://api.imgflip.com/get_memes') as resp: async with self.http_session.get('https://api.imgflip.com/get_memes') as resp:
response_data = await resp.json() response_data = await resp.json()
response = response_data['data']['memes'] response = response_data['data']['memes']
@ -85,7 +79,7 @@ class Meme(BotBaseCog):
filename = memepics[id-1]['name'] filename = memepics[id-1]['name']
async with self.http_session.get(image_link) as response: async with self.http_session.get(image_link) as response:
folder = "tmp/meme/" folder = "tmp/meme/"
filename = folder + topic + str(len(os.listdir(folder))) + ".jpg" filename = f"{folder}{time.time_ns()}.jpg"
with open(filename, "wb") as file: with open(filename, "wb") as file:
while True: while True:
@ -95,16 +89,22 @@ class Meme(BotBaseCog):
file.write(chunk) file.write(chunk)
except: except:
self.logger.exception("Something's Wrong with the aiohttp in meme So try again") self.logger.exception("Something's Wrong with the aiohttp in meme So try again")
return image_link, filename return image_link
try: @commands.command(
topic = ctx.message.content.split(" ", maxsplit=1)[1] description="Meme",
help="Generates a meme based on input. Usage: !meme (topic)",
brief="Generate a meme"
)
async def meme(self, ctx, *topic):
self.logger.info(f"Meme command called by {ctx.author.name}")
if topic:
topic = ' '.join(topic)
else:
topic = await self.answer_question("What topic would you like to generate a meme for?")
await ctx.send(f'Generating {topic} meme') await ctx.send(f'Generating {topic} meme')
link, filepath = await generate_random_meme(topic) link = await self.generate_random_meme(topic)
await ctx.send(link) await ctx.send(link)
except:
self.logger.exception("Error occurred in meme")
await ctx.send('Something went wrong try again. Usage: !meme (topic)')
async def setup(bot): async def setup(bot):
await bot.add_cog(Meme(bot)) await bot.add_cog(Meme(bot))