Question

J'écris une petite application de bureau qui se connecte à Google Agenda (ou à d'autres services basés sur iCal) et affiche des rappels d'événements.Il télécharge automatiquement le fichier iCal de temps en temps.Si la somme de contrôle du fichier a changé, je supprime le cache des rendez-vous actuel et réanalyse le calendrier.

Le problème est que cela ne fonctionne pas avec les fichiers Google Agenda.Après une inspection plus approfondie, j'ai remarqué que le DTSTAMP: propriété sur tous les événements changeait à chaque fois que je téléchargeais à nouveau le fichier iCal associé à un certain calendrier.Une somme de contrôle standard n’est donc peut-être pas la solution ici.J'envisage deux solutions principales.

  • Calcul de la somme de contrôle en fonction du fichier d'origine avec le DTSTAMP: lignes jetées. (sale)
  • Implémentation d'un algorithme de comparaison de calendrier complet qui détecte quelles sections du calendrier sont nouvelles, celles qui ont été supprimées, celles qui ont changé, etc. (cher)

Je ne sais pas si le format iCal présente d'autres bizarreries que je n'ai pas encore découvertes, donc je ne sais pas si la méthode 1 résoudra mon problème.Des tests limités semblent indiquer que c’est le cas.En revanche, la méthode 2 semble inutilement coûteuse en termes de puissance CPU.

Que suggérerais-tu?

Était-ce utile?

La solution

Je ne sais pas si Google Calendar suit 100% de la RFC5545, mais il devrait y avoir un numéro de séquence qui "définit le numéro de séquence de révision du composant calendrier dans une séquence de révisions."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top