Cybozu2iCal 0.10公開
サイボウズオフィス6のカレンダーアイテムを取得して、iCalendar形式に変換するスクリプト、Cybozu2iCalを割と大幅に更新したので、そのご報告。
Cybozu2ICal.ja JP - Ogawa Code
大きな変更点は二つあって、ひとつはサイボウズオフィス6からカレンダーデータを取得・パーズする処理を分離して、WWW::CybozuOffice6::Calendarモジュールを作ったということです。
WWW::CybozuOffice6::Calendarモジュールは、下記のsubversionリポジトリから単体でも取得できます。
http://code.as-is.net/svn/public/WWW-CybozuOffice6-Calendar/trunk/
私がこのモジュールを作ったのは、iCalendarに変換するだけじゃなくてGData APIを叩くアプリにも使いたいと思ったからです。もちろん、Plaggerなどからサイボウズオフィス6を利用する場合にも使えるでしょう。Plagger事情に疎いので、もうCustomFeed Pluginとしてネリネリ作っちゃっててみんな使ってるよーということになっているかもしれませんが、「そんなこと知ったことか、俺コードの俺再利用性が重要なんだ」という方向で。
もうひとつの変更点は、ついにようやく反復カレンダーイベントに対応したということです。
iCalendarのRRULEは常人の理解を超えているのでずっと敬遠してきました(RRULE, RDATEをフルサポートするカレンダーソフトウェアってまじすごいよ)。が、冷静にサイボウズが対応している反復イベントのパターンを観察してみていたら、割と単純なRRULEだけで済むことが分かってきたので、対応してみました。おざなりなものですが。
テストが十分ではないのでおそらく不具合(特にRRULE)が結構あると思います。人柱希望の方はどうかお試しください。
関連:
Cybozu Office 6のカレンダーをGoogle Calendarで表示する - Ogawa::Memoranda
2006-11-19追記:
以下の点を修正した0.11を公開しました。
- 終了時刻が指定されない場合に開始時刻が10分遅れになるバグがあったので修正しました。
- 終了時刻が「24:00」と指定された場合に「23:59:59」に丸める処理を追加しました。これはそもそもCybozuの問題ですが。
- 開始・終了時刻が不正な範囲にある場合のエラー処理を追加しました。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/450
Comments (0)