0

我正在编写一个插入 Google 日历(或其他 iCal 支持的服务)并显示事件提醒的小型桌面应用程序。它会每隔一段时间自动重新下载 iCal 文件。如果文件校验和已更改,我会丢弃当前的约会缓存并重新解析日历。

问题是,这不适用于 Google 日历文件。经过进一步检查,我注意到每次我重新下载与某个日历关联的 iCal 文件时,所有事件的DTSTAMP: 属性都会发生变化。所以标准校验和可能不是这里的方法。我正在考虑两种主要的解决方案。

  • 根据原始文件计算校验和,并DTSTAMP:丢弃行。(肮脏的)
  • 实现一个完整的日历差异算法,检测日历的哪些部分是新的,哪些已被丢弃,哪些已更改等(昂贵)

我不知道iCal格式是否还有其他我还没有发现的怪癖,所以我不知道方法1是否能解决我的问题。有限的测试似乎表明确实如此。另一方面,就 CPU 功率而言,方法 2 似乎不必要地昂贵。

你有什么建议?

4

1 回答 1

1

不确定谷歌日历是否遵循 rfc5545 的 100%,但应该有一个序列号“定义一系列修订中日历组件的修订序列号”。

于 2012-03-08T15:54:57.170 回答