Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 KB | None | 0 0
  1. var deleteAllGroupMembers = (function () {
  2. var deleteAllGroupMembers = {};
  3. // the facebook ids of the users that will not be removed.
  4. // IMPORTANT: add your own facebook id here so that the script will not remove yourself!
  5. var excludedFbIds = ['1234','11223344']; // make sure each id is a string!
  6. var usersToDeleteQueue = [];
  7. var scriptEnabled = false;
  8. var processing = false;
  9.  
  10. deleteAllGroupMembers.start = function() {
  11. scriptEnabled = true;
  12. deleteAll();
  13. };
  14. deleteAllGroupMembers.stop = function() {
  15. scriptEnabled = false;
  16. };
  17.  
  18. function deleteAll() {
  19. if (scriptEnabled) {
  20. queueMembersToDelete();
  21. processQueue();
  22. }
  23. }
  24.  
  25. function queueMembersToDelete() {
  26. var adminActions = document.getElementsByClassName('adminActions');
  27. console.log(excludedFbIds);
  28. for(var i=0; i<adminActions.length; i++) {
  29. var gearWheelIconDiv = adminActions[i];
  30. var hyperlinksInAdminDialog = gearWheelIconDiv.getElementsByTagName('a');
  31. var fbMemberId = gearWheelIconDiv.parentNode.parentNode.id.replace('member_','');
  32.  
  33. if (excludedFbIds.indexOf(fbMemberId) != -1) {
  34. console.log(fbMemberId);
  35. continue;
  36. } else {
  37. usersToDeleteQueue.push({'memberId': fbMemberId, 'gearWheelIconDiv': gearWheelIconDiv});
  38. }
  39. }
  40. }
  41.  
  42. function processQueue() {
  43. if (!scriptEnabled) {
  44. return;
  45. }
  46. if (usersToDeleteQueue.length > 0) {
  47. removeNext();
  48.  
  49. setTimeout(function(){
  50. processQueue();
  51. },1000);
  52. } else {
  53. getMore();
  54. }
  55. }
  56.  
  57. function removeNext() {
  58. if (!scriptEnabled) {
  59. return;
  60. }
  61. if (usersToDeleteQueue.length > 0) {
  62. var nextElement = usersToDeleteQueue.pop();
  63. removeMember(nextElement.memberId, nextElement.gearWheelIconDiv);
  64. }
  65. }
  66.  
  67. function removeMember(memberId, gearWheelIconDiv) {
  68. if (processing) {
  69. return;
  70. }
  71. var gearWheelHref = gearWheelIconDiv.getElementsByTagName('a')[0];
  72. gearWheelHref.click();
  73. processing = true;
  74. setTimeout(function(){
  75. var popupRef = gearWheelHref.id;
  76. var popupDiv = getElementByAttribute('data-ownerid',popupRef);
  77. var popupLinks = popupDiv.getElementsByTagName('a');
  78. for(var j=0; j<popupLinks.length; j++) {
  79. if (popupLinks[j].getAttribute('href').indexOf('remove.php') !== -1) {
  80. // this is the remove link
  81. popupLinks[j].click();
  82. setTimeout(function(){
  83. var confirmButton = document.getElementsByClassName('layerConfirm uiOverlayButton selected')[0];
  84. var errorDialog = getElementByAttribute('data-reactid','.4.0');
  85. if (confirmButton != null) {
  86. if (canClick(confirmButton)) {
  87. confirmButton.click();
  88. } else {
  89. console.log('This should not happen memberid: '+memberId);
  90. 5/0;
  91. console.log(gearWheelIconDiv);
  92. }
  93. }
  94. if (errorDialog != null) {
  95. console.log("Error while removing member "+memberId);
  96. errorDialog.getElementsByClassName('selected layerCancel autofocus')[0].click();
  97. }
  98. processing = false;
  99. },700);
  100. continue;
  101. }
  102. }
  103. },500);
  104. }
  105.  
  106. function canClick(el) {
  107. return (typeof el != 'undefined') && (typeof el.click != 'undefined');
  108. }
  109.  
  110. function getMore() {
  111. processing = true;
  112. more = document.getElementsByClassName("pam uiBoxLightblue uiMorePagerPrimary");
  113. if (typeof more != 'undefined' && canClick(more[0])) {
  114. more[0].click();
  115. setTimeout(function(){
  116. deleteAll();
  117. processing = false;
  118. }, 2000);
  119. } else {
  120. deleteAllGroupMembers.stop();
  121. }
  122. }
  123.  
  124.  
  125. function getElementByAttribute(attr, value, root) {
  126. root = root || document.body;
  127. if(root.hasAttribute(attr) && root.getAttribute(attr) == value) {
  128. return root;
  129. }
  130. var children = root.children,
  131. element;
  132. for(var i = children.length; i--; ) {
  133. element = getElementByAttribute(attr, value, children[i]);
  134. if(element) {
  135. return element;
  136. }
  137. }
  138. return null;
  139. }
  140. return deleteAllGroupMembers;
  141. })();
  142. deleteAllGroupMembers.start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement