Frage

Ich schreibe eine kleine Desktop-Anwendung, die sich in Google Kalender (oder andere iCal-basierte Dienste) einfügt und Terminerinnerungen anzeigt.Die iCal-Datei wird von Zeit zu Zeit automatisch erneut heruntergeladen.Wenn sich die Prüfsumme der Datei geändert hat, verwerfe ich den aktuellen Termincache und zerlege den Kalender neu.

Die Sache ist, dass dies mit Google Kalender-Dateien nicht funktioniert.Bei näherer Betrachtung fiel mir auf, dass DTSTAMP: Eigentum Bei allen Ereignissen änderte sich jedes Mal, wenn ich die mit einem bestimmten Kalender verknüpfte iCal-Datei erneut herunterlud.Daher ist eine Standardprüfsumme hier möglicherweise nicht der richtige Weg.Es gibt zwei Hauptlösungen, die ich in Betracht ziehe.

  • Berechnung der Prüfsumme basierend auf der Originaldatei mit dem DTSTAMP: Linien weggeworfen. (schmutzig)
  • Implementierung eines vollständigen Kalender-Diff-Algorithmus, der erkennt, welche Abschnitte des Kalenders neu sind, welche verworfen wurden, welche sich geändert haben usw. (teuer)

Ich weiß nicht, ob das iCal-Format noch andere Macken hat, die ich noch nicht entdeckt habe, daher weiß ich nicht, ob Methode 1 mein Problem lösen wird.Begrenzte Tests scheinen darauf hinzuweisen, dass dies der Fall ist.Andererseits scheint Methode 2 im Hinblick auf die CPU-Leistung unnötig kostspielig zu sein.

Was würdest du vorschlagen?

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob Google Kalender zu 100 % RFC5545 entspricht, aber es sollte eine Sequenznummer geben, die „die Revisionssequenznummer der Kalenderkomponente innerhalb einer Revisionssequenz definiert“.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top