-
-
Save joshbuchea/c44feb00f994b950048a6ed0fe55a60d to your computer and use it in GitHub Desktop.
Unfollow everyone on Linkedin
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(() => { | |
let count = 0; | |
function getAllButtons() { | |
return document.querySelectorAll('button.is-following') || []; | |
} | |
async function unfollowAll() { | |
const buttons = getAllButtons(); | |
for (let button of buttons) { | |
count = count + 1; | |
const name = button.parentElement.querySelector( | |
'.follows-recommendation-card__name', | |
).innerText; | |
console.log(`Unfollow #${count}:`, name); | |
window.scrollTo(0, button.offsetTop - 260); | |
button.click(); | |
await new Promise((resolve) => setTimeout(resolve, 100)); | |
} | |
} | |
async function run() { | |
await unfollowAll(); | |
window.scrollTo(0, document.body.scrollHeight); | |
await new Promise((resolve) => setTimeout(resolve, 1000)); | |
const buttons = getAllButtons(); | |
if (buttons.length) run(); | |
} | |
run(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I would suggest changing the declaration of
const name
at line 14. Assuming thegetAllButtons()
function returns 500 buttons, your for loop is going to iterate 500 times.Each one of these iterations is going to allocate a memory location for
name
, since at every iteration you're declaringconst name
.I propose adding
let button;
outside of the scope of the for loop, and at every iteration, the code would simply replace the current value ofbutton
with the new call toquerySelector