Improved error handling; Introduced i18n for /register, /unregister and /guess

This commit is contained in:
2025-04-29 13:50:38 +02:00
parent 28d6340847
commit 9d39b803f3
8 changed files with 177 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
from bson.errors import InvalidId
from discord import (
ApplicationContext,
CategoryChannel,
@@ -12,6 +13,7 @@ from discord.utils import basic_autocomplete
from libbot.i18n import _, in_every_locale
from classes import PycordGuild
from classes.errors import GuildNotFoundError
from classes.pycord_bot import PycordBot
from modules.utils import autocomplete_timezones, is_operation_confirmed
@@ -58,7 +60,11 @@ class CogConfig(Cog):
channel: TextChannel,
timezone: str,
) -> None:
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
try:
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
except (InvalidId, GuildNotFoundError):
await ctx.respond(self.bot._("unexpected_error", "messages", locale=ctx.locale))
return
try:
timezone_parsed: ZoneInfo = ZoneInfo(timezone)
@@ -94,7 +100,11 @@ class CogConfig(Cog):
if not (await is_operation_confirmed(ctx, confirm)):
return
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
try:
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
except (InvalidId, GuildNotFoundError):
await ctx.respond(self.bot._("unexpected_error", "messages", locale=ctx.locale))
return
await guild.purge(self.bot.cache)
@@ -106,7 +116,11 @@ class CogConfig(Cog):
description_localizations=in_every_locale("description", "commands", "config_show"),
)
async def command_config_show(self, ctx: ApplicationContext) -> None:
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
try:
guild: PycordGuild = await self.bot.find_guild(ctx.guild.id)
except (InvalidId, GuildNotFoundError):
await ctx.respond(self.bot._("unexpected_error", "messages", locale=ctx.locale))
return
if not guild.is_configured():
await ctx.respond(self.bot._("guild_unconfigured_admin", "messages", locale=ctx.locale))