Skip to content

Commit b252f63

Browse files
committed
Refactor error handling in Beemoji commands to utilize send_error_embed for consistent user feedback. Update error messages to include auto-deletion timing for improved user experience.
1 parent dd2c5e8 commit b252f63

File tree

1 file changed

+67
-96
lines changed

1 file changed

+67
-96
lines changed

cogs/beemoji_cog.py

Lines changed: 67 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import asyncio
1212

1313
from config import config
14-
from utils.embed_utils import SafeEmbed
14+
from utils.embed_utils import SafeEmbed, generate_error_message
1515
from utils.error_handler import send_error_embed
1616
from utils.logger import discord_logger
1717
from exceptions import APIError
@@ -52,13 +52,11 @@ async def edit(self, interaction: discord.Interaction, button: discord.ui.Button
5252
try:
5353
# Check if gptimage model is available
5454
if "gptimage" not in config.MODELS:
55-
await interaction.response.send_message(
56-
embed=SafeEmbed(
57-
title="🎨 Model Unavailable",
58-
description="The gptimage model is currently not available for editing. Please try again later.",
59-
color=int(config.ui.colors.warning, 16),
60-
),
61-
ephemeral=True,
55+
await send_error_embed(
56+
interaction,
57+
"🎨 Model Unavailable",
58+
"The gptimage model is currently not available for editing. Please try again later.",
59+
delete_after_minutes=2,
6260
)
6361
return
6462

@@ -67,13 +65,11 @@ async def edit(self, interaction: discord.Interaction, button: discord.ui.Button
6765
not interaction.message.embeds
6866
or not interaction.message.embeds[0].thumbnail
6967
):
70-
await interaction.response.send_message(
71-
embed=SafeEmbed(
72-
title="🎨 No Image Found",
73-
description="Could not find the original emoji to edit.",
74-
color=int(config.ui.colors.error, 16),
75-
),
76-
ephemeral=True,
68+
await send_error_embed(
69+
interaction,
70+
"🎨 No Image Found",
71+
"Could not find the original emoji to edit.",
72+
delete_after_minutes=1,
7773
)
7874
return
7975

@@ -96,13 +92,11 @@ async def edit(self, interaction: discord.Interaction, button: discord.ui.Button
9692
"guild_id": interaction.guild_id if interaction.guild else None,
9793
},
9894
)
99-
await interaction.response.send_message(
100-
embed=SafeEmbed(
101-
title="🎨 Error Opening Edit Dialog",
102-
description=f"```\n{str(e)}\n```",
103-
color=int(config.ui.colors.error, 16),
104-
),
105-
ephemeral=True,
95+
await send_error_embed(
96+
interaction,
97+
"🎨 Error Opening Edit Dialog",
98+
f"```\n{str(e)}\n```",
99+
delete_after_minutes=2,
106100
)
107101

108102
@discord.ui.button(
@@ -117,13 +111,11 @@ async def add_to_server(
117111
try:
118112
# Check if user has manage emojis permission
119113
if not interaction.user.guild_permissions.manage_emojis:
120-
await interaction.response.send_message(
121-
embed=SafeEmbed(
122-
title="❌ Insufficient Permissions",
123-
description="You need the 'Manage Emojis and Stickers' permission to add emojis to this server.",
124-
color=int(config.ui.colors.error, 16),
125-
),
126-
ephemeral=True,
114+
await send_error_embed(
115+
interaction,
116+
"❌ Insufficient Permissions",
117+
"You need the 'Manage Emojis and Stickers' permission to add emojis to this server.",
118+
delete_after_minutes=1,
127119
)
128120
return
129121

@@ -132,13 +124,11 @@ async def add_to_server(
132124
not interaction.message.embeds
133125
or not interaction.message.embeds[0].thumbnail
134126
):
135-
await interaction.response.send_message(
136-
embed=SafeEmbed(
137-
title="❌ No Image Found",
138-
description="Could not find the emoji image to add to server.",
139-
color=int(config.ui.colors.error, 16),
140-
),
141-
ephemeral=True,
127+
await send_error_embed(
128+
interaction,
129+
"❌ No Image Found",
130+
"Could not find the emoji image to add to server.",
131+
delete_after_minutes=1,
142132
)
143133
return
144134

@@ -212,13 +202,11 @@ async def add_to_server(
212202
},
213203
)
214204

215-
await interaction.followup.send(
216-
embed=SafeEmbed(
217-
title="❌ Failed to Add Emoji",
218-
description=f"```\n{error_message}\n```",
219-
color=int(config.ui.colors.error, 16),
220-
),
221-
ephemeral=True,
205+
await send_error_embed(
206+
interaction,
207+
"❌ Failed to Add Emoji",
208+
f"```\n{error_message}\n```",
209+
delete_after_minutes=2,
222210
)
223211
except Exception as e:
224212
discord_logger.log_error(
@@ -230,13 +218,11 @@ async def add_to_server(
230218
"guild_id": interaction.guild_id if interaction.guild else None,
231219
},
232220
)
233-
await interaction.followup.send(
234-
embed=SafeEmbed(
235-
title="❌ Error Adding Emoji",
236-
description=f"```\n{str(e)}\n```",
237-
color=int(config.ui.colors.error, 16),
238-
),
239-
ephemeral=True,
221+
await send_error_embed(
222+
interaction,
223+
"❌ Error Adding Emoji",
224+
f"```\n{str(e)}\n```",
225+
delete_after_minutes=2,
240226
)
241227

242228
@discord.ui.button(
@@ -260,13 +246,11 @@ async def delete(self, interaction: discord.Interaction, button: discord.ui.Butt
260246
"guild_id": interaction.guild_id if interaction.guild else None,
261247
},
262248
)
263-
await interaction.response.send_message(
264-
embed=SafeEmbed(
265-
title="Error",
266-
description=config.ui.error_messages["delete_unauthorized"],
267-
color=int(config.ui.colors.error, 16),
268-
),
269-
ephemeral=True,
249+
await send_error_embed(
250+
interaction,
251+
"Error",
252+
config.ui.error_messages["delete_unauthorized"],
253+
delete_after_minutes=1,
270254
)
271255
return
272256

@@ -290,13 +274,11 @@ async def delete(self, interaction: discord.Interaction, button: discord.ui.Butt
290274
"guild_id": interaction.guild_id if interaction.guild else None,
291275
},
292276
)
293-
await interaction.response.send_message(
294-
embed=SafeEmbed(
295-
title="Error Deleting the Beemoji",
296-
description=f"{e}",
297-
color=int(config.ui.colors.error, 16),
298-
),
299-
ephemeral=True,
277+
await send_error_embed(
278+
interaction,
279+
"Error Deleting the Beemoji",
280+
f"```\n{str(e)}\n```",
281+
delete_after_minutes=2,
300282
)
301283
return
302284

@@ -562,13 +544,11 @@ async def beemoji_command(
562544
try:
563545
# Check if gptimage model is available
564546
if "gptimage" not in config.MODELS:
565-
await interaction.response.send_message(
566-
embed=SafeEmbed(
567-
title="🎨 Model Unavailable",
568-
description="The gptimage model is currently not available. Please try again later.",
569-
color=int(config.ui.colors.warning, 16),
570-
),
571-
ephemeral=True,
547+
await send_error_embed(
548+
interaction,
549+
"🎨 Model Unavailable",
550+
"The gptimage model is currently not available. Please try again later.",
551+
delete_after_minutes=2,
572552
)
573553
return
574554

@@ -592,13 +572,11 @@ async def beemoji_command(
592572
)
593573

594574
except ValueError as e:
595-
await interaction.followup.send(
596-
embed=SafeEmbed(
597-
title="❌ Invalid Emoji Input",
598-
description=f"```\n{str(e)}\n```\n\nPlease provide valid emojis. You can use:\n• Unicode emojis: 😀 🎉 ❤️\n• Custom Discord emojis: :custom_emoji: or <:name:id>\n• Animated Discord emojis: <a:name:id>\n• Emoji IDs: 123456789\n\n**Note:** Animated emojis will be converted to static images for remixing.",
599-
color=int(config.ui.colors.error, 16),
600-
),
601-
ephemeral=True,
575+
await send_error_embed(
576+
interaction,
577+
"❌ Invalid Emoji Input",
578+
f"```\n{str(e)}\n```\n\nPlease provide valid emojis. You can use:\n• Unicode emojis: 😀 🎉 ❤️\n• Custom Discord emojis: :custom_emoji: or <:name:id>\n• Animated Discord emojis: <a:name:id>\n• Emoji IDs: 123456789\n\n**Note:** Animated emojis will be converted to static images for remixing.",
579+
delete_after_minutes=1,
602580
)
603581
return
604582

@@ -659,13 +637,11 @@ async def beemoji_command(
659637
error_message=str(e),
660638
context={"command": "beemoji"},
661639
)
662-
await interaction.followup.send(
663-
embed=SafeEmbed(
664-
title="🐝 Couldn't Generate Beemoji 😔",
665-
description=f"```\n{str(e)}\n```",
666-
color=int(config.ui.colors.error, 16),
667-
),
668-
ephemeral=True,
640+
await send_error_embed(
641+
interaction,
642+
"🐝 Couldn't Generate Beemoji 😔",
643+
f"```\n{str(e)}\n```",
644+
delete_after_minutes=2,
669645
)
670646
except Exception as e:
671647
discord_logger.log_error(
@@ -678,13 +654,11 @@ async def beemoji_command(
678654
"guild_id": interaction.guild_id if interaction.guild else None,
679655
},
680656
)
681-
await interaction.followup.send(
682-
embed=SafeEmbed(
683-
title="🐝 Error Generating Beemoji",
684-
description=f"```\n{str(e)}\n```",
685-
color=int(config.ui.colors.error, 16),
686-
),
687-
ephemeral=True,
657+
await send_error_embed(
658+
interaction,
659+
"🐝 Error Generating Beemoji",
660+
f"```\n{str(e)}\n```",
661+
delete_after_minutes=2,
688662
)
689663

690664
@beemoji_command.error
@@ -719,9 +693,6 @@ async def beemoji_command_error(
719693
value="- 1 time every 30 seconds",
720694
inline=False,
721695
)
722-
723-
embed.set_user_footer(interaction, "🐝 Beemoji cooldown for")
724-
725696
return await interaction.response.send_message(embed=embed, ephemeral=True)
726697
else:
727698
discord_logger.log_error(
@@ -732,7 +703,7 @@ async def beemoji_command_error(
732703
)
733704
await send_error_embed(
734705
interaction,
735-
"An unexpected error occurred",
706+
"🐝 An unexpected error occurred",
736707
f"```\n{str(error)}\n```",
737708
delete_after_minutes=2,
738709
)

0 commit comments

Comments
 (0)