ブクログの本棚を、amakanにインポートしてみた
今までは、 ・本棚としてはブクログ http://booklog.jp/ ・新刊情報は新刊.net http://sinkan.net/ をGoogleCalendarにエクスポート してました。
ただ、 新しいシリーズを買ってブクログに登録しても、新刊.netにも登録しないといけない ってのがめんどうでした。
そこで、ふと思い立って、前から気になってたamakanにデータを移してみました。
chrome拡張が無い
amakankanというもので、ブクログから移行できるのは知ってました。
amakanのChrome拡張がブクログの本棚からの一括登録に対応しました - amakan
ただ、chrome extentionのリンクを踏んで見ると、404になってました。
なので、GitHubのコードをcloneしてきて、手元でビルドしました。
ghq get https://github.com/amakan/amakankan.git cd /path/to/amakan/amakankan yarn install npm run pack
chrome://extensions/ に移動して、「パッケージ化されていない拡張機能を読み込む...」で、 dist/chrome
を指定しました。
ブクログからインポートしてみた
http://booklog.jp/users/noboru114 に遷移して、chrome extentionのボタンを押しました。 「登録中」的なアラートは出るけど、何も起こらず。
不思議に思ってコードを見ると、 https://github.com/amakan/amakankan/blob/master/src/chrome/js/content-script-booklog.js#L42 で、「読み終わった」と書いてありました。
個人的に、設定がめんどいので、全て「未設定」にしていたので、データが取得できなかったっぽいです。なので、
- const url = `${pathNamePart}?category_id=all&status=3&sort=sort_asc&rank=all&tag=&keyword=&reviewed="ed=&json=true&page=${i + 1}`; + const url = `${pathNamePart}?category_id=all&status=all&sort=sort_asc&rank=all&tag=&keyword=&reviewed="ed=&json=true&page=${i + 1}`;
のように、statusをall
に変更して、試してみると、無事登録が開始されました。
コード変更後は、npm run pack
して、拡張機能のページで「リロード(⌘R)」を実行しました。
件数がたりない
ブクログは682アイテムあるのですが、amakanに登録されたのは666アイテムでした。 20アイテムが登録できなかったようです。差分はめんどいので追ってないです。
日付が、全部「今日」になった
「読んだ数」がグラフ化されますが、全部同じ日付になっちゃいました。
コード確認すると、read_at
で取得してました。
https://github.com/amakan/amakankan/blob/master/src/chrome/js/content-script-booklog.js#L16
で、JSONを確認すると、create_on
で登録日が取れそうでした。
なので、下のようにつぶやいて、r7kamuraさんに捕捉され、補足いただきました。
@noboru_i 再実行すると日付は上書きされるようになってます👌
— ホームページビルダー (@r7kamura) 2016年12月26日
なので、
- const readAt = book.read_at; + const readAt = book.create_on;
にして、再度packしてリロード。そして実行すると、いい感じにグラフが作成されました。
こうやって可視化されるのは、微妙な気持ちになりますね。
というわけで
無事、インポートはできました。 新刊も、Google calendarでいい感じに取れてそうです。
ただこれ、どうやって追加登録するんでしょ。。。? https://amakan.net/tools にあるけど、いまいち、使い方がわからない。。 Androidのクライアントとか、作っちゃえばいいのかな。。。?