Refactor la gestion des images dans les fonctions say_message et perso_embed pour utiliser des URL d'images au lieu de données brutes, améliorant ainsi l'efficacité et la lisibilité du code.

This commit is contained in:
GZod01 2024-12-15 16:49:32 +01:00
parent 4f0ef731bc
commit 5135c52973
2 changed files with 8 additions and 20 deletions

View file

@ -62,20 +62,17 @@ async def say_message(userid:int, guildid:int, shortname:str, message:str,channe
# print("ok")
short_name = row["nom_court"]
full_name = row["nom_complet"]
perso_image = row["image"] #data:image/png;base64,xxxxxx
perso_image_b64=perso_image.split(",")[1]
perso_image_raw = base64.b64decode(perso_image_b64)
print(perso_image_raw)
perso_image = row["image"]
# print(short_name,full_name,perso_image)
webhook = None
# print("ok2")
if discord.utils.get(await channel.webhooks(),name=short_name) is None:
# print("ok3");
webhook = await channel.create_webhook(name=short_name,avatar=perso_image_raw)
webhook = await channel.create_webhook(name=short_name)
# print("ok4")
else:
# print("ok5")
webhook = discord.utils.get(await channel.webhooks(),name=short_name)
webhook = discord.utils.get(await channel.webhooks(),name=short_name,avatar_url=perso_image)
# print("ok6")
# print("ok7")
await webhook.send(message,username=full_name)

View file

@ -9,7 +9,7 @@ import io
_sql_table="""CREATE TABLE personnages (
nom_court varchar(255),
nom_complet text,
image blob,
image text,
histoire text,
pouvoirs text,
uuid TEXT,
@ -46,15 +46,13 @@ class PersoCommands(app_commands.Group):
uuid=interaction.user.id
guild_id = interaction.guild.id
image_blob_raw=await image.read()
image_blob_b64 = base64.b64encode(image_blob_raw).decode("utf-8")
ext = image.filename.split(".")[-1]
image_blob=f"data:image/{ext};base64,{image_blob_b64}"
a = await self.bot.get_guild(1037663859621765160).get_channel(1317876780635394068).send(file=discord.File(io.BytesIO(image_blob_raw),filename=image.filename))
perso_image_url = a.attachments[0].url
print(nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,guild_id)
print(image.filename)
print(image.url)
print(image_blob)
try:
res = await self.bot.db.execute("INSERT INTO personnages (nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,image) VALUES (?,?,?,?,?,?,?,?,?)",(nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,image_blob))
res = await self.bot.db.execute("INSERT INTO personnages (nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,image) VALUES (?,?,?,?,?,?,?,?,?)",(nom_court,nom_complet,histoire,pouvoirs,age,sexe,uuid,perso_image_url))
print(res)
await res.close()
await self.bot.db.commit()
@ -95,17 +93,10 @@ class PersoCommands(app_commands.Group):
async def perso_embed(bot:GammaRPBot,perso_datas)->discord.embeds.Embed:
perso_image = perso_datas["image"] #data:image/png;base64,xxxxxx
perso_image_b64=perso_image.split(",")[1]
perso_image_raw = base64.b64decode(perso_image_b64)
perso_image_file = discord.File(io.BytesIO(perso_image_raw))
a = await bot.get_guild(1037663859621765160).get_channel(1317876780635394068).send(file=perso_image_file)
print(a.attachments)
perso_image_url = a.attachments[0].url
embed = discord.Embed(title=perso_datas["nom_complet"],description=perso_datas["histoire"])
embed.add_field(name="Pouvoirs",value=perso_datas["pouvoirs"])
embed.add_field(name="Age",value=perso_datas["age"])
embed.add_field(name="Sexe",value=perso_datas["sexe"])
embed.set_footer(text=f"Nom court (ID): {perso_datas['nom_court']}")
embed.set_thumbnail(url=perso_image_url)
embed.set_thumbnail(url=perso_datas["image"])
return embed