井戸端の底500件をdenoで取得
$ deno run https://scrapbox.io/api/code/villagepump/井戸端の底500件をnode.jsで取得/soko.ts
soko.tsinterface ScrapboxPagesJson {
count: number;
pages: { title: string }[];
}
fetch(
"https://scrapbox.io/api/pages/villagepump/?limit=1",
).then((pagecountjsonr) => {
return pagecountjsonr.json();
}).then((pagecountjson) => {
const pagecount = pagecountjson["count"];
return fetch(
`https://scrapbox.io/api/pages/villagepump/?limit=500&skip=${
pagecount - 500
}`,
);
}).then((pglisttempjsonr) => {
return pglisttempjsonr.json();
}).then((pglisttempjson: ScrapboxPagesJson) => {
const pglist: string[] = [];
pglisttempjson["pages"].forEach((e: { title: string }) => {
pglist.push(" [" + e["title"] + "]");
});
return Deno.writeTextFile("villagepumpsoko.txt", pglist.join("\n"));
}).then(() => {
console.log("ok");
});
解説 by AI
>このコードは、 Scrapbox API を使用して村の泵に関する一覧を取得し、その結果をテキストファイルで出力するための JavaScript アプリケーションです。
> 1. 結果が JSON として受け取る URL のリクエストを送信します。この URL も村の泵に関する一覧を取得するために使用されます。
> 2. 受け取った結果(JSON)から "count" 個のページ情報を取得して、そのリストを「villagepumpsoko.json」ファイルに保存します。
> 3. さらに、同じ村の泵を表示するための "skip" キーを含む URL リクエストを送信します。これにより一覧は最初から読み出されます(この場合、「limit」パラメーターを使用して500ページ目以降のデータだけ取得)。
> 4. 受け取った結果(JSON)から「title」キーを持つ "pages" オブジェクトリストを取得します。
> 5. リスト内の各アイテムをテキストファイルに書き出します。これは「villagepumpsoko.txt」ファイルに書き出されます。
> このコードの目的は、村の泵に関する一覧情報を Scrapbox API から取得し、表示するためのテキストファイルを作成することです。
> - このアプリケーションでは Scrapbox のクライアント クッキー を使用しているとみられるので、その Cookie の内容が含まれている可能性があります。また、URL スタイルとして記載されているクッキーの名前(「_scrapbox_cookies」)も確認が必要です。
> - このコードは Scrapbox API へのアクセス権限を必要とするため、適切な認証や権限設定を行うことが重要です。