Naver Cafe Blacklist Userscript

Naver Cafe Hide blacklist

// ==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==


function ui2(e, p_memberid, lv_open_type, p_nickname, p_clubid, p_memberinfo, p_entireBoardStaff, p_memberleveluse, p_cluburl, p_activityStopExecutable, p_menuid, sMode) {
    e = e || window.event;
    var sType = ""
    , elIFrame = self.frameElement;
    var ajax = new Ajax("/CafeMemberExistCheck.nhn",{
        method: "POST",
        params: {
            clubid: p_clubid,
            memberid: p_memberid
        },
        onLoad: onCafeMemberCheckAjaxLoad
    });
    if (!ui_sBeforeID) {
        ui_sBeforeID = "menu_parent";
    }
    sNewID = "elFloatLayer_" + Math.floor(Math.random() * 100000);
    if (uiFactory == null) {
        uiFactory = new uiFactoryObject2();
    }
    sType = "loadingBar";
    if (elIFrame) {
        var nPosTop = Element.realPos(Event.ready(e).element).top
        , nFrameHeight = document.documentElement.offsetHeight
        , nDiff = (nPosTop + _nUIMaxHeight) - nFrameHeight
        , nNewHeight = nFrameHeight + nDiff;
        if (nNewHeight > nFrameHeight) {
            elIFrame.style.height = nNewHeight + "px";
        }
    }
    uiFactory.createUi(ui_sBeforeID, sNewID, sType);
    ui_sBeforeID = sNewID;
    var bApplyMember = false;
    var bSecedeMember = false;
    var bActivityStop = false;
    function onCafeMemberCheckAjaxLoad() {
        try {
            var oJsonData = eval("(" + arguments[0].responseText + ")");
            if (oJsonData.exist != "true") {
                bSecedeMember = true;
            }
            if (oJsonData.apply == "true") {
                bApplyMember = true;
            }
            if (oJsonData.activityStop == "true") {
                bActivityStop = true;
            }
            sType = "menu";
            uiFactory.setParameter(p_memberid, lv_open_type, p_nickname, p_clubid, p_memberinfo, p_memberleveluse, p_cluburl, p_menuid);
            var htParam = {
                p_memberid: p_memberid,
                lv_open_type: lv_open_type,
                p_nickname: p_nickname,
                p_clubid: p_clubid,
                p_memberinfo: p_memberinfo,
                p_entireBoardStaff: p_entireBoardStaff,
                p_memberleveluse: p_memberleveluse,
                p_cluburl: p_cluburl,
                p_activityStopExecutable: p_activityStopExecutable,
                bApplyMember: bApplyMember,
                bSecedeMember: bSecedeMember,
                bActivityStop: bActivityStop
            };
            if (elIFrame) {
                htParam.fAfterCreate = function() {
                    nFrameHeight = document.documentElement.offsetHeight;
                    var cafe_main_IframeHeight = parseInt(top.$("cafe_main").style.height);
                    if (nNewHeight > nFrameHeight) {
                        newCafeMainIframeHeight = (cafe_main_IframeHeight + (nNewHeight - nFrameHeight)) + "px";
                        elIFrame.style.height = nNewHeight + "px";
                        top.$("cafe_main").style.height = newCafeMainIframeHeight;
                    }
                }
                ;
            }
            uiFactory.createUi(ui_sBeforeID, sNewID, sType, htParam);
        } catch (e) {}
    }
    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) {
        ui_memberid = f;
        if (k == null) {
            ui_open_type = "3";
        }
        ui_open_type = k.toString();
        if (g == null) {
            ui_nickname = "";
        } else {
            ui_nickname = g;
        }
        if (d != null) {
            ui_menuid = d;
        }
        ui_clubid = c;
        ui_memberinfo = h;
        ui_memberleveluse = e;
        ui_cluburl = b;
    };
    this.createUi = function(f, h, b, c) {
        if (!document.getElementById(f)) {
            var e = document.createElement("DIV");
            e.id = "menu_parent";
            e.style.display = "block";
            e.style.position = "absolute";
            e.className = "perid-layer";
            document.body.appendChild(e);
        }
        var k = document.getElementById(f);
        k.id = h;
        k.innerHTML = "";
        if (b == "loadingBar") {
            k.style.width = "109px";
            var l = document.createElement("dl");
            l.className = "nm_load";
            var g = document.createElement("dt");
            g.innerHTML = sLoadBarTmpl;
            l.appendChild(g);
            var d = document.createElement("dd");
            d.innerHTML = "정보를 불러오는<br>중입니다";
            l.appendChild(d);
            k.appendChild(l);
        } else {
            if (b == "menu") {
                k.style.width = "209px";
                k.innerHTML = "";
                var m = document.createElement("UL");
                m.appendChild(this.createFragment(c));
                k.appendChild(m);
                if (typeof c.fAfterCreate == "function") {
                    c.fAfterCreate();
                }
            }
        }
    };
    this.createFragment = function(g) {
        var f = this.setUiArr(g);
        var d;
        d = document.createDocumentFragment();
        var b = false;
        for (var c = 0, e = f.length; c < e; c++) {
            if (f[c] == "|" && c + 1 < e) {
                b = true;
            } else {
                d.appendChild(this.setMenuItem(f[c], b, g));
                b = false;
            }
        }
function AddBlackList(){
    uiFactory.hideUi();
    var blockedID = window.localStorage.getItem("blockedID").split(',');
    var blockedName = window.localStorage.getItem("blockedName").split(',');
    var i;
    for (i = 0; i < blockedID.length; i++) {
        if (blockedID[i] == '') {blockedID[i] = g.p_memberid; blockedName[i] = g.p_nickname; alert('추가됨 '+blockedID.length); break; }
        if (blockedID[i] == g.p_memberid) {alert('이미 차단된 사용자입니다.'); break;}
    }
    if (i >= blockedID.length) {
        blockedID[i] = g.p_memberid;
        blockedName[i] = g.p_nickname;
        alert('추가됨 '+blockedID.length);
    }
    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));
        //d.appendChild(this.setMenuItem2('cluburl:  '+g.p_cluburl, false, g));
        //d.appendChild(this.setMenuItem2('activityStopExecutable: '+g.p_activityStopExecutable, false, g));
        //d.appendChild(this.setMenuItem2('bApplyMember: '+g.bApplyMember, false, g));
        //d.appendChild(this.setMenuItem2('bSecedeMember: '+g.bSecedeMember, false, g));
        //d.appendChild(this.setMenuItem2('bActivityStop: '+g.bActivityStop, false, g));
        return d;
    };
    this.setUiArr = function(c) {
        var b = [];
        if (c.p_memberinfo == "me" || c.p_memberinfo == "st" || c.p_memberinfo == "ma") {
            if (c.bApplyMember) {
                b.push("inviteCafe");
                b.push("sendMemo");
                b.push("viewBlog");
                return b;
            }
            if (c.bSecedeMember) {
                if (c.p_memberinfo == "ma" || c.p_entireBoardStaff == "true") {
                    b.push("viewArticle");
                    return b;
                }
            } else {
                b.push("viewArticle");
                if (c.p_memberid != g_sUserId) {
                    b.push("inviteCafeChat");
                    b.push("sendMemo");
                }
            }
        }
        b.push("|");
        if (c.p_memberid != g_sUserId) {
            if (c.p_memberinfo == "st" || c.p_memberinfo == "ma") {
                if (c.p_memberleveluse == "true") {
                    b.push("updateLevel");
                }
                if (c.p_activityStopExecutable == "true") {
                    if (c.bActivityStop == false) {
                        b.push("activityStop");
                    } else {
                        b.push("activityStopRelease");
                    }
                }
                b.push("kickMember");
                b.push("|");
            } else {
                if (c.p_activityStopExecutable == "true") {
                    if (c.bActivityStop == false) {
                        b.push("activityStop");
                    } else {
                        b.push("activityStopRelease");
                    }
                    b.push("|");
                }
            }
        }
        if (c.p_memberid != g_sUserId) {
            b.push("subscribeNaverMe");
        }
        b.push("inviteCafe");
        b.push("|");
        b.push("viewBlog");
        return b;
    };
    this.setMenuItem = function(c, f, g) {
        var b;
        b = document.createElement("Li");
        if (f) {
            b.className = "line";
        }
        var d = document.createElement("A");
        d.href = "#";
        d.onclick = function() {
            execMenuItem(c, g.p_memberid, g.p_membernick);
            return false;
        };
        var e = document.createElement("SPAN");
        e.innerHTML = uiMenuArr[c];
        d.appendChild(e);
        b.appendChild(d);
        return b;
    };
    this.setMenuItem2 = function(text, line, func) {
        var ret;
        ret = document.createElement("Li");
        if (line) {
            ret.className = "line";
        }
        var atag = document.createElement("A");
        atag.href = "#";
        if(func != undefined) atag.onclick = func;
        var e = document.createElement("SPAN");
        e.innerHTML = text;
        atag.appendChild(e);
        ret.appendChild(atag);
        return ret;
    };
    this.hideUi = function() {
        oCL.hide(ui_sBeforeID);
    };
}
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');
            if (nicka == null) continue;
            var str = nicka.getAttribute("onclick").split(',');
            p_memberid = str[1].trim().replace(/\'|\"/g,'');
            p_nickname = str[3].trim().replace(/\'|\"/g,'');
            p_title = articlelist.children[i].querySelector('span.aaa a').text;
            p_href = articlelist.children[i].querySelector('span.aaa a').href;
            articlelistindex = i;
            ListInfo[ListInfo.length] =  {
                p_memberid: p_memberid,
                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;';
            //articlelist.children[num+1].style = '';
        } else if (nFilterState == 2) {
            articlelist.children[num].style = 'display: none;';
            //articlelist.children[num+1].style = 'display: none;';
        } 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) {
                    shownhide(ListInfo[i].articlelistindex, 0);
                } else {
                    //founded
                    shownhide(ListInfo[i].articlelistindex, nFilterState);// 0: showall 1: black 2: hide
                    cnt++;
                }
            }
            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) {
                    articlelist.children[ListInfo[i].articlelistindex].querySelector('span.aaa a').style = '';
                    articlelist.children[ListInfo[i].articlelistindex].querySelector('span.aaa').removeChild(e);
                }
            }
            return;
        }
        var packedList = [];
        var packedListIndex = [];
        for (i = 0; i < ListInfo.length; i++) {
            var idx = packedList.indexOf(ListInfo[i].p_memberid);
            if (idx == -1) {
                packedList[packedList.length] = ListInfo[i].p_memberid;
                packedListIndex[packedListIndex.length] = i;
            } else {//p_memberid = packedList[idx], ListInfo_i = packedListIndex[idx]    ListInfo[packedListIndex[idx]].articlelistindex
                var paaa = articlelist.children[ListInfo[packedListIndex[idx]].articlelistindex].querySelector('span.aaa');
                var e = paaa.querySelector('select');
                if (!e) {
                    paaa.querySelector('a').style = 'display: none;';

                    e = document.createElement("select");
                    e.style = 'width: 300px; ';
                    e.onchange = function () {
                        var chosenoption = this.options[this.selectedIndex];
                        if (chosenoption.value != "none") {
                            window.open(chosenoption.value, "cafe_main", "");
                        }
                    };

                    var op1 = document.createElement("option");
                    op1.text = "---select---";
                    op1.setAttribute('value', 'none');
                    e.add(op1);
                    op1 = document.createElement("option");
                    op1.text = paaa.querySelector('a').text;
                    op1.setAttribute('value', paaa.querySelector('a').href);
                    e.add(op1);

                    paaa.insertBefore(e, paaa.childNodes[0]);
                }
                var saaa = articlelist.children[ListInfo[i].articlelistindex].querySelector('span.aaa');
                var op1 = document.createElement("option");
                op1.text = saaa.querySelector('a').text;
                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);

QingJ © 2025

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