自分用の本データベースをScrapboxで作る
だいたい自分用BL本データベースをScrapboxで作ると同じ内容。
やりたいこと
蔵書リストを作りたい
「気になる本リスト」も作りたい
蔵書と気になる本を串刺し検索したい
タグとかを好きにつけて分類したい
感想もメモしておきたい
字数は無制限がいい
感想への評価は要らないので、コメント欄やいいね機能はなくていい、そもそも非公開でいい
一覧画面に書影が表示されてほしい
タイトルだけでなく、表紙の雰囲気込みで記憶してることが多いので
e.g. 「あの青空のやつ」「黄色っぽいやつ」
完全に自分用にしたい
地雷や他人の感想は目に入れたくない
下準備
Scrapboxで新規プロジェクトを作る
Amazonのページから情報を取り込むブックマークレットを入れる
ありがとうございます🙏: /rashitamemo/ISBNや出版社の情報も取り込むブックマークレット
運用
気になる本を見つけたら or 本を買ったら、Amazonのページでブックマークレットを読み込む
Scrapboxにページができる
気が向いたタイミングで、#タグをつけておく
自分用なので、情報サイトなどにはないニッチなタグもつけられる
未購入の本には#気になるをつけておく
そのままウィッシュリストになる
「なんか買いたいなー」となったタイミングで#気になるで絞り込むといい感じ
買ったタイミングで#気になるタグだけ外せばOK
出版社・レーベルも[]をつけてタグにしておく
出版社単位のセールがきたときに便利
読んだあと、気が向いたタイミングで感想を書き込む
感想の文中にキーワードっぽい言葉があったら、[]で囲んでリンクにしておく
★★★★★〜★☆☆☆☆のタグをつけておくだけでも十分に神
すべてを気が向いたタイミングで適当にやってくだけで、自分用の完璧なデータベースができてゆく
code:script.js
javascript:(function(){
var p = document.getElementById("productTitle");//書籍のタイトルの処理
if (!p) var p = document.getElementById("ebooksProductTitle");
var title = window.prompt('Scrap "Amazon" to your scrapbox.', p.innerText.trim());
if (!title) return;
title = '『'+ title +'』';
var asin = document.getElementById('ASIN');//ASIN番号の処理
if(asin){
var a = 'ISBN:' + asin.value;
}else{
var asin = document.getElementsByName('ASIN.0')0,a = 'ASIN:' + asin.value;
}
var detail = document.getElementById('detailBullets_feature_div');//出版社と出版年月の処理
if (!detail) {
var subdoc = document.getElementById("product-description-iframe").contentWindow.document;
var detail = subdoc.getElementById("productDetailsTable");
}
var detailtext = detail.innerText;
var pubdata = detailtext.match(/(出版社 : .+)(\(.+\))/);//1出版社:シーアンドアール研究所,2(2018/7/27)
if (pubdata){
pubdata1 = pubdata1.replace(/:/,':[');//出版社名をリンクにしないならこの2行は削除する
pubdata1 = (pubdata1.match(/;/)?pubdata1.replace(/;/,'];'):pubdata1 + ']');
//pubdata2 = pubdata2 + ' ';//リンクなし
pubdata2 = pubdata2.replace(/\((\d+)\//, '($1/') + ' ';//年をリンクに
//pubdata2 = pubdata2.replace(/\((\d+\/\d+)\//, '($1/') + ' ';年月をリンクに
}else{
var pubdata = '','','';
}
var isbookDesc_iframe = document.getElementById("bookDesc_iframe") != null
if (isbookDesc_iframe){
var decsdoc = document.getElementById("bookDesc_iframe").contentWindow.document;//内容紹介の処理
var d = decsdoc.getElementById("iframeContent");
if (d){//内容紹介が存在しているなら
var d1 = d.innerText.replace(/\n/g,'\n>');
}else{
var d1 = "";//内容紹介が空っぽの場合
}
}else{
var d1 = "";//内容紹介が空っぽの場合
}
var image=document.getElementById("imgBlkFront");//書影の処理
if (!image) var image = document.getElementById("ebooksImgBlkFront");
var imageurl = image.getAttribute("src");
var pub = [];//著者情報の処理
var c = document.getElementsByClassName('author');
for (g = 0; g < c.length ;g++){
var at = cg.innerText.replace(/\r?\n/g, '').replace(/,/,'');
var pu = at.match(/\(.+\)/);
var ct = at.replace(/\(.+\)/,'').replace(/ /g,'');
pub.push(pu + ' + ct + '');
}
var lines=''+imageurl+' '+window.location.href+'\n\n#\n\n' + pub.join(' ') + '\n' + pubdata1 + '\n\u767a\u58f2\u65e5: ' + pubdata2 + '\n' + a + '\n\u5099\u8003: \n\n> ' + d1 + '\n\n\u6c17\u306b\u306a\u3063\u305f\u65e5: \n\u8cb7\u3063\u305f\u65e5: \n\n\u611f\u60f3:\n';//ページへの書き込み内容。ここで順番を変えればページ内容も変わります。
var body = encodeURIComponent(lines);
window.open('https://scrapbox.io/mylibrary/'+encodeURIComponent(title.trim())+'?body='+body)
})();