見出し画像

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で実行すると、スクリプトが実行され、「そのページの」エントリが消去される

消したいデータが載っているページを表示して、コードを実行する、を繰り返すことでまとめて体重データを消すことができる

クラス名を調べて書き換えれば他のページにも応用できるだろう

より効率的に消す方法

スクリプトの再実行

スクリプトの再実行時は、「カーソルキー上」でヒストリを呼び出して「Enter」でOK
いちいちペーストしなくてもよい

効率的なデータ表示

ページ内の項目の表示数が最も多い「4週間」表示モードで行うとよい

消し終わったら、日付の横の「<」「>」を押して次に消したいページを表示するとよい

日付の横からどんどん送る


古いデータを消したいときは、URL
https://connect.garmin.com/modern/weight/YYYY-MM-DD/1
を直接書き換えて飛ぶとよい



いいなと思ったら応援しよう!