Stack Stock Booksをやめて、Booklogに移行しました(移行スクリプト付き)
最近のStack Stock Booksの落ちっぷりに業を煮やして、Booklogに移行しました。
大手だし大丈夫だろうという、根拠のない移行先選びでした。
taka2222の本棚(taka2222) - ブクログ
他の蔵書管理サービスだと、
- liblar-本を友達と共有、すばらしい本に出会うためのサービス
- 読書メーター - あなたの読書量をグラフで管理
- メディアマーカー (なんとなく自分の好みに合わなかった)
- 本棚.org (昔使ってたけど、重くてやめた)
なんかがありますね。自分の好みで選んだら良いと思います。
で、あるサービスから他のサービスに移る際に必要なのがデータ移行です。
幸い、Stack Stock BooksではCSVエクスポート機能が提供されていましたし、BooklogではCSVインポート機能が提供されていたので、移行は容易でした。
僕は面倒だったのでExcelでやったのですが、他の人もできるようにスクリプト化しました。Windowsでのみ使用可能です。
利用手順を以下に示します。
1. Stack Stock Booksのデータをエクスポートする
Stack Stock Booksの場合、マイページ→ダウンロードと辿ると、stocks.csvとして、全ての蔵書データをCSV形式でダウンロードできます。
ファイルはデスクトップに保存します。
2. 以下のスクリプトをssb_to_bklg.jsとして、デスクトップに保存する
項目の並びと、項目値の違いを吸収するためのスクリプトです。
残念ながら、stocks.csvには最終更新日しか持っていないので、それを初回登録日とし、読了日は空としています。
var fs = new ActiveXObject("Scripting.FileSystemObject"); var tsin = fs.OpenTextFile("stocks.csv"); var tsout = fs.CreateTextFile("booklogimport.csv"); // 1行目はヘッダのため読み飛ばし tsin.ReadLine(); while(!tsin.AtEndOfStream) { var rowData = tsin.ReadLine().split(","); var isbn10 = removeDoubleQuote(rowData[0]); var isbn13 = removeDoubleQuote(rowData[1]); var status = convertStatus(removeDoubleQuote(rowData[rowData.length-2])); var updateDate = removeDoubleQuote(rowData[rowData.length-1]); tsout.WriteLine(["1", isbn10, isbn13, "-", "", status, "", "", "", updateDate, " ", ""].join(",")); } tsout.Close(); tsin.Close(); function removeDoubleQuote(str) { return str.substring(1, str.length - 1); } function convertStatus(str) { if(str === "もう読み終えた") { return "読み終わった"; } else if(str === "いま読んでいる") { return "いま読んでる"; } else if(str === "まだ読んでいない") { return "積読"; } else if(str === "いつか欲しい") { return "読みたい"; } }
4. Booklogにデータをインポートする
本の登録・編集→ファイルでまとめて登録→ファイルを選択ボタンを押下して、3.の手順で作成したbooklogimport.csvを指定し、ブクログ形式を選んで、インポートボタンをクリックします。
しばらく待つと完了するはず。
私の場合は756件でしたが、1分もかからずに終わりました。
というわけで
これでしばらく運用してみようと思います。