きっかけ
アマゾンのプライム会員になると、Amazon Photosというサービスを利用できます。
外部リンク : Amazonプライムフォトが超最強!RAWも無制限にバックアップ可能
画像のみなら容量制限がなく、枚数制限もなく、劣化もしないという神サービスなのですが
画像枚数が一定枚数を超えると一括削除できません。
最初の方は1枚選ぶと「すべて選択」というボタンが出現していたのですが、3000枚を超えたあたり?で出なくなったようです。
1枚ずつ選んで消すなんて修行はしたくなかったので、スクリプト書きました。
画像を選択してスクロールしていくだけのスクリプトです。
ChromeのデベロッパーツールからConsoleを開いて(Ctrl + Shift + J)貼り付けて実行すると
3000枚まで自動選択されます。※一度に選択できる上限
削除できたらリロードして貼り付けて~を繰り返してください。
うまくいかない場合はtimeとかいじってみてください。
const time = 0;
let selectCount = 0;
let ngCount = 0;
const id = setInterval( async () => {
try {
let tmp = 0;
document.querySelectorAll('div[class*=selector]').forEach(element => {
if(!element.className.includes("selected")) {
element.click();
tmp++;
ngCount = 0;
}
});
selectCount += tmp;
if(tmp === 0) {
if(ngCount > 10) {
end(id);
} else {
ngCount++;
}
} else if(selectCount >= 3000) {
end(id);
}
await new Promise(resolve => setTimeout(() => resolve(), time));
scrollBy(0, 400);
} catch (error) {
end(id, false);
}
})
const end = (id, click = true) => {
if(click) {
document.querySelector("button[class=trash]").click();
}
clearInterval(id);
}