generated at
project内の全てのページ情報を取得するscript
scrapboxのページカードやアイコン情報を取得するのに使う
emoji-completion#5f87f6511280f0000064f594を少し書き換えただけ

そのとおりですtakker
それと、このプログラムはapi/pages/:projectnameを複数個一気にfetchする仕様になっているため、ページ数が増えるとscrapbox.ioのサーバーに負荷がかかってしまいます
/rashitamemoのスケールなら問題ないです
一度にfetchする量を制限したり、他のREST APIを使うなどの方法を取る必要があります
他のREST API
タイトルとリンクだけ取得するならこれで十分
全部取得するまで時間がかかる
projectの全てのデータを一度に取得できる


load.js
async function loadAllPages(project) { // projectの全ページ数を取得する const pageNum = await fetch(`/api/pages/${project}/?limit=1`) .then(response => response.json()) .then(json => parseInt(json.count)); const maxIndex = Math.floor(pageNum / 1000) + 1; const result = []; const promises = [...Array(maxIndex)].map(async (_, index) => { const json = await fetch(`/api/pages/${project}/?limit=1000&skip=${index*1000}`) .then(res => res.json()); const pages = json.pages; pages.forEach(page => result.push({ project: project, title: page.title, image: page.image, descriptions: page.descriptions, })); }); await Promise.all(result); return result; }

#2023-01-07 20:48:08
#2020-10-23 09:48:01