kernoeb / PlanningSup

Planning universitaire réalisé en Nuxt.js
https://planningsup.app
Apache License 2.0
30 stars 29 forks source link

Evènements décalés de 2h sur les .ICS #139

Closed Tonaxis closed 6 days ago

Tonaxis commented 6 days ago

Tout les évènements sont placé 2h plus tard sur les plannings au format .ICS (par exemple ceux de Polytech Nantes), alors que le fuseau horraire est bien indiqué dans le .ICS

X-WR-TIMEZONE:Europe/Paris BEGIN:VTIMEZONE TZID:Europe/Paris X-LIC-LOCATION:Europe/Paris

Le problème vient peut être du code dans le fichier celcat-fetch.mjs, cela doit se baser sur l'heure du serveur lors du parsing du .ICS en JSON

Actuellement il est possible de fixer le problème en utilisant l'option de timezone personnalisé, avec ce setup {20EF17B4-E542-4D3F-A2AA-9A1CD633BFB0}

kernoeb commented 6 days ago

Arf... je ne pense pas que ça vienne de là, ce script n'est lancé qu'une fois pour générer le fichier JSON statique, par contre intéressant le X-WR-TIMEZONE je ne savais même pas que ça existait

Peut-être qu'on peut patch le module ical-date-parser pour prendre en compte cette propriété

https://github.com/zxqx/ical-date-parser/blob/master/src/index.js

Tout comme ici on modifie dynamiquement une propriété de cal-parser

https://github.com/kernoeb/PlanningSup/blob/main/patches/cal-parser%2B1.0.2.patch

Est-ce que tu veux t'en occuper ou tu préfères que je regarde ça ?

Tonaxis commented 6 days ago

J'ai regardé et j'avoue que je ne vois pas vraiment comment faire, car, pour patch ical-date-parser, il faudrait accéder aux données du ICS dans iCalDateParser or on ne reçoit que la date

kernoeb commented 6 days ago

ouais, en soi pourquoi pas, ça se fait, on peut ajouter un second paramètre, je check ça ce soir

kernoeb commented 6 days ago

Alors en migrant sur https://github.com/kewisch/ical.js/, ça fonctionne, je vais faire une pull request

Tonaxis commented 6 days ago

Ok nice 👌 donc tu as changé de package ?

kernoeb commented 6 days ago

oui, en plus il a l'air plus maintenu et il est en fait en TypeScript donc cool, je suis en train de faire un script d'upgrade pour migrer les données