From 1244d5a9411895852c2dfc3ecb532a817a10e415 Mon Sep 17 00:00:00 2001 From: cswimr Date: Mon, 26 Aug 2024 17:46:42 -0400 Subject: [PATCH] fix(pterodactyl): don't depend on a website to host images when i can bundle image files in the cog itself --- pterodactyl/data/unknown.png | Bin 0 -> 66388 bytes pterodactyl/pterodactyl.py | 2 +- pterodactyl/websocket.py | 34 +++++++++++++++++++++++++--------- 3 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 pterodactyl/data/unknown.png diff --git a/pterodactyl/data/unknown.png b/pterodactyl/data/unknown.png new file mode 100644 index 0000000000000000000000000000000000000000..16fe498cc335fa830b465ef4c910215393f74510 GIT binary patch literal 66388 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 None: if join_message: if chat_channel is not None: if coginstance.bot.embed_requested(chat_channel): - await chat_channel.send(embed=await generate_join_leave_embed(join_message, True)) + embed, img = await generate_join_leave_embed(coginstance=coginstance, username=chat_message['username'],join=True) + if img: + with open(img, 'rb') as file: + await chat_channel.send(embed=embed, file=file) + else: + await chat_channel.send(embed=embed) else: await chat_channel.send(f"{join_message} joined the game", allowed_mentions=discord.AllowedMentions.none()) @@ -86,7 +93,12 @@ async def establish_websocket_connection(coginstance: Pterodactyl) -> None: if leave_message: if chat_channel is not None: if coginstance.bot.embed_requested(chat_channel): - await chat_channel.send(embed=await generate_join_leave_embed(leave_message, False)) + embed, img = await generate_join_leave_embed(coginstance=coginstance, username=chat_message['username'],join=False) + if img: + with open(img, 'rb') as file: + await chat_channel.send(embed=embed, file=file) + else: + await chat_channel.send(embed=embed) else: await chat_channel.send(f"{leave_message} left the game", allowed_mentions=discord.AllowedMentions.none()) @@ -219,29 +231,33 @@ async def send_chat_discord(coginstance: Pterodactyl, username: str, message: st else: logger.warning("Chat channel not set. Skipping sending chat message to Discord") -async def generate_join_leave_embed(username: str, join: bool) -> discord.Embed: +async def generate_join_leave_embed(coginstance: Pterodactyl, username: str, join: bool) -> Tuple[discord.Embed, Optional[Union[str, Path]]]: embed = discord.Embed() embed.color = discord.Color.green() if join else discord.Color.red() embed.description = await config.join_msg() if join else await config.leave_msg() info = await get_info(username) if info: + img = None embed.set_author(name=username, icon_url=info['data']['player']['avatar']) else: - embed.set_author(name=username, icon_url='https://seafsh.cc/u/j3AzqQ.png') + img = bundled_data_path(coginstance) / "unknown.png" + embed.set_author(name=username, icon_url='attachment://unknown.png') embed.timestamp = discord.utils.utcnow() - return embed + return embed, img -async def generate_achievement_embed(username: str, achievement: str, challenge: bool) -> discord.Embed: +async def generate_achievement_embed(coginstance: Pterodactyl, username: str, achievement: str, challenge: bool) -> Tuple[discord.Embed, Optional[Union[str, Path]]]: embed = discord.Embed() embed.color = discord.Color.from_str('#a800a7') if challenge else discord.Color.from_str('#54fb54') embed.description = f"{bold(username)} has {'completed the challenge' if challenge else 'made the advancement'} {bold(achievement)}" info = await get_info(username) if info: + img = None embed.set_author(name=username, icon_url=info['data']['player']['avatar']) else: - embed.set_author(name=username, icon_url='https://seafsh.cc/u/j3AzqQ.png') + img = bundled_data_path(coginstance) / "unknown.png" + embed.set_author(name=username, icon_url='attachment://unknown.png') embed.timestamp = discord.utils.utcnow() - return embed + return embed, img def mask_ip(string: str) -> str: def check(match: re.Match[str]):