Garmin Connect 体重データをまとめて消す
↑これを買ったので体重データの移行を行ったわけだが。。。
↑この記事の続き
まちがえた
csvから3000件超のデータを移行後に、体脂肪"率"と体脂肪"量"を間違えて登録してしまったことに気づいた
間違ったデータを消さなくては。。。
どうやって消す?
データをまとめて消す方法は提供されていない模様
登録は簡単、消すのは難しい
海外のフォーラムでは同様の悩みを抱えた人たちが情報を残してくれていたが、いかんせん情報が古い
色々調べていたらこの動画にたどり着き、「JavaScriptを書いて、ブラウザの開発者ツール使って消す」のが手軽そうなのでやってみることにした
この方法で可能なこと
「1ページに表示されている体重データの削除」が可能
全自動ではないが、労力は1/10以下になるのではないか
コード
const trashBtn = document.getElementsByClassName("icon-trash Components_deleteWeightButton__+bHj1");
for (var i = 0; i < trashBtn.length; i++) {
trashBtn[i].click()
}
const _sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
await _sleep(10);
const confirmBtn = document.getElementsByClassName("Components_deleteWeightConfirmedButton__0mI0F");
for (var i = 0; i < confirmBtn.length; i++) {
confirmBtn[i].click()
}
やってることは単純で、ページ内の測定値に対して、以下を行っている
すべてのごみ箱アイコンを探してクリック
10ms待つ
すべての「削除」ボタン探してクリック
使い方
今回ブラウザはEdgeを使った
他のブラウザでもおそらく似たようなことができるはず
開発者ツールを開く
右クリックメニューから開発者ツールを開く(F12でもいい)
コンソールを選択する
ぐちゃぐちゃ見づらいので「コンソールのクリア」🚫をしておく
スクリプトの実行
先ほどのコードをコンソールに張り付ける
Enterで実行すると、スクリプトが実行され、「そのページの」エントリが消去される
消したいデータが載っているページを表示して、コードを実行する、を繰り返すことでまとめて体重データを消すことができる
クラス名を調べて書き換えれば他のページにも応用できるだろう
より効率的に消す方法
スクリプトの再実行
スクリプトの再実行時は、「カーソルキー上」でヒストリを呼び出して「Enter」でOK
いちいちペーストしなくてもよい
効率的なデータ表示
ページ内の項目の表示数が最も多い「4週間」表示モードで行うとよい
消し終わったら、日付の横の「<」「>」を押して次に消したいページを表示するとよい
古いデータを消したいときは、URL
”https://connect.garmin.com/modern/weight/YYYY-MM-DD/1”
を直接書き換えて飛ぶとよい