Как удалить ботов в группе Вконтакте

Все гениальное - просто.
Аватара пользователя
holpa
Admin
Сообщения: 641
Зарегистрирован: 04 сен 2014, 14:00

Как удалить ботов в группе Вконтакте

Непрочитанное сообщение holpa » 29 дек 2014, 17:14

Всем у кого есть своя группа Вконтакте, наверное надоедают эти вот собачки!
Изображение

Чем их больше тем больше недоверия к группе, а так же они влияют на рейтинг группы и показ её в поиске.
Если группа маленькая, то собачек можно и в ручную удалить, но когда дело доходит от 1000 пользователей это уже проблематично.

Есть некоторые сервисы (не буду их описывать) которые удаляют за вас, но все они платные.
Но есть выход, вот он:

Код: Выделить всё

var timeout = 20;
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type= 'text/javascript';
script.src= 'https://code.jquery.com/jquery-2.1.0.min.js';
head.appendChild(script);

function checkJQLoaded(){return typeof $.fn != 'undefined';}
var loadJQ = setInterval(function () {
    timeout--;
    if (checkJQLoaded()) {
      loadAllAccounts();
      clearInterval(loadJQ);
      return;
    }
    else if (timeout > 0) {
      return;
    }
    else {
      alert('Что-то я не могу загрузить JQuery. '
            + 'Попробуйте обновить страницу и сделать всё заново!');
      clearInterval(loadJQ);
    }
}, 100);


var allCnt = 0;
var dogsCnt = 0;
var accountsCnt;

function loadAllAccounts(){
    var initialHeight = 0; var stops = 0;
    accountsCnt = $('div#gedit_users_summary_members').text()
                  .replace(/\D/g, '');
    var sInterval = setInterval(function(){
        if (initialHeight == document.body.clientHeight
            && $('img.gedit_user_img').length+15 > accountsCnt){
             stops++;
             if (stops > 30
                 && $('img.gedit_user_img').length+15 > accountsCnt) {
                   clearInterval(sInterval); go(); return;
             }
         } else {
             stops = 0;
         }
         initialHeight = document.body.clientHeight;
         $('a#gedit_users_more_members').click();
         scrollTo(0, 9999999999);
    }, 100);
}

function go(){
  $('img.gedit_user_img').each(function(){
    var src = $(this).attr('src');
    allCnt++;
    if (src != '/images/deactivated_100.gif')
      $(this).parent().parent().parent().hide();
    else
      dogsCnt++;
    });

    if (confirm('Всего обработано подписчиков: ' + allCnt
        + '; собачек: '
         + dogsCnt + ' (' + (100*dogsCnt/allCnt).toFixed(2) + '%)\n'
         + 'Удаляем собачек?')){
        var dogsArray = $('img[src="/images/deactivated_100.gif"]');
        var currentDogIndex = 0;
        var dogsInterval = setInterval(
          function(){
            if (!dogsArray[currentDogIndex]){
              clearInterval(dogsInterval);
              return;
            }

            $(dogsArray[currentDogIndex]).parent().parent().parent()
                .find("a.gedit_user_action").last().click();
            currentDogIndex++;
          },
        1000
      );
    }
}


Код можно выполнить в консоли Chrome Developer, консоли Firebug или - что проще для большинства - просто скопировав его в адресную строку на открытой странице редактирования участников паблика.

Выполняется код некоторое время - его можно запустить и заняться своими делами, после окончания работы нам покажут сообщение со статистикой о количестве собачек в паблике и вопросом, хотим ли мы их автоматически удалить или хотим оставить.
Изображение

Простейший способ запустить скрипт - открыть страницу редактирования подписчиков паблика и скопировать код в адресную строку, дополнив его в начале текстом javascript:. Таким образом, текст в адресной строке будет выглядеть как-то так: javascript:var timeout = 20; var head = ... . Можно создать закладку с этим кодом и впоследствии вызывать ее быстро со страницы одним кликом.
Изображение

Ответить