initial commit
This commit is contained in:
parent
48f8469cc2
commit
528ac486f4
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