Fixed messages about not created channels

This commit is contained in:
2025-04-26 20:01:52 +02:00
parent 64cd7b3bff
commit e45a56835a
3 changed files with 70 additions and 10 deletions

View File

@@ -1,13 +1,18 @@
from datetime import datetime
from logging import Logger
from pathlib import Path
from typing import List
from zoneinfo import ZoneInfo
from bson.errors import InvalidId
from discord import ApplicationContext, Cog, option, slash_command
from discord import ApplicationContext, Cog, option, slash_command, TextChannel, File
from discord.utils import basic_autocomplete
from classes import PycordEvent, PycordGuild, PycordUser
from classes import PycordEvent, PycordGuild, PycordUser, PycordEventStage
from classes.pycord_bot import PycordBot
from modules.utils import autocomplete_active_events, get_unix_timestamp
from modules.utils import autocomplete_active_events, get_unix_timestamp, get_logger
logger: Logger = get_logger(__name__)
class CogRegister(Cog):
@@ -60,7 +65,43 @@ class CogRegister(Cog):
)
if pycord_event.starts.replace(tzinfo=ZoneInfo("UTC")) < datetime.now(tz=ZoneInfo("UTC")):
await user.setup_event_channel(self.bot, ctx.guild, guild, pycord_event, cache=self.bot.cache)
user_channel: TextChannel = await user.setup_event_channel(
self.bot, ctx.guild, guild, pycord_event, cache=self.bot.cache
)
if user_channel is None:
logger.error(
"Event channel was not created for user %s from guild %s and event %s after registration.",
ctx.author.id,
guild.id,
pycord_event._id,
)
await self.bot.notify_admins(
ctx.guild,
guild,
f"Event channel could not be created for user **{ctx.author.display_name}** ({ctx.author.mention}) and event **{pycord_event.name}**.",
)
return
thumbnail: File | None = (
None
if pycord_event.thumbnail is None
else File(Path(f"data/{pycord_event.thumbnail['id']}"), pycord_event.thumbnail["filename"])
)
# TODO Make a nice message
await user_channel.send(
f"Event **{pycord_event.name}** has already started!\n\nUse slash command `/guess` to suggest your answers to each event stage.",
file=thumbnail,
)
first_stage: PycordEventStage = await self.bot.find_event_stage(pycord_event.stage_ids[0])
first_stage_files: List[File] | None = first_stage.get_media_files()
await user_channel.send(f"First stage...\n\n{first_stage.question}", files=first_stage_files)
def setup(bot: PycordBot) -> None: