我正在编写一个插入 Google 日历(或其他 iCal 支持的服务)并显示事件提醒的小型桌面应用程序。它会每隔一段时间自动重新下载 iCal 文件。如果文件校验和已更改,我会丢弃当前的约会缓存并重新解析日历。
问题是,这不适用于 Google 日历文件。经过进一步检查,我注意到每次我重新下载与某个日历关联的 iCal 文件时,所有事件的DTSTAMP:
属性都会发生变化。所以标准校验和可能不是这里的方法。我正在考虑两种主要的解决方案。
- 根据原始文件计算校验和,并
DTSTAMP:
丢弃行。(肮脏的) - 实现一个完整的日历差异算法,检测日历的哪些部分是新的,哪些已被丢弃,哪些已更改等(昂贵)
我不知道iCal格式是否还有其他我还没有发现的怪癖,所以我不知道方法1是否能解决我的问题。有限的测试似乎表明确实如此。另一方面,就 CPU 功率而言,方法 2 似乎不必要地昂贵。
你有什么建议?