Skip to content

Instantly share code, notes, and snippets.

@ibolmo
Last active October 7, 2018 15:50
Show Gist options
  • Save ibolmo/d03e4e45509af9598ae0c44ed0f66109 to your computer and use it in GitHub Desktop.
Save ibolmo/d03e4e45509af9598ae0c44ed0f66109 to your computer and use it in GitHub Desktop.
javascript:(function()%7B(function(params)%20%7Bsleep%20%3D%20async%20(timeout%20%3D%201000)%20%3D%3Enew%20Promise(resolve%20%3D%3E%20setTimeout(resolve%2C%20timeout))%3BfindDeletable%20%3D%20()%20%3D%3E%5B...document.querySelectorAll(%22.branch-actions%22)%5D.filter(el%20%3D%3Eel.querySelector(%22.State--red%22)%20%7C%7C%20el.querySelector(%22.State--purple%22)).map(el%20%3D%3E%20el.querySelector(%22form%20button%22))%3BclickDelete%20%3D%20async%20deletable%20%3D%3E%20%7Bfor%20(button%20of%20deletable)%20%7Bbutton.click()%3Bawait%20sleep()%3B%7D%7D%3BnextPage%20%3D%20async%20()%20%3D%3E%20%7Bawait%20sleep(2000)%3Bnext%20%3D%20%5B...document.querySelectorAll(%22.pagination%20a%22)%5D.filter(el%20%3D%3E%20%2FNext%2F.test(el.innerText))%5B0%5D%3Bif%20(!next)%20throw%20new%20Error(%22done%3F%22)%3Bnext.click()%3B%7D%3Bgo%20%3D%20async%20()%20%3D%3E%20%7Bawait%20clickDelete(findDeletable())%3Bawait%20nextPage()%3B%7D%3Bgo()%3B%7D)()%7D)()
(function(params) {
sleep = async (timeout = 1000) =>
new Promise(resolve => setTimeout(resolve, timeout));
findDeletable = () =>
[...document.querySelectorAll(".branch-actions")]
.filter(
el =>
el.querySelector(".State--red") || el.querySelector(".State--purple")
)
.map(el => el.querySelector("form button"));
clickDelete = async deletable => {
for (button of deletable) {
button.click();
await sleep();
}
};
nextPage = async () => {
await sleep(2000);
next = [...document.querySelectorAll(".pagination a")].filter(el => /Next/.test(el.innerText))[0];
if (!next) throw new Error("done?");
next.click();
};
go = async () => {
await clickDelete(findDeletable());
await nextPage();
};
go();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment