dev #1
34
README.md
34
README.md
|
@ -1,3 +1,35 @@
|
|||
# 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