DomainKiller

zakopuje i ukrywa znaleziska na wykopalisku wykop.pl z wybranych przez uzytkownika domen

目前为 2017-08-09 提交的版本。查看 最新版本

// ==UserScript==
// @name DomainKiller
// @version 0.90
// @description zakopuje i ukrywa znaleziska na wykopalisku wykop.pl z wybranych przez uzytkownika domen
// @author llinney małpa outlook.com
// @grant none
// @match http://www.wykop.pl/wykopalisko/*
// @match https://www.wykop.pl/wykopalisko/*
// @namespace http://www.wykop.pl/
// ==/UserScript==

// you can fill hardcoded domains table for preserving settings even after browser storage has been cleared.
// example:
// var hardCodedDomains = ['youtube.pl', 'liveleak.com'];
var hardCodedDomains = [];

const icoLock = '<i class="fa fa-lock"></i>';
const icoEye = '<i class="fa fa-eye-slash"></i>';
const icoX = '<i class="fa fa-times"></i>';
const blockedIconLi = '<li><a id="domainKillerPanel" title="Zakopywane domeny" class="dropdown-show ajax">' + icoLock + '</a></li>';
const blockedPanel = '<div id="domainKillerPanelDiv" class="dropdown right notificationsContainer bodyClosable"><div><ul id="domainKillerPanelList" class="menu-list"></ul><div></div>';

function getBlockedDomains() {
    return JSON.parse(localStorage.getItem("unwantedDomains"));
}

function setBlockedDomains(domains) {
    localStorage.setItem("unwantedDomains", JSON.stringify(domains));
}

function removeDomainFromArray(ind) {
    var array = getBlockedDomains();
    var removedIt = array.splice(ind,1);
    setBlockedDomains(array);
    $('#domainKillerPanelListItem' + ind).parent().parent().hide();
}

function createPanel() {
    $('#domainKillerPanel').after(blockedPanel);
        var array = getBlockedDomains();
        var iter = 0;
        array.forEach(function(domain) {
            var currIt = iter;
            $('#domainKillerPanelList').append('<li><p><a  href="' + 'https://www.wykop.pl/szukaj/url:' + domain + '">' + domain + '</a><a id="domainKillerPanelListItem' + iter + '"title="Usuń z listy" class="close"><i class="fa fa-times"></i></a></p></li>');
            var name = '#domainKillerPanelListItem' + iter;
            $(name).on( "click", function() {
                removeDomainFromArray(currIt);
            });
            iter++;
        });
}

function togglePanel() {
    $('#domainKillerPanelDiv').toggle();
}

function addSettingsIcon() {
    $('#openNaturalSearch').parent().parent().prepend(blockedIconLi);

    $( "#domainKillerPanel" ).on( "click", function() {
        togglePanel();
    });
}

function addDownIcon(tagLine) {
    var source = $(tagLine)[0].getElementsByClassName('affect')[1].innerHTML.toString();
    $(tagLine).children('.tag.create').eq(2).before("<a href='' class='tag affect create' onclick='var array = JSON.parse(localStorage.getItem(\"unwantedDomains\"));Array.prototype.push.apply(array, [\"" + source + "\"]);localStorage.setItem(\"unwantedDomains\", JSON.stringify(array));'>zakopuj domenę</a>");
}

function downAll() {
    var array = getBlockedDomains();
    console.log('Zakopywane domeny: ' + array);

    $('.article.clearfix.preview.dC').each(function() {
        var downvote;
        var tagLine = $(this).find('.fix-tagline');
        addDownIcon(tagLine);
        var source = $(tagLine)[0].getElementsByClassName('affect')[1].innerHTML.toString();

        if (shouldDown(source, array)) {
            this.getElementsByClassName('fix-tagline')[0].getElementsByClassName('ajax affect create')[0].click();
            downvote = this.getElementsByClassName('dropdown fix-dropdown bodyClosable');

            if (downvote.length > 0) {
                downvote = downvote[0].getElementsByClassName('ajax');
                downvote[4].click();
            } else {
                var upVote = this.getElementsByClassName('button button submit');
                upVote[0].click();
                var undo = this.getElementsByClassName('ajax');
                var that = this;

                setTimeout(function() {
                    undo[0].click();

                    setTimeout(function() {
                        downvote = that.getElementsByClassName('dropdown fix-dropdown bodyClosable')[0].getElementsByClassName('ajax');
                        downvote[4].click();
                    }, 2000);
                }, 2000);
            }
            //console.log('Zakopano: ' + $(this).find('h2').children().eq(0).attr('href'));
        }
    });
}

$(document).ready(function() {
    if (localStorage.getItem("unwantedDomains") === null) {
        setBlockedDomains(hardCodedDomains);
    }
    work();
});

function shouldDown(source, array) {

    if(jQuery.inArray(source, array) > -1) {
        return true;
    }

    return false;
}

function work() {
    addSettingsIcon();
    createPanel();
    downAll();
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址