Advertisement
Guest User

Untitled

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