高木のブログ

【Pixela】グラフのバックアップを取るスクリプト

2021/02/04

以前ブログに書いとおり、Togglで記録した作業時間をPixelaで可視化している。
昨年の7月くらいから毎日続けることができて、可処分時間を無駄にしないで済んでいるのは間違いなくPixelaのおかげである。

今回は、うっかり操作ミスなどをしてグラフのデータがおかしくなってしまったら辛いので、そうなる前にバックアップを取ることにした。

※ちなみに今回の場合はTogglに元データはあるので復元は可能である。ただバックアップをやってみたかっただけ。

完成品

ytkg/pixela-backup - GitHub

実行

ちゃんとした実行方法は、README.mdを参照

$ bundle exec ruby app.rb task-durations td-backup
195/195

結果

グラフID以外全く同じのグラフを作ることができた。

オリジナルのグラフ

Pixela オリジナルのグラフ

バックアップしてできたグラフ

Pixela バックアップのグラフ

振り返り

  • copy_graphメソッドで既にグラフがあった場合など、エラーになるがrescueで握りつぶした
    もちろん良くはないけど、使い捨て予定だったスクリプトにしては全体的にちゃんと書いた方だと思うので良しとする

  • 進捗がわかるように何ピクセル中何ピクセルまで終わったかプログレス?的なのを入れてみた

  • 1ピクセルごとAPIを叩くことになるので、1秒のスリープを入れた。(ドキュメントに制限のルールは見つからなかったけど念の為)
    1ピクセルに付き最低1秒はかかってしまうので一気に送れたら時間短縮できて良いのになと思った

  • バックアップのグラフIDを本当は「task-durations-backup」にしたかったけど、16文字の制限があったっぽい
    もう少し緩めにしてほしい。。。

    • Validation rule: ^[a-z][a-z0-9-]{1,16} (Document)
  • 最近追加されたエンドポイントを早速使う時がきた
    Gem(sue445/pixela)も既に対応してて良き

  • こういう使い方していいのかわからない

    • 怒られたら消します

ytkg

Written by ytkg, Twitter, GitHub