utilize file to bytesio util function

This commit is contained in:
LBlend committed 2023-05-10 01:44:28 +09:00
1 parent 1d5d0ab5cd
commit 22d1357cd1
2 files changed
+22 -17

No files matched your search

+2 -3
View File
@@ -10,6 +10,7 @@ from PIL import ImageEnhance
from PIL import ImageFont
from PIL import UnidentifiedImageError
from cogs.utils import discord_utils
from cogs.utils import embed_templates
@@ -41,9 +42,7 @@ class Meme(commands.Cog):
await interaction.response.defer()
# Fetch image
input = BytesIO()
input.write(await bilde.read())
input.seek(0)
input = await discord_utils.get_file_bytesio(bilde)
# Open image
# Check if image is valid
+20 -14
View File
@@ -1,6 +1,7 @@
import re
import urllib
from datetime import datetime
from io import BytesIO
from os import remove
import discord
@@ -11,6 +12,7 @@ from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from cogs.utils import discord_utils
from cogs.utils import embed_templates
from cogs.utils.misc_utils import ignore_exception
@@ -221,7 +223,7 @@ class Misc(commands.Cog):
if bruker == interaction.user:
embed = embed_templates.error_warning(
interaction, text="Jeg vet du er ensom, men du kan " "ikke matche med deg selv"
interaction, text="Jeg vet du er ensom, men du kan ikke matche med deg selv"
)
return await interaction.response.send_message(embed=embed)
@@ -233,16 +235,21 @@ class Misc(commands.Cog):
if bruker.id == self.bot.user.id:
match_percent = 100
await interaction.user.display_avatar.save(fp=f"./src/assets/temp/{interaction.user.id}_raw.png")
await bruker.display_avatar.save(fp=f"./src/assets/temp/{bruker.id}_raw.png")
invoker = Image.open(f"./src/assets/temp/{interaction.user.id}_raw.png").convert("RGBA")
# Prepare invoker avatar
invoker_avatar = await discord_utils.get_file_bytesio(interaction.user.display_avatar)
invoker = Image.open(invoker_avatar).convert("RGBA")
invoker = invoker.resize((389, 389), Image.ANTIALIAS)
user = Image.open(f"./src/assets/temp/{bruker.id}_raw.png").convert("RGBA")
# Prepare user avatar
user_avatar = await discord_utils.get_file_bytesio(bruker.display_avatar)
user = Image.open(user_avatar).convert("RGBA")
user = user.resize((389, 389), Image.ANTIALIAS)
# Prepare heart image
heart = Image.open("./src/assets/misc/heart.png")
mask = Image.open("./src/assets/misc/heart.png", "r")
# Putting it all together
image = Image.new("RGBA", (1024, 576))
image.paste(invoker, (0, 94))
image.paste(user, (635, 94))
@@ -253,19 +260,18 @@ class Misc(commands.Cog):
font_size = ((image.size[0] - font_size[0]) / 2, (image.size[1] - font_size[1]) / 2)
draw.text(font_size, f"{match_percent}%", font=font, fill=(255, 255, 255, 255))
image.save(f"./src/assets/temp/{interaction.user.id}_{bruker.id}_edit.png")
# Save image
output = BytesIO()
image.save(output, format="PNG")
output.seek(0)
f = discord.File(f"./src/assets/temp/{interaction.user.id}_{bruker.id}_edit.png")
# Send
f = discord.File(output, filename=f"{interaction.user.id}_{bruker.id}_match.png")
embed = discord.Embed()
embed.set_image(url=f"attachment://{interaction.user.id}_{bruker.id}_edit.png")
embed.set_image(url=f"attachment://{interaction.user.id}_{bruker.id}_match.png")
embed_templates.default_footer(interaction, embed)
await interaction.response.send_message(embed=embed, file=f)
with ignore_exception(OSError):
remove(f"./src/assets/temp/{bruker.id}_raw.png")
remove(f"./src/assets/temp/{interaction.user.id}_raw.png")
remove(f"./src/assets/temp/{interaction.user.id}_{bruker.id}_edit.png")
async def setup(bot: commands.Bot):
"""