import discord from discord import app_commands from discord.app_commands import Choice from discord.ext import commands from classes.my_cog import MyCog from create_calendar import get_calendar, get_eleves, display from io import BytesIO class EDT(MyCog): def __init__(self, bot): super().__init__(bot) self.eleves = get_eleves() self.bot = bot @app_commands.command(name="edt") @app_commands.choices(langues=[ Choice(name='Anglais LV1, Autre ou Pas de LV2', value="EN"), Choice(name='Anglais LV1, Allemand LV2', value="EN-DE"), Choice(name='Anglais LV1, Espagnol LV2', value="EN-ES"), Choice(name='Allemand LV1, Anglais LV2', value="DE-EN"), Choice(name='Espagnol LV1, Anglais LV2', value="ES-EN") ] ) @app_commands.describe(groupe="Votre groupe de colle, groupe ∈ ⟦1, 15⟧") @app_commands.describe( langues="Les options de langue que vous suivez. (Les langues suivies à H4 ne sont pas gérées, mettez 'Autres')") @app_commands.describe(split="Créer deux fichiers différentes, un pour les colles et un pour le rest de l'EDT.") async def edt( self, interaction: discord.Interaction, groupe: app_commands.Range[int, 1, 15], langues: Choice[str], split: bool = False): """ Génère un emploi du temps prenant compte des colles, des langues et de la semaine. """ cal_list = get_calendar(str(groupe), langues.value, split) fichiers = [] if split: fichiers.append(discord.File(fp=BytesIO(cal_list[0]), filename=f"EDT-{groupe}-{langues.value}-WO.ics")) fichiers.append(discord.File(fp=BytesIO(cal_list[1]), filename=f"Colles-{groupe}.ics")) message = f""" \nVotre emploi du temps (`EDT-{groupe}-{langues.value}-WO.ics`) pour le groupe `{groupe}`, `{langues.name}` au format `.ics` a bien été généré, **sans les colles** \n\nLes colles ont été généré séparemment pour le groupe `{groupe}` : `Colles-{groupe}.ics` \n\nVous pouvez importer ces fichiers dans la plupart des calendriers, mais il est recommandé de créer un nouveau sous-calendrier pour facilement pouvoir le changer. """ else: fichiers.append(discord.File(fp=BytesIO(cal_list[0]), filename=f"EDT-{groupe}-{langues.value}.ics")) message = f""" \nVotre emploi du temps (`EDT-{groupe}-{langues.value}.ics`) pour le groupe `{groupe}`, `{langues.name}` au format `.ics` a bien été généré, **avec les colles** \n\nVous pouvez importer ces fichiers dans la plupart des calendriers, mais il est recommandé de créer un nouveau sous-calendrier pour facilement pouvoir le changer. """ await interaction.response.send_message(message, files=fichiers) async def setup(bot): await bot.add_cog(EDT(bot))