yendo weblog


Palm データベースの iCalendar 形式への変換

Palm 上のデータを GNU/Linux 上で閲覧・編集するなら J-Pilot が定番である。 ただ、私の好みからすると使い勝手はちょっと……というところがある。 他の選択肢としては Evolution + gnome-pilot-conduits とか、 jppyKOrganizer といったものもあるが、 J-Pilot からの乗り換えを考えるとなると結構微妙だったりする。 まぁ同期や編集は J-Pilot で行なうとしても、閲覧ぐらいはもうちょっとさくっとしたい。 ということで、Palm の予定表と ToDo のデータの閲覧だけは、 GNOME デスクトップの GNOME 時計アプレット (カレンダー)でも行なえるようにしてみた。

GNOME 時計アプレットは、Evolution で扱う iCalendar 形式のデータを evolution-data-server 経由で読込み、表示を行なってもくれる。 DatebookDB.pdb と ToDoDB.pdb を iCalendar 形式に変換さえすれば、 時計アプレットで (もちろん iCalendar 形式のデータを扱う Evolution や iPod などでも) 予定と ToDo が表示できる。 J-Pilot には iCalendar 形式へのエクスポート機能があるが、 コマンドラインで直接実行したり同期時に自動変換することは 今のところ基本的にはできない。 また文字コードの扱いが一部おかしいようにも思える。

やむなく、あれこれ探してみると jpilot-python を利用した変換スクリプトなどもあった。 しかし細かな制御もしたかったので、車輪の再発明かなと思いつつも p5-Palm を利用した変換スクリプトを perl で書いた。 私が必要だと思う範囲での変換スクリプトなので、汎用的なものではない。 タイムゾーンをちゃんと扱えていないので、 Gnome 上でこのデータの時刻を正しく表示するには Evolution 上でタイムゾーンを設定する必要もある。 またアラームのデータも変換していない。

pdatebook2ical.pl DatebookDB.pdb → iCalendar
ptodo2ical.pl ToDoDB.pdb → iCalendar

HotSync 後にこれらのスクリプトを実行し evolution-data-sever に kill -HUP すれば、 GNOME 時計アプレット (と Evolution) で Palm の予定表と ToDo が閲覧できる。 実際のところは、udev の Hotplug 機構で呼び出されるスクリプトから、 上記の二つのスクリプトを呼び出すようにすればよい。 J-Pilot の pc3 ファイルに何とか書き込めば ToDo の同期もできそうだけど、まぁちょっと予定を確認するぐらいならこれで十分便利かな。

なお、変換したファイルを iPod の所定のフォルダにコピーすれば、 カレンダーおよび Todo を iPod 上でも閲覧できる。ただ第三世代 iPod では、 Location フィールドは無視され、Todo は文字コード順に並べられる。 最新の iPod ではどうか分からないが、変換時には注意が必要だろう。

追記: 日指定の月ごとの繰り返しが、 適切に変換されていなかった問題を修正した。(2006/11/8 02:26)

2006/02/25 (Sat) 01:46 | タグ: computer


同じカテゴリの最新記事

  1. Gtk2-Perl でバックグラウンド動作
  2. Twitim: Twitter 専用 XMPP クライアント
  3. X でのデュアルモニター (ATI 編)
  4. X でのデュアルモニター (NVIDEA 編)
  5. scanbuttond for EPSON GT-S600/GT-F650