Guest User

Untitled

a guest
Feb 6th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    
  2.  
  3.     // ==UserScript==
  4.     // @name        Disliker
  5.     // @namespace   odnoklassniki
  6.     // @description azaza
  7.     // @include     http://www.odnoklassniki.ru/online
  8.     // @include     http://odnoklassniki.ru/online
  9.     // @version     1.3.4
  10.     // @grant       none
  11.     // ==/UserScript==
  12.      
  13.     var reloadWaitTime = 2000,
  14.         popupWaitTime = 1000,
  15.         photoLoadWaitTime = 2500,
  16.         closeWaitTime = 1000,
  17.         fetchWaitTime = 3000,
  18.        
  19.         minAge = "14",    // >= 14
  20.         maxAge = "99";    // <= 99
  21.      
  22.     document.getElementsByClass = function(tagName, className) {                                             // Вспомогательная функция, позволяющая получить все элементы с определенным тэгом и классом
  23.       var itemsfound = new Array,
  24.           elems = document.getElementsByTagName(tagName),
  25.           i;
  26.       for(i = 0; i < elems.length; ++i) {
  27.         if(elems[i].className === className) {
  28.           itemsfound.push(elems[i]);
  29.         }
  30.       }
  31.       return itemsfound;
  32.     }
  33.      
  34.     function processPhoto (photos) {
  35.         var evObj;
  36.         if (photos.length === 0) {                                                                            // Если длина буфера фото - ноль, значит, они кончились. Возвращаемся в начало скрипта.
  37.           setTimeout(doScript, reloadWaitTime);
  38.           return;
  39.         }
  40.        
  41.         evObj = document.createEvent('MouseEvents');                                                           // Для вывода всплывающего меню симулируем ивент прохождения курсора мыши по фото
  42.         evObj.initEvent('mouseover', true, false);
  43.         photos[0].children[0].children[0].dispatchEvent(evObj);
  44.        
  45.         setTimeout(function () {                                                                                // Ждем, пока меню всплывет и
  46.           var photoLink = document.getElementsByClass("a", "gwt-shortcutMenu-iconlink-item")[0].children[0];    // Получаем ссылку на увеличенное фото и
  47.           photoLink.click();                                                                                    // Жмем ее
  48.         }, popupWaitTime);
  49.        
  50.         setTimeout(function () {                                                                                 // Ждем, пока откроется увеличенное фото
  51.           var dislikeBlock = document.getElementsByClass("li", "mark mark__last")[0],                            // Получаем блок с дизлайком
  52.             dislikeButton,
  53.             closeButton = document.getElementsByClass("div", "ic ic_i_close")[0],                                // Получаем кнопку закрытия увеличенной фотографии
  54.             usersOnlineButton = document.getElementsByClass("a", "sm fo4c_h_live-link fs-15")[0];                // Получаем кнопку возврата к пользователям онлайн
  55.            
  56.           photos.splice (0,1);                                                                                   // Вне зависимости от результата, первая фотка в буфере нам уже не нужна
  57.            
  58.           if (dislikeBlock) {                                                                                    // Если блок с дизлайком найден, то
  59.             dislikeButton = dislikeBlock.children[0];                                                            // Находим собственно кнопку
  60.             dislikeButton.click();                                                                               // Жмем
  61.             closeButton.click();                                                                                 // И закрываем увеличенное изображение
  62.             setTimeout (function () {
  63.               processPhoto (photos);                                                                             // После чего переходим к следующему фото
  64.             }, closeWaitTime);
  65.           } else {
  66.             window.location.href = "http://odnoklassniki.ru/online";
  67.             // Если же нет, то возвращаемся к странице с пользователями и перезапускаемся
  68.              setTimeout(doScript, reloadWaitTime);
  69.           }
  70.         }, photoLoadWaitTime);
  71.     }
  72.      
  73.     function fetchPhotos () {
  74.       var photos = document.getElementsByClass("a", "photoWrapper"),                                // Находим все фото
  75.           usersOnlineButton = document.getElementsByClass("a", "sm fo4c_h_live-link fs-15")[0];     // Находим кнопку возврата на страницу "Пользователи онлайн"
  76.       if (photos.length === 0) {                                                                    // Если фото не нашлись, то возвращаемся к пользователям онлайн и повторяем
  77.           usersOnlineButton.click();
  78.           setTimeout(doScript, reloadWaitTime);
  79.       } else {                                                                                       // Если нашлись, запускаем обработку фото
  80.         processPhoto (photos);
  81.       }
  82.     }
  83.        
  84.     function doScript() {
  85.       var ageSelect = document.getElementsByClass("select", "isl isl__res isl__2num"),                // Находим селекторы возраста
  86.           minAgeSelect = ageSelect[0],
  87.           maxAgeSelect = ageSelect[1],
  88.           checkbox;
  89.                                                                                                       // Устанавливаем возрасты
  90.       minAgeSelect.value = minAge;
  91.       maxAgeSelect.value = maxAge;
  92.      
  93.       checkbox = document.getElementById ("field_female");                                            // Выбираем чекбокс "женщины" и кликаем два раза.
  94.       checkbox.click ();                                                                              // Это нужно потому, что после изменения значени селекторов
  95.       checkbox.click ();                                                                              // программно перезагрузски фото не происходит
  96.       setTimeout(fetchPhotos, fetchWaitTime);                                                         // Запускаем загрузку фото
  97.     }
  98.      
  99.     doScript();
Add Comment
Please, Sign In to add comment