Skip to content

Instantly share code, notes, and snippets.

@smithua
Last active February 25, 2019 09:37
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save smithua/5921fb00f0811c263c19eea2131b19fb to your computer and use it in GitHub Desktop.
This script will remove all facebook group members
/**
* 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