generated at
puppeteerでScrapboxにimport
public
puppeteerScrapboxにimportするコード
/ras/NodeでPrivateなscrapboxの情報を取得するのように、sidをセットして動かす
とりあえず動くレベル
雰囲気でjavascriptを書いてるので色々と雑
$と$xが混在したりしてるけど後で直す

importが動いている間に別ブラウザで開いているページはoverwriteされないっぽい?
いや違うな
「Importing Pages...」になった時点で、ブラウザを閉じようが関係ないのかな?
これも違うな
元々なかったページのコピーは毎回成功するけど、上書き処理がうまくいかない場合がある
条件がわからない、、

.js
const puppeteer = require('puppeteer'); const sid = "YOUR SID" const project = "experiment-blu3mo"; (async () => { const url = new URL(`https://scrapbox.io/projects/${project}/settings/page-data`); const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'], defaultViewport: {width: 800, height: 1024} }); const page = await browser.newPage(); await page.setCookie({name: 'connect.sid', value: sid, domain: 'scrapbox.io'}); await page.goto(url.toString()); await page.waitFor(1000); const inputUploadHandle = await page.$('input[name="import-file"]'); inputUploadHandle.uploadFile("FILE.json"); await page.waitFor(1000); const importSubmitButton = await page.$x("//button[contains(., 'Import Pages')]"); await importSubmitButton[0].click(); await browser.close(); })()

これを試してみてるtkgshn
この FILE.json ってどこからきたの?
適当なプロジェクトからJSONでexportして、ファイル名を変更して同じディレクトリに置いて $ node example.js したらとりあえず動いたけど、これをpuppeteerでScrapboxにimportではどうやって引っ張ってきてるのかわからない
blu3moこれは手動でexportする前提の物
エクスポートを自動でやりたければ、GASでScrapboxのexport APIを呼ぶでできる