server-sideからwebsocketを通じてscrapboxへ書き込む
もしかしたらいけるかも
この文が書き込めているとしたら、server-sideからwebsocketを通じてscrapboxへ書き込むことに成功したことになる。
もしこの文が書き込めてるとしたら、私はもうこの世にいないでしょうMijinko_SD.icon
おおおーnishio.icon
もちろん、serverからの書き込みはpuppeteerを使って行うこともできるので、仮にこれが成功したとしても、それがどれだけ価値のあることなのかはわからない。
リソース消費が抑えられるbsahd.icon
あとdropped malformed message waiting for idというDNSまわりの警告が出ているのも気になる。あんまり安定した方法ではなさそう。
https://i.gyazo.com/1d47ce2b05e76af4c1a32f8d3480fb8d.gif
成功した。まじか
手法
このpackageが提供するWebSocketは、Web APIのものとは違ってCookieやRefererを渡せる
実装
この記事が書かれた当時はまだなかったが、今はextraHeadersからsocket.ioにcookieなどを渡せるようになった ただ、書き込み処理に必要なREST APIの実行処理にconnect.sidを渡すコードを書いていなかったので、そこだけ修正が必要 よかったら公開してほしいyosider.icon
0.29.5から実装しましたtakker.icon
神yosider.icon
できるようになったこと
LLMとの協調に使えそう
寝てる間にLLMにscrapboxを読ませてコメントさせるとか
AIエージェントと一緒に議論したりしたいmtane0412.iconyosider.iconbsahd.icon
いいですね〜はるひ.icon
Scrapbox書き込み用ライブラリ作れば誰か使いそうMijinko_SD.icon
クライアントだけ任意のものにして、バックエンドをscrapbox.ioにする
あんまりやり過ぎると利用規約改訂されて締め出されるので、ほどほどに サーバー負荷かけないとかサポートに負担かけないとかは必須なので、そういうのを作るのであれば早い話が身内向けにした方が良い
だからUserScriptとついている
なるほどはるひ.icon
かなりhackyだしなあ
課題
毎回出るわけでもなさそう
meganii.iconが詳しそう基素.icon
Denoのinstanceが終了しないのも気になる
なんらかの終了処理がうまくいっていない
こっちで再現しないので環境依存っぽいnishio.icon