65 lines
2.9 KiB
Python
65 lines
2.9 KiB
Python
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))
|