Nextcloudのcontactsにふりがな対応を行いました

ステイホームの夏休みで旅行にも行けないので、何かしら有意義なことをしようと思い立って、久しぶりにコードを書いてみました。

で、そのネタですが、以前 ownCloud を使っていた時に、contacts アプリにふりがな対応を行いましたが、Nextcloud の contacts アプリにはマージされないまま放置されていたことを思い出して、その対応を行うことにしました。2017年からopenになっていたので、3年越しです。

一応 pull request を送ってみたところ、マージしてもらえました!?

・・・マージはしてもらえたのですが、最低限使えるけど、UIがイマイチという状態なので、そうなった経緯というか苦労話を書いておこうと思います。

…続きを読む

ownCloud contactsにふりがな対応がマージされた

5月に実装して、本家プルリクエストを送っていたowncloud contactsのふりがな対応ですが、正式にマージされたようです!!

ちょっとうれしい。

まだversionがついての正式リリースはされていないようですが、次バージョンではマージされたものがリリースされるはずです。

日本語の翻訳がrevertされてしまったようなので、新たに翻訳を追加したいんですが、 transifexを使ってどうやってコントリビュートすれば良いのかよくわからず・・・。とりあえずアカウントは作ってみたものの、contacts がどのプロジェクトなのかがわからなくて翻訳できない・・・。

だれか翻訳してくれるかなぁ・・・。「Phonetic last name」が「せい」だなんて訳がなかったら誰もわからないよなぁ。

ownCloudのContactsをふりがなに対応してみた

久しぶりに投稿できそうなネタができたので数年ぶりに復活。

クラウド全盛期のこのご時世、Google カレンダーも Google コンタクトも便利なのはわかっているんですが、予定や電話帳、位置情報と言った個人情報を Google に提供するのがどうにも気持ちが悪くて、Android スマホを使っていながらも、これらのアプリは Google アカウントとは連携せずに使ってます。※1

そんな私のニーズにバッチリなのが ownCloud で、Dropbox、Google Calender (CalDAV)、Google Contacts (CardDAV) を自分のサーバで完全に置き換えることができます。素晴らしい!!

そんなこんなで重宝している ownCloud ですが、不満があったのが Contacts アプリです。一通り機能は揃っていて UI も今風で使いやすいのですが、致命的な欠点はふりがなに対応していないことでした。

内部の DB としてはふりがななどの情報も保持できているようで、 CardDAV を使ってAndroidなどのクライアントからふりがな付きのデータを同期することは問題なくできます。なので、Android 端末側で全て操作して、クラウドの保存先として使う分には問題ありません。

ただ、スマホの機種変更の際の操作ミスが重なり、ふりがなが消えたデータで上書き同期してしまいました。スマホの操作で全部ふりがなを書くのは気が遠くなるので Contacts アプリを改造することにしました。

で、対応したのがこれ。

Contactsアプリを上記のものに置き換えると、設定に「Enable phonetic」「Reverse name order」の2つのチェックボックスが追加されます。

「Enable phonetic」のチェックボックスを有効にすると「せい」「めい」の項目が表示されます。

「Reverse name order」のチェックボックスを有効にすると、「名」「姓」の順から「姓」「名」の順に変わります。

両方にチェックを入れた時の右側の詳細画面がこちら。

もう1つ、ソートの項目に「せい」と「めい」の2つが追加されます。これを選ぶとふりがなでソートができるようになります。

日本なら2つのチェックボックスを有効にして、ソートは「せい」を選ぶのが良いでしょう。「せい」を選んだ場合、同姓なら「めい」でソートされます。

これで日本語環境で最低限使えるようになったと思います。

ソースは github で公開しています。一応本家にもプルリを送ってみたのでうまくいけばマージしてもらえるかも?

※1 .. LINE のほうが Google に比べて信用度は下がるのに、こっちは使わないわけには行かないというジレンマ・・・  コミュニケーションツールがクローズドな仕様で一社寡占状態なのは不健全だと思うんだけどねぇ。

ownCloudの基本機能レビュー

ServersMan@VPS に ownCloud 6.0.1 をインストールして少し使ってみた感じをご紹介します。

