Scrapboxの積み上げを見る
エクスポートしたファイルから日々どれくらいページを作成しているのか見てみようと思います。 エクスポートしたファイルはJSON形式ですので、プログラムなどで処理しやすいものになっています。 今回はシンプルに、「毎日どれくらいページを作成しているのか」を調べてみたいと思います。
エクスポートしたデータは以下のような構造になっています。
code: exports.json
{
"name": "satoryu1981",
"displayName": "Tatsuya Sato's project",
"exported": 1639279853,
"pages": [
{
"title": "satoryu",
"created": 1531983946,
"updated": 1627438344,
"id": "5b50384a256b2500141aafa5",
"lines": [
"satoryu",
"",
"佐藤 竜也",
"さとう たつや",
"Tatsuya Sato",
"",
"#member"
]
},
// ...
}
pagesというところに各ページの情報が入っています。
今回は作成日が知りたいので、createdを利用します。
このcreatedはUnixtimeと呼ばれ、1970/1/1 00:00からの秒数で表現しています。
なので、この秒数から年月日を計算し、それぞれの年月日で何個ページが作成されているのかを数えていきます。
出来上がったのがこちら
rubyなどで書いても良かったのですが、コマンドラインを活用してデータを作るようにしてみました。
code: count.sh
jq '.pages[].created' < satoryu1981.json \ # 全ページの作成日時(created)だけ抜き出して
| xargs -I @ date -r @ "+%Y/%m/%d" \ # unixtimeから年月日(eg. 1981/07/29)でに変換
| sort \ # 日付順に並べて
| uniq -c # 同じ日付の行数を数える
| awk '{ t = $1; $1 = $2; $2 = t; print }' # 行数と日付の順を入れ替える
| pbcopy # クリップボードにコピー
このスクリプトをMacで実行すると、クリップボードに作成日 ページ数 という形式のテキストデータが入ります。
最後の| pbcopyを> output.csv みたいにしてファイルにすると扱いやすいかと思います。
ちなみに、Linuxだとdateコマンドのオプションが異なるようなので適宜読み替えが必要です。
Googleスプレッドシートでグラフにしてみたのが下図です。
https://gyazo.com/7d49e58ae0e4b81a1ef779b49a9c6852
今年7月あたりから生まれるページ数が上がり始め、特に最近ではアドベントカレンダーの影響なのかモリモリと増えています。
ということでエクスポートしたJSONファイルから日々の活動を見えるようにしてみました。
他にも自分がどういったことを書いているのかというのを分析することもできそうですね。