umartechboy

Facebook Delete Group Script

Jun 26th, 2017
5,380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.11 KB | None | 0 0
  1. var deleteAllGroupMembers = (
  2. function ()
  3. {
  4. var deleteAllGroupMembers = {};
  5. // the facebook ids of the users that will not be removed.
  6. // IMPORTANT: add your own facebook id here so that the script will not remove yourself!
  7. var excludedFbIds = ['jessica.manoo.7']; // make sure each id is a string!
  8. var totalDeleted = 0;
  9. var usersToDeleteQueue = [];
  10. var scriptEnabled = false;
  11. var processing = false;
  12. deleteAllGroupMembers.start =
  13. function()
  14. {
  15. scriptEnabled = true;
  16. deleteAll();
  17. };
  18. deleteAllGroupMembers.stop = function()
  19. {
  20. scriptEnabled = false;
  21. };
  22. function deleteAll()
  23. {
  24. if (scriptEnabled)
  25. {
  26. queueMembersToDelete();
  27. processQueue();
  28. }
  29. }
  30.  
  31. function queueMembersToDelete()
  32. {
  33. var adminActions = document.getElementsByClassName('adminActions');
  34. console.log(excludedFbIds);
  35. for(var i=0; i<adminActions.length; i++)
  36. {
  37. var gearWheelIconDiv = adminActions[i];
  38. var hyperlinksInAdminDialog = gearWheelIconDiv.getElementsByTagName('button')[0];
  39. //var fbMemberId = gearWheelIconDiv.parentNode.parentNode.id.replace('member_','');
  40. //var fbMemberName = getTextFromElement(gearWheelIconDiv.parentNode.parentNode.getElementsByClassName('fcb')[0]);
  41. var fbMemberName = gearWheelIconDiv.parentNode.parentNode.parentNode.children[0].children[0].text;
  42. if (gearWheelIconDiv.parentNode.parentNode.parentNode.children[0].children[0].attributes[0] == null)
  43. continue;
  44. var str = gearWheelIconDiv.parentNode.parentNode.parentNode.children[0].children[0].attributes[0].value;
  45.  
  46. str = str.substring(str.indexOf('.com') + 5);
  47. fbMemberId = str.substring(0,str.indexOf('?'));
  48. if (excludedFbIds.indexOf(fbMemberId) != -1)
  49. {
  50. console.log("SKIPPING "+fbMemberName+' ('+fbMemberId+')');
  51. continue;
  52. }
  53. else
  54. {
  55. console.log('Queing: ' + fbMemberName+ ', (' + fbMemberId + ')');
  56. usersToDeleteQueue.push({'memberId': fbMemberId, 'gearWheelIconDiv': gearWheelIconDiv});
  57. }
  58. }
  59. }
  60.  
  61. function processQueue()
  62. {
  63. if (!scriptEnabled)
  64. {
  65. return;
  66. }
  67. if (usersToDeleteQueue.length > 0)
  68. {
  69. removeNext();
  70. setTimeout(
  71. function()
  72. {
  73. processQueue();
  74. },1000);
  75. }
  76. else
  77. {
  78. getMore();
  79. }
  80. }
  81. function removeNext()
  82. {
  83. if (!scriptEnabled)
  84. {
  85. return;
  86. }
  87. if (usersToDeleteQueue.length > 0)
  88. {
  89. var nextElement = usersToDeleteQueue.pop();
  90. removeMember(nextElement.memberId, nextElement.gearWheelIconDiv);
  91. }
  92. }
  93. function removeMember(memberId, gearWheelIconDiv) {
  94. if (processing)
  95. {
  96. return;
  97. }
  98. var gearWheelHref = gearWheelIconDiv.getElementsByTagName('button')[0];
  99. gearWheelHref.click();
  100. processing = true;
  101. setTimeout(
  102. function()
  103. {
  104. var popupRef = gearWheelHref.id;
  105. var popupDiv = getElementByAttribute('data-ownerid',popupRef);
  106. var popupLinks = popupDiv.getElementsByTagName('a');
  107. for(var j=0; j<popupLinks.length; j++)
  108. {
  109. if (popupLinks[j].getAttribute('href').indexOf('remove.php') !== -1)
  110. {
  111. // this is the remove link
  112. popupLinks[j].click();
  113. setTimeout(function(){
  114. var confirmButton = document.getElementsByClassName('layerConfirm uiOverlayButton selected')[0];
  115. var errorDialog = getElementByAttribute('data-reactid','.4.0');
  116. if (confirmButton != null) {
  117. if (canClick(confirmButton)) {
  118. confirmButton.click();
  119. } else {
  120. console.log('This should not happen memberid: '+memberId);
  121. 5/0;
  122. console.log(gearWheelIconDiv);
  123. }
  124. }
  125. if (errorDialog != null) {
  126. console.log("Error while removing member "+memberId);
  127. errorDialog.getElementsByClassName('selected layerCancel autofocus')[0].click();
  128. }
  129. else
  130. {
  131. console.log("Now Deleting "+ memberId + ', (' + totalDeleted + ')');
  132. totalDeleted = totalDeleted + 1;
  133. }
  134. processing = false;
  135. },1500);
  136. continue;
  137. }
  138. }
  139. },1000);
  140. }
  141. function canClick(el)
  142. {
  143. return (typeof el != 'undefined') && (typeof el.click != 'undefined');
  144. }
  145. function getMore()
  146. {
  147. processing = true;
  148. more = document.getElementsByClassName("pam uiBoxLightblue uiMorePagerPrimary");
  149. if (typeof more != 'undefined' && canClick(more[0]))
  150. {
  151. more[0].click();
  152. setTimeout(
  153. function()
  154. {
  155. deleteAll();
  156. processing = false;
  157. }, 4000);
  158. }
  159. else
  160. {
  161. deleteAllGroupMembers.stop();
  162. }
  163. }
  164. function getTextFromElement(element)
  165. {
  166. var text = element.textContent;
  167. return text;
  168. }
  169. function getElementByAttribute(attr, value, root)
  170. {
  171. root = root || document.body;
  172. if(root.hasAttribute(attr) && root.getAttribute(attr) == value)
  173. {
  174. return root;
  175. }
  176. var children = root.children,
  177. element;
  178. for(var i = children.length; i--; )
  179. {
  180. element = getElementByAttribute(attr, value, children[i]);
  181. if(element)
  182. {
  183. return element;
  184. }
  185. }
  186. return null;
  187. }
  188.  
  189. return deleteAllGroupMembers;
  190. })();
  191. deleteAllGroupMembers.start();
Add Comment
Please, Sign In to add comment