generated at
scrapbox-backups
規約違反になる?
jsonデータ置くくらいならいい気もするが
Actionsで定期実行するとやばそう
privateなら問題ない?
vim-jp slacklog/log-dataはこの方法で収集していたようだ


仕様
✅JSONをformatする
JSON.stringifyでformatできる
保存形式
projectごとにdirectoryを作る
中に一ページごとにばらしたjson dataを入れる
ファイル名はページタイトルにする
2022-01-22 12:02:34 やった
見やすくなって良い
このデータとscrapbox readerを組み合わせれば、履歴表示みたいなこともできるかも
scripts
データを取得しながら1ページごとに展開するscript
backup dataとpage APIのどちらでも使えるようにする
networkからとってきたpage dataとファイルに含まれる updated とを比較して、更新されていたら上書きする
新規作成されたページは追加、見つからなかったページは削除する
全てのページを走査し終わったら、もう一度更新情報を取得し、script開始時点以降で更新されたページがないか確かめる
もしあればもう一度更新処理を行う
最大5回繰り返す
普通は2,3回で終わると思うけど
directory下のpage dataを全部mergeしてbackup dataを生成するscript

2024-02-20 00:02:02 /villagepump/Scrapbox新サービス規約(2024-03-01〜)を受け、重い腰を上げて作り直すことにする

現状
特に何もしていない
scrapbox-auto-backupperがあるが、backup jsonが大きくなりすぎてGoogle Apps Scriptのファイル容量制限にひっかかってしまい、ここ数年は実質機能していない

必要な技術
✅1ページごとにファイルをばらす
(自動でGithub Releasesする)
sandbox-github-actions-schedulerで実現できてそうなのでcode readingする
いるかどうかは正直不明
もし実装するとしたら、scrapboxに取り込めるbackup json形式にする

必要なプログラム
backupを作る
ソース
2024-02-20 02:23:49 大変になってきた
ページが削除されたかどうか検知するには、project内のすべてのページタイトルデータが必要になる
ページタイトルだけ事前に取得する必要がある
admin以上の場合は、api/project-backup/:projectname/:backupId.jsonも使う
backuped より新しいデータがbackupにあれば、それを使う
ファイルとして差分管理
layout
:project/ ├── pages/ │ ├── Scrapboxの使い方.json │ └── ここはなに.json └── project.json
:project にscrapbox projectの名前が入る
project.json にprojectの基本情報や backuped を入れる
project.json
{ "name": "villagepump", "displayName": "井戸端", "count": 7123, "backuped": 32984374 }
pages/ 配下にページタイトルを名前にしたjsonを直接いれる
型は Page https://github.com/scrapbox-jp/types/blob/0.5.0/response.ts#L30 BackupedPage の共通部分
Page にあって BackupedPage にないものがあってもいいが、その逆は残さない
scrapbox json dataとしてrelease
importに必要な情報だけまとめる
既存のbackup jsonをrepoに適用したい
sandbox-github-actions-schedulerで生成されたコードを取り込む
これはやっておきたいtakker
……と思ったけど、井戸端に関してはsandbox-github-actions-schedulerを井戸端のbackupとして使えばいいか
そこまでしなくても別にいいかなあtakker
井戸端は上述した通り
自分の昔のbackupsは……まあ別にやらなくてもいいかな

sandbox-github-actions-schedulerのコードをほぼそのまま使えばよさそうな気がする
流用する点
1ページごとにばらす
auto commit
release
削除する点
active userのグラフ描画
google driveへのupload
変更点
任意のprojectをbackupできるようにする
connect.sidを使えるようにする
github actionsにsecretとして渡す
どうやって渡せばいいんだろう?
action secretsを使えばいいようだ
scriptからは環境変数として取り込める
(GitHub Actionsとして公開する)
誰でも使えるようにする
ここまでやる時間はないだろうから今はやらない


#2024-02-19 23:58:51
#2022-01-21 19:43:32