機能の紹介や、できれば Dropbox や Google のサービスから乗り換えたいので、そういった観点でのレビューです。

ファイルサーバ

ファイルサーバownCloud の基本機能はファイルサーバです。 Dropbox と同じ機能ですね。 DropBox の有料プランだと 100GB $9.99/月 or $99/年 ですが、 ServersMan@VPS Entry だと 50GB で 490円/月 です。

・・・えーっとあまり値段変わんないっすね。てへ :p

DropBox 同様、ファイルのバージョン管理もされているので、更新しても前のバージョンに戻せます。消してもゴミ箱に入るので、たいていの操作ミスは取り戻せると思います。

グループを作ってグループ内の共有を行ったり、ユーザ毎に容量制限をかけられます。またユーザ間でファイルを共有したり、広く一般に公開することもできるようです。

ownCloud も Windows 用、Linux 用、Mac 用のデスクトップクライアントが用意されていて、DropBox と同じように自動で同期してくれます。

スマホ用では公式の iOS用アプリAndroid用アプリも用意されていて、こちらは自動同期ではなく、ファイルサーバの参照、ダウンロード、アップロードができます。このへんはスマホ用 DropBox アプリと同じですね。

基本的に DropBox にできることはほとんどできそうなので、DropBox から乗り換えてもいいかなと思ってます。

WebDAVサポート

140303-owncloud-webdav地味に便利なのは標準で WebDAV に対応していること。デスクトップクライアントをインストールしなくても共有ディレクトリのように使用することができます。

Windows でも Ubuntu でも OS 標準で WebDAV にアクセスできますし、HDD が少ないノートPC の場合はデスクトップクライントで同期せずに必要なときに WebDAV 経由でアクセスしたほうが便利なこともありますからね。

WebDAV URL は右上のユーザ名のところをクリックして、「Personal」「個人」を選択すると表示されます。

カレンダー

カレンダーGoogle カレンダーみたいな機能です。Google カレンダーとは異なり、外部のカレンダー(.ics) を表示させる機能はないようです。

日本語化されてはいるんですが、英語圏で作成されているためか 「月-日-年」 形式で表示されるなど、使う分には問題ありませんが、ちょいちょい気になるところがあります。

Ajax で作られていて使い勝手は上々です。カレンダー上をドラッグすると、その期間の予定が新規作成されるなど、直感的に使うことができました。

ユーザ間で予定の共有なども出来るようですが、企業向け Google カレンダーのような会議への招待や、出席/欠席等のリアクションはできないようです。ただ、そういった機能のプラグインがあるかもしれないですね。

また、このカレンダーは CalDAV に対応しているので、CalDAV に対応しているアプリから使うことができます。WebDAV 同様これは便利です。

Windows, Linux なら Thunderbird のカレンダープラグイン Lightning が便利です。

iOS 機器なら CalDAV を標準サポートしているのでアカウントを追加するだけで、標準のカレンダーアプリから使用できます。

Android 端末は無料アプリの「Caldav Sync Free Beta」というアプリを使うことでカレンダーアプリから使用可能になります。このへんは別途記事にしようと思います。

私はThunderbird の Lightning で Google カレンダーを使っていたので Google カレンダーからの乗り換えは問題無さそうです。

ドキュメント

140304-owncloud-documentsWYSWIG エディタを使って .odt ファイルを作成することができます。

Ubuntu では FireFox/Chrome 共に日本語が入力できませんでした。

現時点ではワープロの機能的にも最低限のものしか実装されていないようなので、今後に期待と言った感じです。

ピクチャ

140304-owncloud-picturesファイルストレージ内の画像ファイルをサムネイル形式で表示できます。

スマホで写真を撮って ownCloud にアップするような使い方をした時に便利かもしれません。

コンタクト

140304-owncloud-contacts電話帳です。まだ使ったことないのですが、メールアドレスや電話番号などの登録を行えます。

CardDAV に対応しているようなので、CardDAV を使ってスマホとうまく同期できると便利かもしれません。

Android 携帯を使っているのですが、私は Google に知り合いの電話番号などの情報を把握されるのが嫌だったので、電話帳は Google と同期していません。(Facebook アプリには勝手に抜かれて送信されてましたが・・・ -_-メ)

