Last active
February 25, 2019 09:37
Star
You must be signed in to star a gist
This script will remove all facebook group members
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
/** | |
* This script will remove all facebook group members. | |
* | |
* @author: smithua | |
* | |
* Usage: | |
* Load as many users as you need, then open console and paste this script. | |
* Sometimes after opening confirm dialog the page look "freeze" for a while | |
* Its OK and it takes time to remove all members. | |
* | |
* Sometimes script stop working, try to change value on "line number 40" and run script again | |
* Default value is "var i = 14;" | |
* | |
* If the page don't return the members list page after few minutes, refresh the page and execute the script again | |
*/ | |
deleteAll = []; | |
deleteAll.elms = []; | |
deleteAll.canClick = function(el) { | |
return typeof el != "undefined" && typeof el.click != "undefined"; | |
}; | |
deleteAll.doClick2 = function(i) { | |
var getNotHiddenDropDowns = document.querySelectorAll( | |
".uiContextualLayerPositioner.uiLayer:not(.hidden_elem)" | |
); | |
[...getNotHiddenDropDowns][0].getElementsByClassName("_54nc")[3].click(); | |
setTimeout(function() { | |
deleteAll.confirm(i); | |
}, 1000); | |
}; | |
deleteAll.doClick = function(i) { | |
deleteAll.elms[i].click(); | |
setTimeout(function() { | |
deleteAll.doClick2(i); | |
}, 1000); | |
}; | |
deleteAll.go = function() { | |
try { | |
var i = 14; // sometimes script stop working, try to change this value and run script again | |
deleteAll.doClick(i); | |
} catch (e) { | |
setTimeout(deleteAll.load, 1000); | |
} finally { | |
setTimeout(deleteAll.load, 500000); | |
} | |
}; | |
deleteAll.load = function() { | |
var GetGroupsMemberSection = document.getElementById( | |
"groupsMemberSection_all_members" | |
); | |
deleteAll.elms = GetGroupsMemberSection.querySelectorAll( | |
// "div.lfloat _ohe:not(:empty) + div.rfloat._ohf [aria-label='Member Settings']" | |
"div.rfloat._ohf [aria-label='Member Settings']" | |
); | |
var i = 0; | |
if (i < deleteAll.elms.length) { | |
setTimeout(deleteAll.go, 6000); | |
} else { | |
setTimeout(deleteAll.go, 2000); | |
} | |
}; | |
deleteAll.confirm = function(i) { | |
remove_but = document.getElementsByClassName( | |
"_42ft _4jy0 layerConfirm uiOverlayButton _4jy3 _4jy1 selected _51sy" | |
)[0]; | |
if ( | |
i < deleteAll.elms.length && | |
deleteAll.canClick(remove_but) && | |
remove_but.value == "1" | |
) { | |
remove_but.click(); | |
setTimeout(function() { | |
deleteAll.confirm2(i); | |
}, 1000); | |
} else { | |
setTimeout(deleteAll.getMore, 2000); | |
} | |
}; | |
deleteAll.confirm2 = function(i) { | |
node = document.getElementsByClassName( | |
"uiContextualLayerPositioner uiLayer hidden_elem" | |
)[0]; | |
node.parentNode.removeChild(node); | |
i++; | |
setTimeout(function() { | |
deleteAll.doClick(i); | |
}, 3000); | |
}; | |
deleteAll.load(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment