Userscript para remover usuários de grupos do Facebook

Já faz algum tempo que o Facebook tem um bug nas listas de membros dos grupos. As listas não mostram todos os membros do grupo. Mais: os membros que não aparecem na lista nem mesmo podem ser encontrados pelo formulário de busca de nomes. Quando você é administrador de um grupo, isso pode ser um grande inconveniente, porque na interface padrão do Facebook a lista de membros é o único lugar onde é possível excluir usuários de um grupo. Ou seja, os usuários que não aparecem lá são indeletáveis!

Só ali na lista de membros aparece esses X para excluir os membros do grupo.

Há alguns meses, escrevi um user script para o GreaseMonkey (extensão para o Firefox que permite que você crie esses pequenos scripts para serem rodados em páginas específicas) que busca ajudar os administradores de grupos a removerem esses membros fantasmas.

Não havia publicado até agora por vergonha (o script é bem feio, tanto o código como o resultado). Porém, acho que não pretendo perfumá-lo tão cedo, então resolvi liberá-lo aqui até pra inspirar quem quiser fazer coisas mais bonitas.

O funcionamento dele é muito simples: quando você entra num grupo (sendo ou não administrador — porque nem distingui isso no código), ele cria botões X do lado dos links para os perfis dos usuários que estão nessa página (e só nesses — outra coisa que nem me preocupei no script). Se você for administrador do grupo em questão, quando clica no X o Facebook abre aquela caixa perguntando se você quer mesmo excluir o membro em questão (e se quer baní-lo permanentemente).

Com o script, tem X em todo o lugar! (até onde não deve… hehe)

Sem mais enrolação, eis aqui o código para (des-)apreciação e aprimoramentos (por favor! :)):

// ==UserScript==
// @name Remove users from Facebook groups
// @description Remove usuarios que postam no grupo sem precisar procurar na lista de membros
// @author  Tiago Madeira <madeira@juntos.org.br>
// @include http*://www.facebook.com/groups/*
// @version 1.32
// ==/UserScript==

(function () {
  var as = document.getElementsByTagName("a");
  var gid = "";

  for (var i = 0; i < as.length; i++) {
    var a = as[i];
    var hovercard = a.getAttribute("data-hovercard");
    if (hovercard != null && hovercard != "") {
      uid = hovercard.replace(/.*id=/, "");
      if (gid != "") {
        var button =
          '<a class="mhm auxiliaryButton closeButton uiCloseButton" ' +
          'title="Remove" rel="dialog-post" ' +
          'href="/ajax/groups/members/remove.php?group_id=' +
          gid +
          "&uid=" +
          uid +
          '"></a>';
        a.innerHTML = a.innerHTML + " " + button;
      }
    }
    var pattern = new RegExp("(^| )groupsCleanProfilePic( |$)");
    if (pattern.test(a.className)) {
      gid = a.getAttribute("href").replace(/.*id=/, "");
    }
  }
})();

Ou o link direto para download (ou instalação no GreaseMonkey):

fb.group.remove.user.js (1.08kb)

© 2005–2020 Tiago Madeira