generated at
井戸端の底500件をdenoで取得
$ deno run https://scrapbox.io/api/code/villagepump/井戸端の底500件をnode.jsで取得/soko.ts

soko.ts
interface 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 へのアクセス権限を必要とするため、適切な認証や権限設定を行うことが重要です。