LoginSignup
0
0

Kindle本リストをブクログへ登録するJavaScriptをブックマークレット化する

Last updated at Posted at 2023-06-12

本記事の内容

以下で作ったJavaScriptをブックマークレット化する手順です

以下の2つのサイトにお世話になります

手順

1. minify

JavaScript Minifier & Compressor | Toptal(R) で、JavaScriptのコードを短縮します

短縮結果

(getKindleAsinList=function(){let e=document.getElementById("row")||document.getElementById("cover"),t=e.getElementsByTagName("li");var a="";Array.prototype.forEach.call(t,e=>{let t=e.getElementsByTagName("div")[0].getAttribute("data-asin");t&&(console.log(t),a+=t+"\n")});var l=new Uint8Array([239,187,191]),n=new Blob([l,a],{type:"text/csv"}),d=(window.URL||window.webkitURL).createObjectURL(n),i=document.createElement("a");i.download="KindleAsinList.txt",i.href=d,document.body.appendChild(i),i.click(),document.body.removeChild(i)})();

2. ブックマークレット化

Bookmarklet スクリプト変換 で、ブックマークレット化して登録用HTMLを作成します

  1. スクリプトに 1 で minify したスクリプトをコピペ
  2. ブックマークレット名を適当に決め、ブックマークレットに変換 ボタンを押す
  3. 緑のボタンが表示されるので、ブックマークツールバーにドラッグ&ドロップ
  4. 以下、ブックマークレット登録ページの作成方法
  5. 右クリック --> 名前を付けて保存
  6. 新しくエディタを開いて、保存した html の内容をコピー
  7. 以下の部分を消す
    1. css/jsファイルのインポート部分
      head > link > bootstrap.min.css
      script > jquery.min.js
      script > bootstrap.min.js
    2. body内の不要部分
      body > form (ブックマークレット名などの) ※formを囲うdivごと不要
      script
  8. title, header の文字列 "Bookmarklet スクリプト変換" を、適当なものに書き換える
  9. (1)で一緒に保存された bootstrap.min.css をエディタで開いて、内容をコピペして、 で囲む
  10. 名前を付けて保存。文字コードはUTF-8、改行はLF

ブックマークレット登録用スクリプト

<!DOCTYPE html>
<!-- saved from url=(0052)https://ytyng.github.io/bookmarklet-script-compress/ -->
<html lang=""><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta name="keywords" content="">
  <meta name="description" content="">
  <title>Kindle to ブクログ ブックマークレット登録</title>
</head>

<body>

<header>
  <div class="container">
    <div class="row">
      <div class="col-sm-12">
        <h3>Kindle to ブクログ ブックマークレット登録</h3>
      </div>
    </div>
  </div>
</header>

<div class="container">
  <div class="row">
    <div class="col-sm-12">
      <div id="output-area"><hr><a class="btn btn-success" href="javascript:(getKindleAsinList%3Dfunction()%7Blet%20e%3Ddocument.getElementById(%22row%22)%7C%7Cdocument.getElementById(%22cover%22)%2Ct%3De.getElementsByTagName(%22li%22)%3Bvar%20a%3D%22%22%3BArray.prototype.forEach.call(t%2Ce%3D%3E%7Blet%20t%3De.getElementsByTagName(%22div%22)%5B0%5D.getAttribute(%22data-asin%22)%3Bt%26%26(console.log(t)%2Ca%2B%3Dt%2B%22%5Cn%22)%7D)%3Bvar%20l%3Dnew%20Uint8Array(%5B239%2C187%2C191%5D)%2Cn%3Dnew%20Blob(%5Bl%2Ca%5D%2C%7Btype%3A%22text%2Fcsv%22%7D)%2Cd%3D(window.URL%7C%7Cwindow.webkitURL).createObjectURL(n)%2Ci%3Ddocument.createElement(%22a%22)%3Bi.download%3D%22KindleAsinList.txt%22%2Ci.href%3Dd%2Cdocument.body.appendChild(i)%2Ci.click()%2Cdocument.body.removeChild(i)%7D)()%3Bvoid(0);">Kindle to ブクログ</a><small>&nbsp;&nbsp;これをブックマークツールバーにドラッグ&amp;ドロップ</small></div>
    </div>
  </div>
</div>

<style>
( : ここに bootstrap.min.css の内容をコピペします)
</style>

</body></html>

3. ブックマークレット登録

2 で作ったHTMLをブラウザで開き、指示に従ってブックマークレットを登録します
image.png

4. Kindleから本のリストを取得

  1. Kindle Cloud Reader を開きます
  2. リストを一番下までスクロールします
    下スクロールするとリストが動的に伸びるので、頑張って一番下までスクロールしましょう
  3. 登録したブックマークレットをクリックして、KindleAsinList.txt を保存します
  4. ブクログ の まとめて登録 から ISBN登録 を選び、KindleAsinList.txt の内容をコピペします

以上です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0