Greasy Fork

Naver Cafe Blacklist Userscript

Naver Cafe Hide blacklist

当前为 2017-09-01 提交的版本,查看 最新版本

// ==UserScript==
// @name         Naver Cafe Blacklist Userscript
// @namespace    BossLeader
// @version      1.1.4
// @require
// @description  Naver Cafe Hide blacklist
// @author       BossLeader
// @match        http://cafe.naver.com/*
// @grant        none
// ==/UserScript==
    if (sMode == "WIDGET") {
        var nDiffTop = $("lm-list").scrollTop;
        var nHeightElement = Event && Event.ready ? Event.ready(e).element.offsetHeight : 13;
        nDiffTop = -(nDiffTop == 0 ? 0 : nDiffTop - nHeightElement);
        oCL.show(sNewID, e, nDiffTop);
    } else {
        if(top.$("cafe_main").__show && top.$("cafe_main").__show == true)
        oCL.show(sNewID, e);
    }
}
function uiFactoryObject2() {
    var a;
    this.setParameter = function(f, k, g, c, h, e, b, d) {
    }
    window.localStorage.setItem("blockedID", blockedID);
    window.localStorage.setItem("blockedName", blockedName);
    top.$('cafe_main').SetBFilter();
    return false;
}
function GoogleSearch(s) {
    uiFactory.hideUi();
    window.open(encodeURI('http://www.google.com/search?q='+s));
    return false;
}
        d.appendChild(this.setMenuItem2('#차단하기#', true, AddBlackList));
        d.appendChild(this.setMenuItem2(g.p_nickname, true, function(){ GoogleSearch(g.p_nickname); } ));
        d.appendChild(this.setMenuItem2(g.p_memberid, false, function(){ GoogleSearch(g.p_memberid); } ));
        d.appendChild(this.setMenuItem2('comment - not yet', true));
        //d.appendChild(this.setMenuItem2('lv: '+g.lv_open_type, false, g));
        //d.appendChild(this.setMenuItem2('clubid: '+g.p_clubid, false, g));
        //d.appendChild(this.setMenuItem2('memberinfo: '+g.p_memberinfo, false, g));
        //d.appendChild(this.setMenuItem2('entireBoardStaff: '+g.p_entireBoardStaff, false, g));
        //d.appendChild(this.setMenuItem2('memberleveluse: '+g.p_memberleveluse, false, g));
}
function Ready(){
    $("front-img").innerHTML = 'Iframe is loaded.';
    var x = $('cafe_main');
    var y = (x.contentWindow || x.contentDocument);
    if (y.document) y = y.document;
    x.__show = false;
    x.SetBFilter = function() {SetBFilter(); };
    
    var articlelist = y.querySelector('form > .board-box > tbody');
    var ListInfo = [];
    if (articlelist)  {
        for (i = 0; i < articlelist.childElementCount; i++) {
            var p_memberid, p_nickname, p_title, p_href, articlelistindex;
            var nicka = articlelist.children[i].querySelector('.p-nick a');
                p_nickname: p_nickname,
                p_title: p_title,
                p_href: p_href,
                articlelistindex: articlelistindex
            };
        }
    }

    function shownhide(num, nFilterState) { // 0: showall 1: black 2: hide
        if(!articlelist) return;
        if (nFilterState == 1) {
            articlelist.children[num].style = 'background-color:#505050;';
        } else {
            articlelist.children[num].style = '';
            //articlelist.children[num+1].style = '';
        }
    }

    //alert(ListInfo.length + ' ' + ListInfo[1].p_memberid);
    function SetBFilter() {
        if(!articlelist) return;
        function BFilter() {
            var blockedID = storage.getItem("blockedID").split(",");
            var blockedName = storage.getItem("blockedName").split(",");
            var nFilterState = Number(storage.getItem("nFilterState"));
            if (blockedID[0] === null || blockedID[0] === '') {
                //alert('BlockedUsers : 0');
                for (i = 0; i < ListInfo.length; i++) {
                    shownhide(ListInfo[i].articlelistindex, 0);// 0: showall 1: black 2: hide
                }
                ToggleFilter.text = '필터 OFF...';
                return;
            }
            var cnt = 0;
            for (i = 0; i < ListInfo.length; i++) {
                if (blockedID.indexOf(ListInfo[i].p_memberid) == -1) {
            }
            if (nFilterState == 0) {
                ToggleFilter.text = '필터 OFF...';
            } else {
                ToggleFilter.text = '필터'+nFilterState+' ON (차단: '+cnt+')';
            }
        };
        BFilter();
        var nMemberViewState = Number(storage.getItem("nMemberViewState"));
        if (nMemberViewState == 0) {
            for (i = 0; i < ListInfo.length; i++) {
                var e = articlelist.children[ListInfo[i].articlelistindex].querySelector('span.aaa select');
                if (e) {
                op1.setAttribute('value', saaa.querySelector('a').href);
                e.add(op1);

                shownhide(ListInfo[i].articlelistindex, 2);
            }
        }
    }


    var z = y.querySelectorAll('.p-nick a');
    var pop = false;
    for (i = 0; i < z.length; i++) {
         // if(z[i].getAttribute("onclick") == null) {dsfsdf();}
        var str = (z[i]?(z[i].getAttribute("onclick")?z[i].getAttribute("onclick").replace('ui(','ui2('):''):'');
        //z[i].getAttribute("onclick").replace('ui(','ui2(') ;
        if (str == '') pop = true;
        z[i].setAttribute('onclick',ui2.toString()+uiFactoryObject2.toString()+str);
    }
    if (pop && z[0] && z[0].getAttribute("onclick") ) { z[0].click(); }
    
        //alert(z[0].getAttribute("onclick"));

    function toBool(a) { return ("false" === a) ? false : true; }

    var storage = window.localStorage;
    CheckUserData(storage);

    var ShowBlackList, ResetBlackList, ToggleFilter, btnMemberView;
    //헤드에 AddButton
    var head = y.querySelector('.fr');
    if (head){
        var line = head.querySelector('span.fl');
        if (line) {
            function addButton(str, id){
                //구분자.
                var fl = line.cloneNode(true);
                head.insertBefore(fl, head.childNodes[0]);
                //버튼1 - Show BlackList
                if (id == '') return;
                var d = document.createElement('div');
                d.setAttribute('id',id);
                d.style = 'float: left; margin-top: 3px; margin-right: 5px;';
                var sa = document.createElement("a");
                sa.setAttribute('href','#');
                var t = document.createTextNode(str);
                sa.appendChild(t);
                d.appendChild(sa);
                head.insertBefore(d, head.childNodes[0]);
                return sa;
            }
            ShowBlackList = addButton('차단목록 보기', 'ShowBlackList');
            ShowBlackList.onclick  = function() {
                var blockedID = storage.getItem("blockedID").split(",");
                var blockedName = storage.getItem("blockedName").split(",");
                if (blockedID[0] === null || blockedID[0] === '') {
                    alert('BlockedUsers : 0'); return false;
                }
                var str = 'BlockedUsers : '+blockedID.length+'\r';
                for (i = 0; i < blockedID.length; i++) {
                    str = str + blockedName[i] + '/' + blockedID[i] + '\r';
                }
                alert(str); return false;
            };
            ResetBlackList = addButton('목록 초기화', 'ResetBlackList');
            ResetBlackList.onclick = function() {
                var txt;
                var r = confirm("차단 목록을 삭제합니다! \r삭제된 목록은 복구할 수 없습니다!");
                if (r == true) {
                    storage.setItem("blockedID","");
                    storage.setItem("blockedName","");
                    storage.setItem("nFilterState", 0);
                    storage.setItem("nMemberViewState", 0);
                    SetBFilter();
                } else {
                    txt = "You pressed Cancel!";
                }
                return false;
            };
            ToggleFilter = addButton('필터ON/OFF', 'ToggleFilter');
            ToggleFilter.onclick = function() {
                var nFilterState = Number(storage.getItem("nFilterState"));
                nFilterState++; if (nFilterState > 2) { nFilterState = 0; }
                storage.setItem("nFilterState", nFilterState);
                SetBFilter();
                return false;
            };
            SetBFilter();
            addButton('','');
            btnMemberView = addButton('모아보기', 'btnMemberView');
            btnMemberView.onclick = function() {
                var nMemberViewState = Number(storage.getItem("nMemberViewState"));
                nMemberViewState++; if (nMemberViewState > 1) { nMemberViewState = 0; }
                storage.setItem("nMemberViewState", nMemberViewState);
                SetBFilter();
                return false;
            };

        }
    }
x.__show = true;
//$(posts).each(function (){});//for debug


    function CheckUserData(storage)
    {
        // create default values if there isnt any storage (on first run)
        if (storage.getItem("blockedID") == null){
            storage.setItem("blockedID", "");
        }
        if (storage.getItem("blockedName") == null){
            storage.setItem("blockedName", "");
        }
        if (storage.getItem("nFilterState") == null){
            storage.setItem("nFilterState", "0");
        }
        if (storage.getItem("nMemberViewState") == null){
            storage.setItem("nMemberViewState", "0");
        }
    }
}

var a = document.getElementById('cafe_main');
if (a) a.addEventListener("load", Ready);