Advertisement
Guest User

Untitled

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