【问题标题】:Detecting changes in iCal files检测 iCal 文件中的更改
【发布时间】:2012-03-08 12:47:30
【问题描述】:

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

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

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

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

你有什么建议?

【问题讨论】:

    标签: icalendar rfc2445 rfc5545


    【解决方案1】:

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

    【讨论】:

    • 如果我要实现差异算法(context),这将很有用。我可以验证 Google 的 ICS 文件是否有此字段,但我不知道他们是否始终如一地应用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多