Created
March 14, 2017 23:27
-
-
Save lifenautjoe/01828b35132adc096500c2ea9b8c313d to your computer and use it in GitHub Desktop.
Script to unfollow people in the instagram website
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
/** | |
* Instagram web unfollow script | |
* | |
* WHAT IS IT? | |
* A script to unfollow people in the instagram website | |
* | |
* WHY? | |
* I needed to clean my account so I quickly did this | |
* | |
* HOW TO USE: | |
* Go to your instagram profile while logged in and run the following code in your console | |
* | |
* WHAT DOES IT DO EXACTLY? | |
* It opens your followers list and goes one by one unfollowing with a random interval of 1 to 10 | |
* seconds in between | |
* | |
* CAN I GET BANNED? | |
* Yes, although you will first be notified several times about strange activity | |
* Simply put, use it at your own risk and not for long. | |
* | |
* Created on 15/03/17. | |
* @author Joel Hernandez <[email protected]> | |
*/ | |
openFollowersWindow().then(function () { | |
populateUnfollowsPool(); | |
digestUnfollowsPool(); | |
}); | |
function openFollowersWindow() { | |
var onFollowersWindowWasOpenedListeners = []; | |
var openWindowTimeout = 3000; | |
var followersElement = getFollowersElement(); | |
followersElement.click(); | |
function digestOnFollowersWindowWasOpenedListeners() { | |
onFollowersWindowWasOpenedListeners.forEach(function (onFollowersWindowWasOpenedListener) { | |
onFollowersWindowWasOpenedListener(); | |
}); | |
} | |
var wasOpened; | |
setTimeout(function () { | |
// TODO Verify that the window was indeed opened | |
wasOpened = true; | |
digestOnFollowersWindowWasOpenedListeners(); | |
}, openWindowTimeout); | |
return { | |
then: function (onFollowersWindowWasOpened) { | |
if (wasOpened) { | |
onFollowersWindowWasOpened(); | |
} else { | |
onFollowersWindowWasOpenedListeners.push(onFollowersWindowWasOpened); | |
} | |
} | |
}; | |
} | |
function getFollowersElement() { | |
return getFollowersElementWithUsername(getUsername()); | |
} | |
function getUsername() { | |
var pageTitleElement = document.getElementsByTagName('h1')[0]; | |
if (!pageTitleElement) throw new Error('No title to get username from'); | |
return pageTitleElement.innerHTML; | |
} | |
function getFollowersElementWithUsername(username) { | |
var followersElement = document.querySelectorAll('a[href="/' + username + '/following/"]')[0]; | |
if (!followersElement) throw new Error('No followers element was found'); | |
return followersElement; | |
} | |
var unfollowsPool; | |
function populateUnfollowsPool() { | |
var buttons = document.getElementsByTagName('button'); | |
unfollowsPool = []; | |
for (var i = 0; i < buttons.length; i++) { | |
var button = buttons[i]; | |
if (button.innerHTML.includes('Following')) { | |
var randomTimeoutForUnfollow = Math.floor((Math.random() * 10) + 1) * 1000; | |
console.log('Following button!'); | |
var unfollow = { | |
buttonElement: button, | |
timeout: randomTimeoutForUnfollow | |
}; | |
unfollowsPool.push(unfollow); | |
} | |
} | |
} | |
function digestUnfollowsPool() { | |
if (unfollowsPool.length === 0) { | |
console.log('Unfollow pool empty, repopulating'); | |
populateUnfollowsPool(); | |
} | |
var unfollow = unfollowsPool.shift(); | |
var unfollowTimeout = unfollow.timeout; | |
console.log('Clicking unfollow button in ', unfollowTimeout); | |
setTimeout(function () { | |
var unfollowButtonElement = unfollow.buttonElement; | |
unfollowButtonElement.scrollIntoView(true); | |
console.log('Clicking unfollow button'); | |
unfollowButtonElement.click(); | |
console.log('Clicked. Continuing digesting unfollow pool'); | |
digestUnfollowsPool(); | |
}, unfollowTimeout); | |
} |
Updated version: https://gist.github.com/mikeknapp/788cb26da096161ef3fff1015d947405
How to use it like how to open it.
im new in that and im with c#
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
try this
const unfollow = setInterval(()=>{
const allElements = document.getElementsByClassName("_aacl _aaco _aacw _adda _aad6 _aade");
for (const el of allElements) {
el.click();
setTimeout(() => console.log('espera'), 1000);
setTimeout(() => {
const xpath = "//a[text()='Dejar de seguir']";
const matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
matchingElement.click();
},2000);
setTimeout(() => console.log('espera'), 1000);
}
}, 2000);
clearInterval(unfollow);