2014年02月11日

Radicale を試す

 CardDAV/CalDAV 同期の続き。Calendar and Contacts Server を引き続き試していたが、どうも挙動不審で、しかも PostgresQL とか使っているので何が起きているのかが極めてわかりにくい。ひとまずこちらは保留として、Radicale を試してみることにした。これは python 上で単体で動いているので、もう少し見通しがよさそう。

 公式サイトから Radicale-0.8.tar.gz を取ってきて、/Applications に展開。config に少し手を入れる。本当に最小限。

[server] ... hosts = 0.0.0.0:8008 ... [auth] type = htpasswd ... # public_users = public # comment out ... private_users = nagata ... htpasswd_filename = /Applications/Radicale-0.8/htpasswd ... htpasswd_encryption = sha1 ... [storage] type = filesystem ... filesystem_folder = /Applications/Radicale-0.8/collections

 ユーザーアカウントの作成。htpasswd を使う。

$ cd /Applications/Radicale-0.8 $ htpasswd -s -c htpasswd nagata # -s = sha1 New password:(タイプする) Re-type new password: (タイプする) Adding password for user nagata

 カレンダー、アドレスブックの作成。

$ mkdir -p collections/nagata/calendars $ cp somewhere/work.ics collections/nagata/calendars # work.ics については後述 $ cp somewhere/contacts.vcf collections/nagata # contacts.vcf についても後述

 work.ics は、iCal から書き出したファイルからエントリを1つだけ切り出して作っておく。contacts.vcf は、アドレスブックから書き出したファイルをそのまま使う。但し、そのままだと下のような行で問題が起きる。

X-ABUID:1EA171F7-1786-4D67-A45A-50AF87D097FA\:ABPerson

 X-ABUIDUID に変更し、最後の \:ABPerson を削除する。これで Radicale でも読める形式になる。mi の正規表現一括変換を使って処理した。

UID:1EA171F7-1786-4D67-A45A-50AF87D097FA

 ターミナルで $ cd /Applications/Radicale-0.8; python radicale.py --config ./config --debug とする。これを走らせたまま、iCal でアクセスする。「環境設定」→「アカウント」→左下の+マーク→アカウントの種類=CalDAV, ユーザ名=nagata, パスワード=xxxx, サーバアドレス=127.0.0.1:8008/nagata/calendars/ →証明書の確認が出るので受け入れる→同期開始。

 Nexus からのアクセスは、前とだいたい同じ。CalDav Sync の URL は http://XX.XX.XX.XX:8008/nagata/calendars/ でよい。CardDav の方は XX.XX.XX.XX:8008/nagata/contacts.vcf となる。拡張子がみっともないが、つけないとうまくいかなかった。CardDAV Sync Beta(有料版)にすると、よみがなもちゃんと同期してくれる。

 アドレスブック (5.0.3) はやっぱりダメです。これはもうしょうがないな。

Posted at 2014年02月11日 22:09:28
email.png