0

私は、Google カレンダー (または他の iCal ベースのサービス) にプラグインしてイベント リマインダーを表示する小さなデスクトップ アプリケーションを作成しています。iCal ファイルが頻繁に自動的に再ダウンロードされます。ファイルのチェックサムが変更された場合は、現在の予定のキャッシュを破棄し、カレンダーを再解析します。

問題は、これは Google カレンダー ファイルでは機能しないということです。さらに調べてみると、特定のカレンダーに関連付けられた iCal ファイルを再ダウンロードするたびに、すべてのイベントのDTSTAMP: プロパティが変更されていることがわかりました。したがって、標準のチェックサムはここに行く方法ではないかもしれません。私が考えている主な解決策は2つあります。

  • 元のファイルに基づいて、DTSTAMP:行が破棄されたチェックサムを計算します。(汚れた)
  • カレンダーのどのセクションが新しいか、破棄されたか、変更されたかなどを検出する完全なカレンダー差分アルゴリズムの実装(高価)

iCal 形式に、まだ発見していない癖があるかどうかはわかりません。そのため、方法 1 で問題が解決するかどうかはわかりません。限られたテストでは、そうであることが示されているようです。一方、方法 2 は、CPU パワーの点で不必要にコストがかかるように見えます。

何を提案しますか?

4

1 に答える 1

1

Google カレンダーが rfc5545 に 100% 準拠しているかどうかは不明ですが、「一連のリビジョン内のカレンダー コンポーネントのリビジョン シーケンス番号を定義する」シーケンス番号が必要です。

于 2012-03-08T15:54:57.170 に答える