mirror of
https://github.com/UiO-Gaming/mustafa.git
synced 2026-11-05 13:56:48 +01:00
Make all arguments optional
This commit is contained in:
1 parent
bb10885830
commit
46646f752d
1 file changed
+17
-28
+17
-28
@@ -1,3 +1,4 @@
|
||||
import traceback
|
||||
from typing import Any
|
||||
import discord
|
||||
from discord import app_commands
|
||||
@@ -6,6 +7,7 @@ from PIL import Image, ImageDraw, ImageFont
|
||||
import aiohttp
|
||||
import io
|
||||
|
||||
|
||||
class The(commands.Cog):
|
||||
"""
|
||||
This cog lets you make a "the" barnacle boy laser eyes meme
|
||||
@@ -29,7 +31,9 @@ class The(commands.Cog):
|
||||
----------
|
||||
(io.BytesIO): data buffer
|
||||
"""
|
||||
|
||||
if not url:
|
||||
return None
|
||||
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.get(url) as resp:
|
||||
if resp.status != 200:
|
||||
@@ -56,9 +60,8 @@ class The(commands.Cog):
|
||||
draw.text((x + dx, y + dy), text, font=font, fill="black")
|
||||
draw.text((x, y), text, font=font, fill="white")
|
||||
|
||||
|
||||
@app_commands.command()
|
||||
async def the(self, interaction: discord.Interaction, caption: str, image_url: str, bottom_text: str = ""):
|
||||
async def the(self, interaction: discord.Interaction, top_text: str = "", image_url: str = "", bottom_text: str = ""):
|
||||
"""
|
||||
Responds with a barnacle boy laser eyes THE meme with the given captions
|
||||
|
||||
@@ -73,42 +76,28 @@ class The(commands.Cog):
|
||||
----------
|
||||
(discord.File): an image
|
||||
"""
|
||||
|
||||
await interaction.response.defer()
|
||||
|
||||
try:
|
||||
image_data = await self.fetch_image(image_url)
|
||||
bg_data = await self.fetch_image(self.background_url)
|
||||
|
||||
if not image_data or not bg_data:
|
||||
await interaction.followup.send("Invalid image URLs provided.")
|
||||
return
|
||||
|
||||
image = Image.open(image_data)
|
||||
background = Image.open(bg_data)
|
||||
|
||||
image_data = await self.fetch_image(image_url)
|
||||
|
||||
fixed_size = (200, 200) # Set your desired maximum width and height
|
||||
image.thumbnail(fixed_size, Image.ANTIALIAS)
|
||||
if image_data:
|
||||
image = Image.open(image_data).resize((200, 200), Image.ANTIALIAS)
|
||||
background.paste(image, (self.x, self.y))
|
||||
|
||||
background.paste(image, (self.x, self.y))
|
||||
draw = ImageDraw.Draw(background)
|
||||
font = ImageFont.truetype("./src/assets/fonts/impact.ttf", 120)
|
||||
|
||||
if caption:
|
||||
draw = ImageDraw.Draw(background)
|
||||
font = ImageFont.truetype("./src/assets/fonts/impact.ttf", 120)
|
||||
text = caption.upper()
|
||||
draw.textsize(text, font=font)
|
||||
if top_text:
|
||||
text_x, text_y = (210, -10)
|
||||
self.outline_text(draw, text, font, text_x, text_y, thickness=5)
|
||||
draw.text((text_x, text_y), text, font=font, fill="white")
|
||||
self.outline_text(draw, top_text.upper(), font, text_x, text_y, thickness=5)
|
||||
|
||||
if bottom_text:
|
||||
draw = ImageDraw.Draw(background)
|
||||
font = ImageFont.truetype("./src/assets/fonts/impact.ttf", 120)
|
||||
text = bottom_text.upper()
|
||||
draw.textsize(text, font=font)
|
||||
text_x, text_y = (150, 550)
|
||||
self.outline_text(draw, text, font, text_x, text_y, thickness=5)
|
||||
draw.text((text_x, text_y), text, font=font, fill="white")
|
||||
self.outline_text(draw, bottom_text.upper(), font, text_x, text_y, thickness=5)
|
||||
|
||||
with io.BytesIO() as output:
|
||||
background.save(output, format="PNG")
|
||||
@@ -116,7 +105,7 @@ class The(commands.Cog):
|
||||
await interaction.followup.send(file=discord.File(output, "result.png"))
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
traceback.print_exc()
|
||||
await interaction.followup.send("An error occurred while processing the images.")
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user