Picasaウェブアルバム用のLokkaプラグインを作ってみた

Picasaウェブアルバムに画像ファイルをアップロードし、Lokkaで記事を作成する際、img要素を挿入する「lokka-picasa_filesプラグインを作ってみました。以前、lokka-uploadersプラグインを作りましたが、今回は構造を変えたのでこのプラグイン単体で動きます*1

インストール方法

他のプラグインとインストール方法は変わりません。ただ、xml-simpleDalliをインストールするため、bundle installを実行してください。

$ cd APP_ROOT/public/plugin
$ git clone git://github.com/nkmrshn/lokka-picasa_files.git
$ cd ../../
$ bundle install --path vendor/bundle --without production test

設定

プラグインの設定画面(管理画面->[プラグイン]->[Picasa Files])で、Picasa Filesプラグインの管理画面が開きます。

メールアドレス・パスワード・アルバム名を設定してください。アルバム名が空白だった場合は「Lokka」というアルバム名になります。また、Picasaにそのアルバムが存在しなかった場合、画像ファイルをアップロードする際、自動的にアルバムが作成されます。


画像ファイルのアップロードなど

プラグインをインストールしLokkaを(再)起動すると、Lokka管理画面の左サイドメニューに、「Picasa ウェブアルバム」という項目が表示されます。

左サイドメニューの[一覧]をクリックすると、現在アルバムに登録されているファイルの一覧が表示されます。

画像ファイルのアップロードは、左サイドメニューの[登録]をクリックしてください。タイトルを指定しなかった場合は、ファイル名が使われます。アップロードできるのは、画像ファイルだけです。


記事に画像ファイルを挿入

記事にPicasaにアップロードしてある画像ファイルを挿入するには、リッチテキストエディタツールバーアイコンをクリックしてください。サムネイル画像が表示されますので、その中から挿入する画像をクリックしてください。


その他

lokka-uploadersプラグインと違い、このプラグインを使ってアップロードしなかった画像ファイルも記事に挿入したり、ファイル一覧で編集・削除することができます。

注意点

画像ファイルが大きい場合、アップロードに時間がかかりますので、画像ファイルを登録するページで、[編集]ボタンを二度押ししないようお気をつけください。(→ [編集]ボタンをクリックした後、アップロード中を示すページを表示するようにしようかなぁ...) インジケータアイコンを表示させることにしました。[追記:1月29日3時16分]

画像ファイルの一覧は、データベースのテーブルで管理しているわけではなく、逐一、Picasaにアクセスして現在アルバムに登録されている画像ファイルの情報を取得しています。したがって、大量に画像ファイルがアップロードされている場合、記事の作成時にツールバーの展開が遅くなったり、ファイル一覧ページの表示が遅くなったりします。(→ やっぱりデータベースに管理用のテーブルを用意し、[更新]ボタンを用意して、手動で更新できるようにしようかなぁ...)

そこでmemcached*2が有効な時は、アルバムの写真リストをキャッシュするようにしました。このキャッシュは、ファイル一覧ページが表示されると更新されます。したがって、このプラグインで画像ファイルをアップロードせず、ファイル一覧ページを表示することなくリッチテキストエディタツールバーアイコンをクリックした場合、それらの画像ファイルのサムネイルは表示されません。[追記:1月29日6時05分]

日本語のタイトル・ファイル名だと文字化けをおこすします。なぜなんでしょ...[追記:1月29日6時29分]

picasa.rb*3について

このプラグインは、Ruby wrapper for Picasa Web Album APIのlib/picasa.rbを修正して使っています。変更点は:

  • gcode:timestampがミリ秒ではなく秒になっていたバグを修正(アルバム作成日時などが正しく設定されなかった)
  • REXML::UndefinedNamespaceExceptionが発生するxml要素(gphoto, media, georss, gml, exif)を削除。
  • Photo.updateで画像ファイルも更新できるように修正。

*1:lokka-uploadersは、サブプラグインのlokka-db_uploaderなどが必要だった。

*2:1.4以降。memcached -hで確認できます。

*3:APP_ROOT/public/plugin/lokka-picasa_files/lib/picasa.rb