initial commit
This commit is contained in:
parent
48f8469cc2
commit
528ac486f4
32
README.md
32
README.md
|
@ -1,3 +1,35 @@
|
||||||
# staticky-bot
|
# staticky-bot
|
||||||
|
|
||||||
Code du bot privé des MP2I de SL
|
Code du bot privé des MP2I de SL
|
||||||
|
|
||||||
|
### Librairies:
|
||||||
|
- discord.py
|
||||||
|
- dotenv
|
||||||
|
|
||||||
|
Le fichier `.env` doit être renseigné avec
|
||||||
|
```
|
||||||
|
# Le token du bot discord
|
||||||
|
TOKEN=
|
||||||
|
# L'ID du serveur
|
||||||
|
GUILD_ID=
|
||||||
|
```
|
||||||
|
## EDT Generator
|
||||||
|
Voici la description du module de générateur d'EDT au format `.ics`, importable dans tous les calendriers numériques, depuis l'EDT de la classe et le colloscope
|
||||||
|
|
||||||
|
### Librairies supplémentaires nécessaires:
|
||||||
|
- icalendar
|
||||||
|
- pandas
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Traitement des données au prélable
|
||||||
|
A l'aide d'un site tel que [I love PDF](https://www.ilovepdf.com/fr/pdf_en_excel), il faut transormer le colloscope en format tableur. Il faut ensuite générer le fichier `eleves.csv`, qui contient la liste des élèves, leur groupe et leur demi-classe, puis `colles.csv`, qui contient les colles ainsi que les groupes pour la SI uniquement. (Le reste des infos sur les demi-groupes n'est pas nécessaire).
|
||||||
|
|
||||||
|
Il faut ensuite générer les fichiers communs d'EDT, avec plus ou moins d'automatisation (en vrai c'est pas si long, 1h pour les 4 fichiers quand on sait faire).
|
||||||
|
|
||||||
|
### Fonctionnement
|
||||||
|
Le bot génère ensuie l'edt en récupérant les colles du groupe, les cours de SI, et les cours de langue correspondant à l'entrée utilisateur
|
||||||
|
|
||||||
|
### TOUDOUX
|
||||||
|
- Créer un ou deux scripts d'automatisation de création d'emploi du temps, pour qu'il n'y ait besoin que de créer un seul EDT de groupe, et que le 2nd soit créé en décalant d'une semaine, et enfin pour que les vacances soient gérées uniquement en mettant leur date
|
||||||
|
- Moins prioritaire / pas forcément utile: le fichier `.ics` est mis en ligne sur `mp2i-vms.fr`, pour qu'il soit syncronisé avec le client, et qu'il n'y ait besoin de modifier que sur un seul EDT pour que les changements se propagent.
|
Binary file not shown.
|
@ -0,0 +1,227 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
METHOD:PUBLISH
|
||||||
|
X-WR-CALNAME:EDT A
|
||||||
|
X-WR-TIMEZONE:Europe/Paris
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Europe/Paris
|
||||||
|
X-LIC-LOCATION:Europe/Paris
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+0100
|
||||||
|
TZOFFSETTO:+0200
|
||||||
|
TZNAME:CEST
|
||||||
|
DTSTART:19700329T020000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||||
|
END:DAYLIGHT
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+0200
|
||||||
|
TZOFFSETTO:+0100
|
||||||
|
TZNAME:CET
|
||||||
|
DTSTART:19701025T030000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||||
|
END:STANDARD
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231016T093000
|
||||||
|
DTEND;TZID=Europe/Paris:20231016T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T093000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T093000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:6tksnmkvqa2ofqmiu8ava7tqp4@google.com
|
||||||
|
CREATED:20231208T211618Z
|
||||||
|
DESCRIPTION:C154 M.Halfon
|
||||||
|
LAST-MODIFIED:20231208T211618Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231016T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231016T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T110000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:6p43b7rpcaan0hq4d9mvgdh887@google.com
|
||||||
|
CREATED:20231208T211654Z
|
||||||
|
DESCRIPTION:C154 M.Halfon
|
||||||
|
LAST-MODIFIED:20231208T211654Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231016T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231016T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T120000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T120000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:2iu71o08u87hvdcds6oemknqko@google.com
|
||||||
|
CREATED:20231208T211730Z
|
||||||
|
DESCRIPTION:R105 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T211730Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231016T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231016T093000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T080000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:05c3l6f99s6qmni5dkhrh76i93@google.com
|
||||||
|
CREATED:20231208T211517Z
|
||||||
|
DESCRIPTION:R417 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T211748Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231019T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231019T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231102T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T110000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:43l8ed3fpplah0ru587eb86uch@google.com
|
||||||
|
CREATED:20231208T211836Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T211836Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231019T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231019T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231102T120000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T120000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:7d3rj0tbhr03d9lla61138a217@google.com
|
||||||
|
CREATED:20231208T211903Z
|
||||||
|
DESCRIPTION:M101 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T211924Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231020T140000
|
||||||
|
DTEND;TZID=Europe/Paris:20231020T150000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;INTERVAL=2;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20231103T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231229T140000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:0iepm152dmqecobb7r8b57o6ml@google.com
|
||||||
|
CREATED:20231208T212004Z
|
||||||
|
DESCRIPTION:M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T212004Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T093000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T093000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:2kfttah24ae4pr27kofkf237n4@google.com
|
||||||
|
CREATED:20231208T212242Z
|
||||||
|
DESCRIPTION:R417 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T212242Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T110000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:0t6le1spjav4e8tcqtn9gt99ll@google.com
|
||||||
|
CREATED:20231208T212319Z
|
||||||
|
DESCRIPTION:R105 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T212319Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T120000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:244mt1li8fvcj5mduvs2m6cmfo@google.com
|
||||||
|
CREATED:20231208T212348Z
|
||||||
|
LAST-MODIFIED:20231208T212348Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231110T150000
|
||||||
|
DTEND;TZID=Europe/Paris:20231110T160000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;INTERVAL=2;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20240105T150000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:1kvsrj6sgnkjpgf3l4fp4u7b4m@google.com
|
||||||
|
CREATED:20231208T212453Z
|
||||||
|
DESCRIPTION:C154 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T212515Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231109T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231109T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T110000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:46lkfuetibmt64ah8042mf0ern@google.com
|
||||||
|
CREATED:20231208T212409Z
|
||||||
|
DESCRIPTION:M101 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T212558Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231109T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231109T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T120000
|
||||||
|
DTSTAMP:20231208T214231Z
|
||||||
|
UID:4oue8sl05i1n4tu5tt1g8glagu@google.com
|
||||||
|
CREATED:20231208T212439Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T212609Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
|
@ -0,0 +1,220 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
METHOD:PUBLISH
|
||||||
|
X-WR-CALNAME:EDT B
|
||||||
|
X-WR-TIMEZONE:Europe/Paris
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Europe/Paris
|
||||||
|
X-LIC-LOCATION:Europe/Paris
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+0100
|
||||||
|
TZOFFSETTO:+0200
|
||||||
|
TZNAME:CEST
|
||||||
|
DTSTART:19700329T020000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||||
|
END:DAYLIGHT
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+0200
|
||||||
|
TZOFFSETTO:+0100
|
||||||
|
TZNAME:CET
|
||||||
|
DTSTART:19701025T030000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||||
|
END:STANDARD
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T093000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T093000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:38m2tjmnuvcp6as7ubihkva1qp@google.com
|
||||||
|
CREATED:20231208T212830Z
|
||||||
|
DESCRIPTION:R417 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T212830Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T110000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:57s3rt8dn36smk6fjevjt8mc3j@google.com
|
||||||
|
CREATED:20231208T212914Z
|
||||||
|
DESCRIPTION:R105 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T212914Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231109T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231109T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T110000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:3nsq6jor4sslmfr9sc8lvd04tl@google.com
|
||||||
|
CREATED:20231208T213100Z
|
||||||
|
DESCRIPTION:M101 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213100Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231109T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231109T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T120000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:4f8bam5qhqq2c2ai8dnfq1m8uk@google.com
|
||||||
|
CREATED:20231208T213240Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T213240Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231110T150000
|
||||||
|
DTEND;TZID=Europe/Paris:20231110T160000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;INTERVAL=2;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20240105T150000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:2c2s2lqvt1u52tfumt8hokq16o@google.com
|
||||||
|
CREATED:20231208T213318Z
|
||||||
|
DESCRIPTION:C154 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213338Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231113T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231113T093000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T080000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:6evs2c8ndhdriv3t4nml340nfl@google.com
|
||||||
|
CREATED:20231208T213435Z
|
||||||
|
DESCRIPTION:R417 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T213435Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231113T093000
|
||||||
|
DTEND;TZID=Europe/Paris:20231113T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T093000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:1m1sdklqirohe5bnj9r8a6f5bt@google.com
|
||||||
|
CREATED:20231208T213508Z
|
||||||
|
DESCRIPTION:C154 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213508Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TP Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231113T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231113T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T110000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:4raatd1u2pgn9kq846ocrttgav@google.com
|
||||||
|
CREATED:20231208T213530Z
|
||||||
|
LAST-MODIFIED:20231208T213530Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231113T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231113T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T120000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:27s33min11sj6bubdgqgbru8s2@google.com
|
||||||
|
CREATED:20231208T213658Z
|
||||||
|
DESCRIPTION:R105 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T213658Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231116T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231116T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T110000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:6g9cp51p3nph1cm61b73gv7cco@google.com
|
||||||
|
CREATED:20231208T213741Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T213741Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231116T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231116T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;INTERVAL=2;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T120000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:66bjc3nkr39uejqv558jepfek6@google.com
|
||||||
|
CREATED:20231208T213801Z
|
||||||
|
DESCRIPTION:M101 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213811Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231117T140000
|
||||||
|
DTEND;TZID=Europe/Paris:20231117T150000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;INTERVAL=2;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20231229T140000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:3dt3pt2s2e3vipg6gucgrgqakp@google.com
|
||||||
|
CREATED:20231208T213840Z
|
||||||
|
DESCRIPTION:C154 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213840Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T120000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;INTERVAL=2;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T120000
|
||||||
|
DTSTAMP:20231208T214107Z
|
||||||
|
UID:79poqj528ega8337l2ejk7ri95@google.com
|
||||||
|
CREATED:20231208T212938Z
|
||||||
|
DESCRIPTION:C154 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T213941Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
|
@ -0,0 +1,269 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
METHOD:PUBLISH
|
||||||
|
X-WR-CALNAME:EDT Base
|
||||||
|
X-WR-TIMEZONE:Europe/Paris
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Europe/Paris
|
||||||
|
X-LIC-LOCATION:Europe/Paris
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+0100
|
||||||
|
TZOFFSETTO:+0200
|
||||||
|
TZNAME:CEST
|
||||||
|
DTSTART:19700329T020000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||||
|
END:DAYLIGHT
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+0200
|
||||||
|
TZOFFSETTO:+0100
|
||||||
|
TZNAME:CET
|
||||||
|
DTSTART:19701025T030000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||||
|
END:STANDARD
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231017T100000
|
||||||
|
DTEND;TZID=Europe/Paris:20231017T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240130T225959Z;BYDAY=TU
|
||||||
|
EXDATE;TZID=Europe/Paris:20231031T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231024T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231226T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240102T100000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:5i1f6g2kb66dc66ulie1sv4jn9@google.com
|
||||||
|
CREATED:20231014T145711Z
|
||||||
|
DESCRIPTION:R415 M. Dérumaux
|
||||||
|
LAST-MODIFIED:20231014T145711Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:SI
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231020T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231020T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20231103T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231027T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240105T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231229T110000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:3ob8c00mn8rggnqotq4js7ru5b@google.com
|
||||||
|
CREATED:20231014T151115Z
|
||||||
|
DESCRIPTION:M103 M. Halfon
|
||||||
|
LAST-MODIFIED:20231014T151133Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231009T160000
|
||||||
|
DTEND;TZID=Europe/Paris:20231009T180000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240129T225959Z;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231023T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231009T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T160000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:026n391dj8ktovl9dhuttnuc7q@google.com
|
||||||
|
CREATED:20231014T150838Z
|
||||||
|
DESCRIPTION:M103 Mullaert
|
||||||
|
LAST-MODIFIED:20231014T151900Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231009T140000
|
||||||
|
DTEND;TZID=Europe/Paris:20231009T160000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240204T225959Z;BYDAY=MO
|
||||||
|
EXDATE;TZID=Europe/Paris:20231023T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231030T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240101T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231225T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231009T140000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:Ical6c740b854d8d69f261a8c557224a868d
|
||||||
|
CREATED:20231013T150304Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T210018Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231106T160000
|
||||||
|
DTEND;TZID=Europe/Paris:20231106T180000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:026n391dj8ktovl9dhuttnuc7q@google.com
|
||||||
|
RECURRENCE-ID;TZID=Europe/Paris:20231106T160000
|
||||||
|
CREATED:20231014T150838Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T210036Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:TD Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231017T140000
|
||||||
|
DTEND;TZID=Europe/Paris:20231017T160000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240130T225959Z;BYDAY=TU
|
||||||
|
EXDATE;TZID=Europe/Paris:20231024T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231031T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231226T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240102T140000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:2trqqfv4cm64oj8aec9gdoi7ki@google.com
|
||||||
|
CREATED:20231014T145958Z
|
||||||
|
DESCRIPTION:R103 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T210051Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231019T140000
|
||||||
|
DTEND;TZID=Europe/Paris:20231019T160000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231026T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231102T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T140000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T140000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:5jdpl8ej5okmm8f1dk7i6c1fe5@google.com
|
||||||
|
CREATED:20231014T150034Z
|
||||||
|
DESCRIPTION:R011 Mme Chevalier
|
||||||
|
LAST-MODIFIED:20231208T210120Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Physique
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231019T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231019T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231026T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231102T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T080000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:10ferd1njg5al2jn636mplhu04@google.com
|
||||||
|
CREATED:20231014T150236Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T210138Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231020T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231020T110000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240202T225959Z;BYDAY=FR
|
||||||
|
EXDATE;TZID=Europe/Paris:20231027T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231103T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231229T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240105T080000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:0gmrlbiololsmt5f1fig96laj6@google.com
|
||||||
|
CREATED:20231014T150941Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T210150Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231020T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231020T110000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:0gmrlbiololsmt5f1fig96laj6@google.com
|
||||||
|
RECURRENCE-ID;TZID=Europe/Paris:20231020T080000
|
||||||
|
CREATED:20231014T150941Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T210150Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231110T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231110T130000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:3ob8c00mn8rggnqotq4js7ru5b@google.com
|
||||||
|
RECURRENCE-ID;TZID=Europe/Paris:20231110T110000
|
||||||
|
CREATED:20231014T151115Z
|
||||||
|
DESCRIPTION:M103 M. Halfon
|
||||||
|
LAST-MODIFIED:20231208T210202Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Info
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231019T160000
|
||||||
|
DTEND;TZID=Europe/Paris:20231019T180000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240201T225959Z;BYDAY=TH
|
||||||
|
EXDATE;TZID=Europe/Paris:20231026T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231102T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231228T160000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240104T160000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:1rmvg62fjpeg1bco9mue2eqto5@google.com
|
||||||
|
CREATED:20231014T150105Z
|
||||||
|
DESCRIPTION:Gymnase M. Torres-Lacaz
|
||||||
|
LAST-MODIFIED:20231208T210242Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:EPS
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231018T100000
|
||||||
|
DTEND;TZID=Europe/Paris:20231018T120000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240131T225959Z;BYDAY=WE
|
||||||
|
EXDATE;TZID=Europe/Paris:20231025T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231101T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231227T100000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240103T100000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:0g633d5rmneem0svc7tagl421g@google.com
|
||||||
|
CREATED:20231014T145824Z
|
||||||
|
DESCRIPTION:M103 Mme Chapiro
|
||||||
|
LAST-MODIFIED:20231208T210305Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Français
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231010T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231010T100000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240130T225959Z;BYDAY=TU
|
||||||
|
EXDATE;TZID=Europe/Paris:20231010T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231024T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231031T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231226T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240102T080000
|
||||||
|
DTSTAMP:20231208T214314Z
|
||||||
|
UID:0idrr2fvn053pera1598qsl6pi@google.com
|
||||||
|
CREATED:20231014T145346Z
|
||||||
|
DESCRIPTION:M103 Mme Mullaert
|
||||||
|
LAST-MODIFIED:20231208T214008Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Maths
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
|
@ -0,0 +1,122 @@
|
||||||
|
BEGIN:VCALENDAR
|
||||||
|
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||||
|
VERSION:2.0
|
||||||
|
CALSCALE:GREGORIAN
|
||||||
|
METHOD:PUBLISH
|
||||||
|
X-WR-CALNAME:EDT Langues
|
||||||
|
X-WR-TIMEZONE:Europe/Paris
|
||||||
|
BEGIN:VTIMEZONE
|
||||||
|
TZID:Europe/Paris
|
||||||
|
X-LIC-LOCATION:Europe/Paris
|
||||||
|
BEGIN:DAYLIGHT
|
||||||
|
TZOFFSETFROM:+0100
|
||||||
|
TZOFFSETTO:+0200
|
||||||
|
TZNAME:CEST
|
||||||
|
DTSTART:19700329T020000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||||
|
END:DAYLIGHT
|
||||||
|
BEGIN:STANDARD
|
||||||
|
TZOFFSETFROM:+0200
|
||||||
|
TZOFFSETTO:+0100
|
||||||
|
TZNAME:CET
|
||||||
|
DTSTART:19701025T030000
|
||||||
|
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||||
|
END:STANDARD
|
||||||
|
END:VTIMEZONE
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231017T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231017T130000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240130T225959Z;BYDAY=TU
|
||||||
|
EXDATE;TZID=Europe/Paris:20231024T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231031T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20231226T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240102T110000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:08ih4mv3sfe0so9bt3016kdou4@google.com
|
||||||
|
CREATED:20231018T160030Z
|
||||||
|
LAST-MODIFIED:20231208T214519Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Anglais LV1
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231107T110000
|
||||||
|
DTEND;TZID=Europe/Paris:20231107T123000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240130T225959Z;BYDAY=TU
|
||||||
|
EXDATE;TZID=Europe/Paris:20231226T110000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240102T110000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:6tdhe8vsvc6drfb3skq8gij9e0@google.com
|
||||||
|
CREATED:20231208T214507Z
|
||||||
|
DESCRIPTION:C180
|
||||||
|
LAST-MODIFIED:20231208T214531Z
|
||||||
|
SEQUENCE:1
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Anglais LV2
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231108T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231108T100000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240131T225959Z;BYDAY=WE
|
||||||
|
EXDATE;TZID=Europe/Paris:20231227T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240103T080000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:14rig76ee7hsp2hdlihe5svhff@google.com
|
||||||
|
CREATED:20231208T214610Z
|
||||||
|
DESCRIPTION:M103
|
||||||
|
LAST-MODIFIED:20231208T214610Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Espagnol LV1
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231108T083000
|
||||||
|
DTEND;TZID=Europe/Paris:20231108T100000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240131T225959Z;BYDAY=WE
|
||||||
|
EXDATE;TZID=Europe/Paris:20231227T083000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240103T083000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:5t3s6b0g2m0d64gcpn84gmc35e@google.com
|
||||||
|
CREATED:20231208T214648Z
|
||||||
|
DESCRIPTION:C452
|
||||||
|
LAST-MODIFIED:20231208T214656Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Espagnol LV2
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231108T080000
|
||||||
|
DTEND;TZID=Europe/Paris:20231108T100000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240131T225959Z;BYDAY=WE
|
||||||
|
EXDATE;TZID=Europe/Paris:20231227T080000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240103T080000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:6kqdomdqip5h9vt1v2n492vrlq@google.com
|
||||||
|
CREATED:20231208T214723Z
|
||||||
|
DESCRIPTION:M103
|
||||||
|
LAST-MODIFIED:20231208T214723Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Allemand LV1
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
BEGIN:VEVENT
|
||||||
|
DTSTART;TZID=Europe/Paris:20231108T083000
|
||||||
|
DTEND;TZID=Europe/Paris:20231108T100000
|
||||||
|
RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20240131T225959Z;BYDAY=WE
|
||||||
|
EXDATE;TZID=Europe/Paris:20231227T083000
|
||||||
|
EXDATE;TZID=Europe/Paris:20240103T083000
|
||||||
|
DTSTAMP:20231208T214916Z
|
||||||
|
UID:5g3s2dm0sfmup225aocuqpcdta@google.com
|
||||||
|
CREATED:20231208T214743Z
|
||||||
|
LAST-MODIFIED:20231208T214743Z
|
||||||
|
SEQUENCE:0
|
||||||
|
STATUS:CONFIRMED
|
||||||
|
SUMMARY:Allemand LV2
|
||||||
|
TRANSP:OPAQUE
|
||||||
|
END:VEVENT
|
||||||
|
END:VCALENDAR
|
|
@ -0,0 +1,74 @@
|
||||||
|
Semaine,,,,,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
|
||||||
|
,,,,,18/09/23,25/09/23,02/10/23,09/10/23,16/10/23,06/11/23,13/11/23,20/11/23,27/11/23,04/12/23,11/12/23,18/12/23,08/01/24,15/01/24,22/01/24,29/01/24
|
||||||
|
matière,jour,heure,colleur,salle,,,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,,,,,,,,,,,,
|
||||||
|
Allemand,jeudi,18h,Mme ADAM,C258,,,9,,9,,9,,9,,9,,9,,9,
|
||||||
|
Mathématiques,vendredi,15h,Mme MULLAERT,C181,1,2,3,4,5,6,7,8,9,10,11,12,1,14,15,8
|
||||||
|
Anglais,mercredi,14h,Mme. LE GOURIELLEC,C393,3,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
|
||||||
|
Mathématiques,vendredi,14h,M. BOUVEROT,M103,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,1
|
||||||
|
Physique,mardi,16h,Mme. CHEVALIER,R103,2,3,4,5,6,7,8,9,10,11,12,13,14,15,,1
|
||||||
|
Mathématiques,vendredi,17h,M. OUBAHA,C382,3,4,5,6,7,8,9,10,11,12,13,14,15,6,1,2
|
||||||
|
Anglais,mardi,16h,Mme. BELAGOUNE,C454,1,4,5,6,7,8,9,10,11,12,13,14,15,,1,2
|
||||||
|
pas de colle,,,,,4,5,6,7,8,9,10,11,12,13,14,15,5,1,2,3
|
||||||
|
Physique,mardi,17h,M. COLIN,C386,4,5,6,7,8,9,10,11,12,13,14,15,,1,2,3
|
||||||
|
Mathématiques,mercredi,15h,M. BOULLY,R004,5,6,7,8,9,10,11,12,13,14,15,7,13,2,3,4
|
||||||
|
Anglais,mardi,16h,M. HERBAUT,C392,5,6,7,8,9,10,11,12,13,14,15,,1,2,3,4
|
||||||
|
Mathématiques,mardi,18h,M. RAPIN,V152,6,7,8,9,10,11,12,13,14,15,3,1,2,3,4,5
|
||||||
|
Physique,mercredi,17h,M. POUPY,R012,6,7,8,9,10,11,12,13,14,15,,1,2,3,4,5
|
||||||
|
Mathématiques,mardi,17h,M. CARPINTERO,C383,7,8,9,10,11,12,13,14,15,2,1,2,3,4,5,6
|
||||||
|
Anglais,mercredi,16h,Mme. MANN,C380,7,8,9,10,11,12,13,14,7,,1,2,3,4,5,6
|
||||||
|
pas de colle,,,,,8,9,10,11,12,13,14,15,1,1,2,3,4,5,6,7
|
||||||
|
Physique,mardi,17h,Mme. CHEVALIER,R103,8,9,10,11,12,13,14,15,,1,2,3,4,5,6,7
|
||||||
|
,,,,,,,,,,,,,,,,,,,,
|
||||||
|
Anglais,mercredi,15h,Mme. LE GOURIELLEC,C393,9,10,11,12,13,14,15,,15,2,3,4,5,6,7,8
|
||||||
|
Mathématiques,vendredi,14h,Mme MULLAERT,C181,10,11,12,13,14,15,15,1,2,3,4,5,6,7,8,9
|
||||||
|
Physique,jeudi,18h,M. DE ROUX,C054,10,11,12,13,14,15,,1,2,3,4,5,6,7,8,9
|
||||||
|
Mathématiques,vendredi,18h,M. OUBAHA,C382,11,12,13,14,15,14,1,2,3,4,5,6,7,8,9,10
|
||||||
|
Anglais,mardi,17h,Mme. BELAGOUNE,C454,11,12,13,14,15,,1,2,3,4,5,6,7,8,9,10
|
||||||
|
pas de colle,,,,,12,13,14,15,13,1,2,3,4,5,6,7,8,9,10,11
|
||||||
|
Physique,mardi,16h,M. COLIN,C386,12,13,14,15,,1,2,3,4,5,6,4,8,9,10,11
|
||||||
|
Mathématiques,mercredi,14h,M. BOULLY,R004,13,14,15,12,1,2,3,4,5,6,7,8,9,10,11,12
|
||||||
|
Anglais,mardi,16h,Mme. FULCONIS,C393,13,14,15,,1,2,3,4,5,6,7,8,9,10,11,12
|
||||||
|
Mathématiques,jeudi,18h,M. RAPIN,C284,14,15,11,1,2,3,4,5,6,7,8,9,10,11,12,13
|
||||||
|
Physique,mardi,18h,Mme. CHEVALIER,R103,14,15,,1,2,3,4,5,6,7,8,9,10,11,12,13
|
||||||
|
Mathématiques,mardi,18h,M. CARPINTERO,C383,15,10,1,2,3,4,5,6,7,8,9,10,11,12,13,14
|
||||||
|
Anglais,mercredi,17h,Mme. MANN,C380,15,,1,2,3,4,5,6,1,8,9,10,11,12,13,14
|
||||||
|
pas de colle,,,,,,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
||||||
|
Physique,mercredi,18h,M. POUPY,R012,,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
|
||||||
|
EDT SI: cours de 16h,,,,,"4§ 7§ 8§
|
||||||
|
11§ 1§ 6§
|
||||||
|
9§ 10","5§ 8§ 9§
|
||||||
|
12§ 2§ 7§
|
||||||
|
10§ 11","6§ 9§ 10§
|
||||||
|
13§ 3§ 8§
|
||||||
|
11§ 12","7§ 10§
|
||||||
|
11§ 14§
|
||||||
|
4§ 9§ 12§
|
||||||
|
13","8§ 11§
|
||||||
|
12§ 15§
|
||||||
|
5§ 10§
|
||||||
|
13§ 14","9§ 12§
|
||||||
|
13§ 16§
|
||||||
|
6§ 11§
|
||||||
|
14§ 15","10§ 13§
|
||||||
|
14§ 1§ 7§
|
||||||
|
12§ 15§
|
||||||
|
16","11§ 14§
|
||||||
|
15§ 2§ 8§
|
||||||
|
13§ 16§ 1","12§ 15§
|
||||||
|
16§ 3§ 9§
|
||||||
|
14§ 1§ 2","13§ 16§
|
||||||
|
1§ 4§ 10§
|
||||||
|
15§ 2§ 3","14§ 1§ 2§
|
||||||
|
5§ 11§
|
||||||
|
16§ 3§ 4","15§ 2§ 3§
|
||||||
|
6§ 12§ 1§
|
||||||
|
4§ 5","16§ 3§ 4§
|
||||||
|
7§ 13§ 2§
|
||||||
|
5§ 6","1§ 4§ 5§
|
||||||
|
8§ 14§ 3§
|
||||||
|
6§ 7","2§ 5§ 6§
|
||||||
|
9§ 15§ 4§
|
||||||
|
7§ 8","3§ 6§ 7§
|
||||||
|
10§ 16§
|
||||||
|
5§ 8§ 9"
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
Nom,Prénon,Groupe de coll,TD
|
||||||
|
ABOUJAIB,Alexandre,1,A
|
||||||
|
AJAN,George,1,A
|
||||||
|
AKRAD,Lina,5,A
|
||||||
|
AUBERT,Nicolas,3,A
|
||||||
|
BADR,Roman,3,A
|
||||||
|
BAZIRE,Aurélien,3,A
|
||||||
|
BOIT,Arthur,5,A
|
||||||
|
BOUBKER,Youssef,5,A
|
||||||
|
BOUDJEMA,Dylan,1,A
|
||||||
|
CHIRIAC,Mihnea,7,A
|
||||||
|
COURIER,Marine,7,A
|
||||||
|
DAGUIN,Joseph,7,A
|
||||||
|
DAUGUEN,Gabriel,9,A
|
||||||
|
DE WEER,Matthias,9,A
|
||||||
|
DESBOUIS,Katell,11,A
|
||||||
|
DUPOUY,Jérémie,11,A
|
||||||
|
HARIRI--GAUTIER-PICARD,Grégoire,11,A
|
||||||
|
JURICEVIC,Matteo,13,A
|
||||||
|
KNANOUA,Anas,13,A
|
||||||
|
LESENNE,Pierrick,13,A
|
||||||
|
LIN,Hao,9,A
|
||||||
|
MASBATIN,Lucas,15,A
|
||||||
|
MAYURAN,Mithushan,15,A
|
||||||
|
MESSAHLI,Yassine,2,B
|
||||||
|
MOGUÉROU,Valentin,2,B
|
||||||
|
MOHELLEBI,Mathéo,2,B
|
||||||
|
MOUISSET--FERRARA,Maël,4,B
|
||||||
|
OTTAVI,Corentin,4,B
|
||||||
|
PONCE,Alexian,4,B
|
||||||
|
PUJOL,Raphaël,6,B
|
||||||
|
PUSTETTO,Mathis,6,B
|
||||||
|
RADICE,Roman,6,B
|
||||||
|
RAT,Evelyn,8,B
|
||||||
|
ROUSSE,Louis,8,B
|
||||||
|
ROUX,Gaetan,8,B
|
||||||
|
ROUYRE--CROS,Célian,10,B
|
||||||
|
SOURBE,François-G,10,B
|
||||||
|
STOURBE,Simon,10,B
|
||||||
|
THAI,Dany,12,B
|
||||||
|
THÉODORE,Jonathan,12,B
|
||||||
|
VANDROUX,Benoit,12,B
|
||||||
|
VEYSSIERE,Thibaud,14,B
|
||||||
|
VIÉ,Adrien,14,B
|
||||||
|
YE,Luan,14,B
|
||||||
|
ZARKA,Amélie,15,A
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
import pandas
|
||||||
|
import datetime
|
||||||
|
import icalendar
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pd_eleves = pandas.read_csv('eleves.csv')
|
||||||
|
np_eleves = pd_eleves.to_numpy()
|
||||||
|
|
||||||
|
pd_colles = pandas.read_csv('colles.csv')
|
||||||
|
np_colles = pd_colles.to_numpy()
|
||||||
|
|
||||||
|
|
||||||
|
jour_to_delta = {
|
||||||
|
"lundi": 0,
|
||||||
|
"mardi": 1,
|
||||||
|
"mercredi": 2,
|
||||||
|
"jeudi": 3,
|
||||||
|
"vendredi": 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
langues = ["Anglais", "Allemand", "Espagnol"]
|
||||||
|
|
||||||
|
option_langues = {
|
||||||
|
"EN": ["Anglais LV1"],
|
||||||
|
"EN-DE": ["Anglais LV1", "Allemand LV2"],
|
||||||
|
"EN-ES": ["Anglais LV1", "Espagnol LV2"],
|
||||||
|
"DE-EN": ["Allemand LV1", "Anglais LV2"],
|
||||||
|
"ES-EN": ["Espangol LV1", "Anglais LV2"]
|
||||||
|
}
|
||||||
|
|
||||||
|
def display(cal):
|
||||||
|
return cal.to_ical().decode("utf-8").replace('\r\n', '\n').strip()
|
||||||
|
|
||||||
|
def get_eleves():
|
||||||
|
"""
|
||||||
|
Renvoie la liste des eleves avec leur groupe associés à leur groupe, a utiliser dans la /cmd
|
||||||
|
"""
|
||||||
|
liste = {}
|
||||||
|
for row in np_eleves[1:]:
|
||||||
|
liste[f"{row[0]} {row[1]} - {row[2]}"] = row[2]
|
||||||
|
return liste
|
||||||
|
|
||||||
|
def debut_semaine_to_datetime(date_string: str) -> datetime.time:
|
||||||
|
"""
|
||||||
|
Transforme un string de debut de semaine au format dd/mm/yyyy en datetime.time
|
||||||
|
"""
|
||||||
|
return datetime.datetime.strptime(date_string, "%d/%m/%y")
|
||||||
|
|
||||||
|
|
||||||
|
def get_colles_groupe(np_colles, groupe, option_langue):
|
||||||
|
"""
|
||||||
|
Renvoie les colles pour un groupe sous la forme d'une liste d'évènements ICS
|
||||||
|
|
||||||
|
np_colles: l'array 2D numpy contenant le colloscope
|
||||||
|
groupe: str, le numéro du groupe
|
||||||
|
option_langue: str, les options de langue
|
||||||
|
"""
|
||||||
|
liste_colles = []
|
||||||
|
for row in np_colles[1:]:
|
||||||
|
|
||||||
|
if pandas.isnull(row[0]) or row[0] == "pas de colle":
|
||||||
|
# il n'y a pas de colle, on skip !
|
||||||
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
# Si la colle n'est pas la LV1 de l'élève, on skip
|
||||||
|
if row[0] == "Anglais" and not option_langue.startswith("EN"):
|
||||||
|
continue
|
||||||
|
elif row[0] == "Allemand" and not option_langue.startswith("DE"):
|
||||||
|
continue
|
||||||
|
elif row[0] == "Espagnol" and not option_langue.startswith("ES"):
|
||||||
|
continue
|
||||||
|
|
||||||
|
for index, colle in enumerate(row[5:]):
|
||||||
|
# les quatre premières cases ne sont pas
|
||||||
|
if pandas.isnull(colle) or colle != groupe:
|
||||||
|
continue
|
||||||
|
|
||||||
|
new_colle = icalendar.Event()
|
||||||
|
new_colle.add("summary", f"Colle {row[0]}")
|
||||||
|
new_colle.add("description", f"{row[3]} {row[4]}")
|
||||||
|
|
||||||
|
date = debut_semaine_to_datetime(np_colles[0][index+5])
|
||||||
|
date += datetime.timedelta(days=jour_to_delta[row[1]])
|
||||||
|
date += datetime.timedelta(hours=int(row[2][:-1]))
|
||||||
|
new_colle.add("dtstart", date)
|
||||||
|
|
||||||
|
date += datetime.timedelta(hours=1)
|
||||||
|
new_colle.add("dtend", date)
|
||||||
|
|
||||||
|
liste_colles.append(new_colle)
|
||||||
|
|
||||||
|
return liste_colles
|
||||||
|
|
||||||
|
def get_cours_SI(np_colles, groupe):
|
||||||
|
"""
|
||||||
|
Renvoie les colles pour un groupe sous la forme d'une liste d'évènements ICS, cad
|
||||||
|
icalendar.Event
|
||||||
|
|
||||||
|
np_colles: l'array 2D numpy contenant le colloscope
|
||||||
|
groupe: str, le numéro du groupe
|
||||||
|
"""
|
||||||
|
liste_cours = []
|
||||||
|
for index, cell in enumerate(np_colles[-1][5:]):
|
||||||
|
heure = 17
|
||||||
|
groupes = cell.split("§")
|
||||||
|
if groupe in groupes or f"\n{groupe}" in groupes:
|
||||||
|
heure = 16
|
||||||
|
|
||||||
|
cours_si = icalendar.Event()
|
||||||
|
cours_si.add("summary", "TD SI")
|
||||||
|
cours_si.add("description", "M. Derumeaux R415")
|
||||||
|
|
||||||
|
date = debut_semaine_to_datetime(np_colles[0][index+5])
|
||||||
|
date += datetime.timedelta(days=jour_to_delta["mardi"])
|
||||||
|
date += datetime.timedelta(hours=heure)
|
||||||
|
cours_si.add("dtstart", date)
|
||||||
|
|
||||||
|
date += datetime.timedelta(hours=1)
|
||||||
|
cours_si.add("dtend", date)
|
||||||
|
liste_cours.append(cours_si)
|
||||||
|
|
||||||
|
|
||||||
|
return liste_cours
|
||||||
|
|
||||||
|
def get_langues(langues):
|
||||||
|
"""
|
||||||
|
Renvoie la liste de cours de langue associés
|
||||||
|
list[icalendar.Event]
|
||||||
|
"""
|
||||||
|
liste_langues = []
|
||||||
|
p = Path(__file__).with_name('Calendars')
|
||||||
|
p = Path(p, f"EDT_Langues.ics")
|
||||||
|
with p.open('r') as f:
|
||||||
|
opened_cal = icalendar.Calendar.from_ical(f.read())
|
||||||
|
|
||||||
|
for event in opened_cal.walk("vevent"):
|
||||||
|
if event.get("summary") in option_langues[langues]:
|
||||||
|
liste_langues.append(event)
|
||||||
|
|
||||||
|
return liste_langues
|
||||||
|
|
||||||
|
|
||||||
|
def get_calendar(groupe, langues):
|
||||||
|
""""
|
||||||
|
Renvoie un calendrier (icalendar.Calendar) pour un groupe avec des langues donné
|
||||||
|
"""
|
||||||
|
moitie = None
|
||||||
|
for row in np_eleves[1:]:
|
||||||
|
if row[2] == int(groupe):
|
||||||
|
moitie = row[3]
|
||||||
|
break
|
||||||
|
|
||||||
|
new_cal = icalendar.Calendar()
|
||||||
|
p = Path(__file__).with_name('Calendars')
|
||||||
|
p = Path(p, f"EDT_{moitie}.ics")
|
||||||
|
|
||||||
|
with p.open('r') as f:
|
||||||
|
opened_cal = icalendar.Calendar.from_ical(f.read())
|
||||||
|
|
||||||
|
for event in opened_cal.walk("vevent"):
|
||||||
|
new_cal.add_component(event)
|
||||||
|
|
||||||
|
p = Path(__file__).with_name('Calendars')
|
||||||
|
p = Path(p, f"EDT_Base.ics")
|
||||||
|
|
||||||
|
with p.open('r') as f:
|
||||||
|
opened_cal = icalendar.Calendar.from_ical(f.read())
|
||||||
|
|
||||||
|
for event in opened_cal.walk("vevent"):
|
||||||
|
new_cal.add_component(event)
|
||||||
|
|
||||||
|
for event in get_langues(langues):
|
||||||
|
new_cal.add_component(event)
|
||||||
|
|
||||||
|
for event in get_cours_SI(np_colles, groupe):
|
||||||
|
new_cal.add_component(event)
|
||||||
|
|
||||||
|
for event in get_colles_groupe(np_colles, groupe, langues):
|
||||||
|
new_cal.add_component(event)
|
||||||
|
|
||||||
|
print(display(new_cal))
|
||||||
|
return new_cal.to_ical()
|
|
@ -0,0 +1,65 @@
|
||||||
|
from typing import Optional, List
|
||||||
|
from io import BytesIO, getenv
|
||||||
|
import discord
|
||||||
|
|
||||||
|
from discord import app_commands
|
||||||
|
from discord.app_commands import Choice
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
from create_calendar import get_calendar, get_eleves, display
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
|
||||||
|
MY_GUILD = discord.Object(id=getenv("GUILD_ID")) # replace with your guild id
|
||||||
|
|
||||||
|
|
||||||
|
class MyClient(discord.Client):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__(intents=None)
|
||||||
|
self.tree = app_commands.CommandTree(self)
|
||||||
|
|
||||||
|
async def setup_hook(self):
|
||||||
|
self.tree.copy_global_to(guild=MY_GUILD)
|
||||||
|
await self.tree.sync(guild=MY_GUILD)
|
||||||
|
|
||||||
|
|
||||||
|
client = MyClient()
|
||||||
|
|
||||||
|
eleves = get_eleves()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@client.event
|
||||||
|
async def on_ready():
|
||||||
|
print(f'Logged in as {client.user} (ID: {client.user.id})')
|
||||||
|
print('------')
|
||||||
|
|
||||||
|
|
||||||
|
@client.tree.command()
|
||||||
|
@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')")
|
||||||
|
async def edt(
|
||||||
|
interaction: discord.Interaction,
|
||||||
|
groupe: app_commands.Range[int, 1, 15],
|
||||||
|
langues: Choice[str]):
|
||||||
|
"""
|
||||||
|
Génère un emploi du temps prenant compte des colles, des langues et de la semaine.
|
||||||
|
"""
|
||||||
|
cal = get_calendar(str(groupe), langues.value)
|
||||||
|
calendrier = BytesIO(cal)
|
||||||
|
fichier = discord.File(fp=calendrier, filename=f"EDT-{groupe}-{langues.value}.ics")
|
||||||
|
|
||||||
|
await interaction.response.send_message(
|
||||||
|
f"Bonjour, votre emploi du temps pour le groupe {groupe} ({langues.name}) au format `.ics` a bien été généré ! \n\n Vous pouvez l'importer dans la plupart des messageries, je vous recommande cependant de créer un nouveau calendrier avec de l'importer, au cas où vous vouliez l'enlever. \n\n*Si vous avez des retours à faire (bug, erreur,..), contactez Joseph.*",
|
||||||
|
file=fichier)
|
||||||
|
|
||||||
|
|
||||||
|
client.run(getenv("TOKEN"))
|
Loading…
Reference in New Issue