自分のサーバなら安心してアップできるので、バックアップも兼ねて同期しておくといいかもしれないですね。

試してみたらまた記事にしたいと思います。

 

ざっくり ownCloud のデフォルトの機能と使った感じを紹介しました。 紹介した機能以外にも ownCloud にはあとから「アプリ」と呼ばれるプラグインみたいなものをインストールすることができるようになっているので、他にも便利な機能を追加することができます。

気になるアプリもあるので試したら、また紹介したいと思います。

ServersMan@VPS に ownCloud をインストール

一番やりたかった ownCloudServersMan@VPSにインストールします。

このためにわざわざ VPS を借りたんですから。

ServersMan@VPS の OS は CentOS 6.5 32bit です。

php-5.4 のインストール

まず、php-5.4 系をインストールします。 ownCloud インストール後警告表示がされたためです。

CentOS 6.5 の公式パッケージは php-5.3 系なので EPEL リポジトリ、remi リポジトリを追加して、こちらから php-5.4 をインストールします。

EPEL, remi リポジトリの追加方法は以下のページにまとまっていたのでこちらを参照ください。

また、必須ではないですが SSL を有効にしておくことをおすすめします。

リポジトリの設定が完了したら、 remi を有効化して php 関連のパッケージをインストールします。

# yum --enablerepo=remi install php php-common php-cli php-mcrypt php-mysql php-pdo php-xml php-gd php-mbstring

2014/03/01 時点では 5.4.25-2.el6 のバージョンがインストールされました。

/etc/php.ini を編集してタイムゾーンを変更します。

date.timezone = "Asia/Tokyo"

変更したら apache を再起動します。

# service httpd restart

これで php が使えるようになったはずです。php が動作するか確認してみます。

/var/www/html/test.php というファイルを以下の内容で作成します。

<?php phpinfo(); ?>

作成後、 http://ホスト名/test.php にアクセスしてみてください。成功すれば以下のように php バージョンなどの情報が表示されるはずです。

phpinfo の表示例

ownCloudのインストール

いよいよ ownCloud のインストールです。

インストールの方法として tar や zip アーカイブをダウンロードしてサーバに展開する方法と、Web install という方法があるようです。

他のブログとかでは Web install の方法が多いですが、今回は /var/www/html 以下ではなく、/var/www/owncloud にインストールし alias 指定したいので tar でのインストールをします。

owncloud.orgInstall のページ の「Tar or Zip File」を押します。

140302-owncloud-download

そのなかの Download Unixのリンクをコピーします。2014/3/2時点では owncloud-6.0.1.tar.bz2 でした。

VPS の端末からコピーした URL を貼り付けて tar ファイルをダウンロードします。

# cd
# mkdir download
# cd download
# wget http://download.owncloud.org/community/owncloud-6.0.1.tar.bz2    ※URL貼り付け
# cd /var/www/
# tar xf ~/download/owncloud-6.0.1.tar.bz2
# chown -R apache.apache owncloud

これで /var/www/owncloud というディレクトリに展開されました。

続いて、 ownCloud 用の apache の設定ファイルを作成します。

以下のような内容で /etc/httpd/conf.d/owncloud.conf を作成します。

Alias /OWNCLOUD /var/www/owncloud

<Directory /var/www/owncloud>
    AllowOverride all
    Options -Indexes FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>

赤字の部分は URL になるので、個人的に使用するのであれば分かりにくいものに変更してください。

変更したら apache を再起動します。

# service httpd restart

そして https://ホスト名/OWNCLOUD にアクセスします。すると以下のような画面になります。

初回画面

ここで管理ユーザを作成します。ユーザ名とパスワードを入力して「Finish setup」を押すとインストール完了です。

ログイン後

ログインすると上記画面のようになります。

これでインストールは完了です。お疲れ様でした。

最後にちょっとだけ設定しておきます。

右上のユーザ名をクリックして表示される「Admin」で設定画面を開きます。 その中の「Security」の「Enforce HTTPS」を有効にします。

これで間違えて http で接続しても https にリダイレクトされるようになります。

インターフェースを日本語化したい場合は、ユーザ名をクリックして「Personal」でユーザ別の設定画面を開き、「Language」で「Japanese」を選択すれば日本語になります。