😸
NotionとKindleの連携する
はじめに
Kindle本のまとめをNotionへ集約していくことを考えていました。とはいえ、毎回Notionで本のリンクや画像を定義するのは非常に面倒です。本記事では、NotionとKindleを連携する方法をまとめています。
今回の記事では、完全な自動化を行う方法については書きません。本の一覧CSVを出力する方法について記述しています。
KindleをCSVにする方法。
からFockして一部改善したコードが下記になります。
// init
let xhr = new XMLHttpRequest()
let domain = 'https://read.amazon.co.jp/'
let items = []
let csvData = ""
// function
function getItemsList(paginationToken = null) {
let url = domain + 'kindle-library/search?query=&libraryType=BOOKS' + ( paginationToken ? '&paginationToken=' + paginationToken : '' ) + '&sortType=recency&querySize=50'
xhr.open('GET', url, false)
xhr.send()
}
// request result
xhr.onreadystatechange = function() {
switch ( xhr.readyState ) {
case 0:
console.log('uninitialized')
break
case 1:
console.log('loading...')
break
case 4:
if(xhr.status == 200) {
let data = xhr.responseText
data = JSON.parse(data)
if(data.itemsList) {
items.push(...data.itemsList)
}
if(data.paginationToken) {
getItemsList(data.paginationToken)
}
} else {
console.log('Failed')
}
break
}
}
// action
getItemsList()
// to csv
csvData += "title,asin,link,image\n"
items.forEach(item => {
console.log(item)
csvData += '"' + item.title + '","' + item.asin + '","https://www.amazon.co.jp/dp/'+ item.asin +'","' +item.productUrl+'"\n'
})
window.location = 'data:text/csv;charset=utf8,' + encodeURIComponent(csvData)
にてデベロッパーツールのコンソールにコピー・ペーストしてください。
CSVをインポートする方法。
Notionの左下の「Import」または「インポート」を選択。
CSVを選択してインポート。
ギャラリーを表紙にする方法。
ImageカラムをURLから「Files & media」をに変更
Viewをギャラリーに変更。
Propertiesから「Card Preview」をimageに変更。
Fitimageにすると、最初の画像のような見た目になります。
Discussion
参考にさせていただいています。
記載いただいているスクリプトが動いてなさそうでした、修正箇所を記載させていただきます。
お手すきで修正いただけると幸いです。