不知道为什么facebook在这里推荐我,但无论如何,让我问这个问题。我在 facebook 上有一个拥有 4000 多名成员的小组。我想删除组中不再活跃的旧成员。有没有办法选择多个用户进行删除?
2 回答
如何获取您的 facebook 群组的 ID 列表以避免移除活跃用户,它用于将群组从 10.000 减少到 5000 名成员以及移除非活跃成员或旧成员“您将冒着移除一些观众的风险该组的“”“记住在您向下浏览页面时打开所有评论”:
您将需要 Notepad++ 来完成此过程:
After you save the HTML. Remove all information before of document:
"div id=contentArea" to
"div id=bottomContent"
to avoid using messenger ID's,
如果您有被阻止用户的 ID,脚本会以某种方式运行问题。
以及如何解析 HTML 中的文本和代码的不同示例。以及一个数字范围,如果它们是 2 位到 30 位。
您可以尝试这样做来清除 member_id= 列表以及它们以及 2 到最多 30 位长的数字。确保仅将数字和整个“member_id=12456”或“member_id=12”写入文件。稍后您可以将 member_id= 替换为空白。然后将整个列表复制到重复扫描仪或删除重复项。并拥有所有唯一 ID。然后在下面的 Java 代码中使用它。
“这用于在您保存并向下滚动组后从单个 HTML 文件中清除组中的所有 Facebook 用户 ID”
Find: (member_id=\d{2,30})|.
Replace: $1
您应该在上面的代码中使用“正则表达式”和“。匹配换行符”。
其次在此模式下使用扩展模式:
Find: member_id=
Replace: \n
这将创建新行,并以一种简单的方法删除所有行中的所有 Fx0 以手动删除有问题的 Notepad++ 中的所有额外字符
然后您也可以轻松地删除所有重复项。将所有线条连接成一个单独的空间。选项是使用此工具将整个文本与每个 ID 之间的一个空格对齐:https ://www.tracemyip.org/tools/remove-duplicate-words-in-text/
然后再次“在记事本++中使用普通选项”:
Find: "ONE SPACE"
Replace ','
记得在开头和结尾加上 '
然后您可以将整行复制到您的 java 编辑中,然后删除所有不活动的成员。如果您使用页面的整个向下滚动的 HTML。['21','234','124234'] <-- 从头开始记住正确的字符。额外的安全是将您的 ID 添加到开头。
您将代码放入此行:
var excludedFbIds = ['1234','11223344']; // make sure each id is a string!
facebook 组删除 java 代码位于发布到此解决方案的用户身上。
var deleteAllGroupMembers = (function () {
var deleteAllGroupMembers = {};
// the facebook ids of the users that will not be removed.
// IMPORTANT: bobby.leopold.5,LukeBryannNuttTx!
var excludedFbIds = ['1234','11223344']; // make sure each id is a string!
var usersToDeleteQueue = [];
var scriptEnabled = false;
var processing = false;
deleteAllGroupMembers.start = function() {
scriptEnabled = true;
deleteAll();
};
deleteAllGroupMembers.stop = function() {
scriptEnabled = false;
};
function deleteAll() {
if (scriptEnabled) {
queueMembersToDelete();
processQueue();
}
}
function queueMembersToDelete() {
var adminActions = document.getElementsByClassName('adminActions');
console.log(excludedFbIds);
for(var i=0; i<adminActions.length; i++) {
var gearWheelIconDiv = adminActions[i];
var hyperlinksInAdminDialog = gearWheelIconDiv.getElementsByTagName('a');
var fbMemberId = gearWheelIconDiv.parentNode.parentNode.id.replace('member_','');
var fbMemberName = getTextFromElement(gearWheelIconDiv.parentNode.parentNode.getElementsByClassName('fcb')[0]);
if (excludedFbIds.indexOf(fbMemberId) != -1) {
console.log("SKIPPING "+fbMemberName+' ('+fbMemberId+')');
continue;
} else {
usersToDeleteQueue.push({'memberId': fbMemberId, 'gearWheelIconDiv': gearWheelIconDiv});
}
}
}
function processQueue() {
if (!scriptEnabled) {
return;
}
if (usersToDeleteQueue.length > 0) {
removeNext();
setTimeout(function(){
processQueue();
},1000);
} else {
getMore();
}
}
function removeNext() {
if (!scriptEnabled) {
return;
}
if (usersToDeleteQueue.length > 0) {
var nextElement = usersToDeleteQueue.pop();
removeMember(nextElement.memberId, nextElement.gearWheelIconDiv);
}
}
function removeMember(memberId, gearWheelIconDiv) {
if (processing) {
return;
}
var gearWheelHref = gearWheelIconDiv.getElementsByTagName('a')[0];
gearWheelHref.click();
processing = true;
setTimeout(function(){
var popupRef = gearWheelHref.id;
var popupDiv = getElementByAttribute('data-ownerid',popupRef);
var popupLinks = popupDiv.getElementsByTagName('a');
for(var j=0; j<popupLinks.length; j++) {
if (popupLinks[j].getAttribute('href').indexOf('remove.php') !== -1) {
// this is the remove link
popupLinks[j].click();
setTimeout(function(){
var confirmButton = document.getElementsByClassName('layerConfirm uiOverlayButton selected')[0];
var errorDialog = getElementByAttribute('data-reactid','.4.0');
if (confirmButton != null) {
if (canClick(confirmButton)) {
confirmButton.click();
} else {
console.log('This should not happen memberid: '+memberId);
5/0;
console.log(gearWheelIconDiv);
}
}
if (errorDialog != null) {
console.log("Error while removing member "+memberId);
errorDialog.getElementsByClassName('selected layerCancel autofocus')[0].click();
}
processing = false;
},700);
continue;
}
}
},500);
}
function canClick(el) {
return (typeof el != 'undefined') && (typeof el.click != 'undefined');
}
function getMore() {
processing = true;
more = document.getElementsByClassName("pam uiBoxLightblue uiMorePagerPrimary");
if (typeof more != 'undefined' && canClick(more[0])) {
more[0].click();
setTimeout(function(){
deleteAll();
processing = false;
}, 2000);
} else {
deleteAllGroupMembers.stop();
}
}
function getTextFromElement(element) {
var text = element.textContent;
return text;
}
function getElementByAttribute(attr, value, root) {
root = root || document.body;
if(root.hasAttribute(attr) && root.getAttribute(attr) == value) {
return root;
}
var children = root.children,
element;
for(var i = children.length; i--; ) {
element = getElementByAttribute(attr, value, children[i]);
if(element) {
return element;
}
}
return null;
}
return deleteAllGroupMembers;
})();
deleteAllGroupMembers.start();
// stop the script by entering this in the console: deleteAllGroupMembers.stop();
在 Chrome 或 Firefox Javascript 控制面板中使用它。