tabook

「tabook : Extension for openBD」をリリースしました。

chrome.google.com

Google Chromeで新規タブを開くと、ランダムで書影が表示されます。機能はほとんどいらないかな、と思っていたのですが、こういう状況でもあるので、簡易bookmark機能をつけました。書誌情報と一緒に表示されている「bookmark」ボタンを押すと「あとで読む」 or 「あとで借りる」的に記録しておけます。画面下にある「bookmark list」をクリックするとbookmarkしておいた本を表示します、というものです。
リンクはカーリルへのリンクを用意しましたので、そちらで「あとで読む」的なbookmarkをしておいても良いと思います。ランダムで、openBDから引っ張ってきているのですが、元にしているのは株式会社カーリルから先日公開された「20万冊の選書リスト」を利用しています。

blog.calil.jp

実際のアプリ内では、opanBDのAPIを利用しています。

openbd.jp

細かい部分の挙動ですが、すでにbookmarkしている本も表示されることがあると思います。その辺の細かな制御はしていません。20万冊を対象に表示されるので、同じ本が表示されることはあまりないかもしれませんが。

ランダムで訪れる本との出会いを楽しんでいただければと思います。

以下、リリースまでの経緯とかあれこれです。

Google Chrome用の拡張機能Google Arts & Culture」、タブを開くと絵が表示されるあれ、が個人的にはお気に入りでずっと使っているのですが、openBDの書影を利用したこれ的なものを作ろう、と思ったのが3年前。別の表現としては、openBDもっと盛り上がっていいのに意外とみんな盛り上がらないな、ちょっと使って遊んでみようか、と思ったのが3年前。openBDを使った何か、という発想で考えたときに、選択肢としては「Google Arts & Culture」的なそれをまず思いつきました。

簡単な仕組みなのでほぼ作ってあとは公開、というところまで仕上げてあったのですが、最後の段階でイマイチだな、という感じがして、そのまま丸3年以上、放り投げていたものです。分類を事前に拡張機能のオプションで登録しておくと、図書分類で本をレコメンドしてくれる機能や、書影を使った神経衰弱機能とか、あれこれ盛り込んで方向性が見えなくなって、もう一度シンプルに書影を見せる機能に戻したところで止まっていました。

作り始めてすぐにぶつかった、何のデータセットを元にランダムに本を表示するのか?という課題があったのですが、当初はopenBDの太っ腹な設計思想に乗っかって、openBDのデータを全件ダウンロードして、とある方法で1件ずつ分類をつけて、それを自サーバになんちゃってAPIを立ててランダムで持ってくる、というような設計でした。ちょっともういい加減自サーバでのなんちゃってAPIを使った実装はやめたいけど、それにしてもタブを開いたときにトリガーとなりランダム表示するためのデータセットがないよねあるいはあっても容量が大きい(openBDからまるごと)、という状況が一つの課題でした。

それから3年経って株式会社カーリルさんの方で「20万冊の選書リスト」を公開(容量的には3MB)されたので、ああこれを使って3年前のあれ公開しちゃおう、と思い図書館閉館という状況も踏まえて「あとで読む」的な簡易機能だけつけてリリースとなりました。このアプリケーションとopenBDのAPIのみを使った実装となりました。肝心の「20万冊の選書リスト」についてはアプリケーション内にjsonファイルとしてそのまま持たせています。bookmark listはlocalで動かしているので同一PC内でのみ保存可能です。Googleアカウントに紐づけた保存はもし要望があれば手をつけたいと思います*1

*1:とりあえずシンプルに作りました