scrapbox-backups
規約違反になる?
jsonデータ置くくらいならいい気もするが
Actionsで定期実行するとやばそう
privateなら問題ない?
仕様
✅JSONをformatする
保存形式
projectごとにdirectoryを作る
中に一ページごとにばらしたjson dataを入れる
ファイル名はページタイトルにする
2022-01-22 12:02:34 やった
見やすくなって良い
scripts
データを取得しながら1ページごとに展開するscript
backup dataとpage APIのどちらでも使えるようにする
networkからとってきたpage dataとファイルに含まれるupdatedとを比較して、更新されていたら上書きする
新規作成されたページは追加、見つからなかったページは削除する
全てのページを走査し終わったら、もう一度更新情報を取得し、script開始時点以降で更新されたページがないか確かめる
もしあればもう一度更新処理を行う
最大5回繰り返す
普通は2,3回で終わると思うけど
directory下のpage dataを全部mergeしてbackup dataを生成するscript
現状
特に何もしていない
必要な技術
✅1ページごとにファイルをばらす
いるかどうかは正直不明
もし実装するとしたら、scrapboxに取り込めるbackup json形式にする
必要なプログラム
backupを作る
ソース
2024-02-20 02:23:49 大変になってきた
ページが削除されたかどうか検知するには、project内のすべてのページタイトルデータが必要になる
ページタイトルだけ事前に取得する必要がある
backupedより新しいデータがbackupにあれば、それを使う
ファイルとして差分管理
code:layout
:project/
├── pages/
│ ├── Scrapboxの使い方.json
│ └── ここはなに.json
└── project.json
:projectにscrapbox projectの名前が入る
project.jsonにprojectの基本情報やbackupedを入れる
code:project.json
{
"name": "villagepump",
"displayName": "井戸端",
"count": 7123,
"backuped": 32984374
}
pages/配下にページタイトルを名前にしたjsonを直接いれる
PageにあってBackupedPageにないものがあってもいいが、その逆は残さない
importに必要な情報だけまとめる
既存のbackup jsonをrepoに適用したい
これはやっておきたいtakker.icon
そこまでしなくても別にいいかなあtakker.icon
井戸端は上述した通り
自分の昔のbackupsは……まあ別にやらなくてもいいかな
流用する点
1ページごとにばらす
auto commit
release
削除する点
active userのグラフ描画
google driveへのupload
変更点
任意のprojectをbackupできるようにする
github actionsにsecretとして渡す
どうやって渡せばいいんだろう?
誰でも使えるようにする
ここまでやる時間はないだろうから今はやらない