Обнаружение изменений в файлах iCal - PullRequest
0 голосов
/ 08 марта 2012

Я пишу небольшое настольное приложение, которое подключается к Календарю Google (или другим службам на платформе iCal) и отображает напоминания о событиях.Он автоматически перезагружает файл iCal очень часто.Если контрольная сумма файла изменилась, я выкидываю текущий кэш встреч и повторно анализирую календарь.

Дело в том, что это не работает с файлами Календаря Google.При дальнейшей проверке до меня дошло, что свойство DTSTAMP: для всех событий меняется каждый раз, когда я перезагружаю файл iCal, связанный с определенным календарем.Таким образом, стандартная контрольная сумма не может быть способом пойти сюда.Есть два основных решения, которые я рассматриваю.

  • Вычисление контрольной суммы на основе исходного файла с выброшенными строками DTSTAMP:. (грязный)
  • Реализация полного алгоритма сравнения календаря, который определяет, какие разделы календаря новые, какие были выброшены, какие изменились и т. Д. (дорого)

Я не знаю, есть ли в формате iCal какие-то другие причуды, которые я еще не обнаружил, поэтому я не знаю, решит ли метод 1 мою проблему.Ограниченные тесты, кажется, указывают, что это делает.С другой стороны, метод 2 кажется излишне дорогостоящим с точки зрения мощности процессора.

Что бы вы предложили?

1 Ответ

1 голос
/ 08 марта 2012

Не уверен, что календарь Google следует 100% rfc5545, но должен быть порядковый номер, который "определяет порядковый номер редакции компонента календаря в последовательности ревизий".

...