Tcafe Block User

try to take over the world!

Per 13-12-2020. Zie de nieuwste versie.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey, Greasemonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Violentmonkey.

Voor het installeren van scripts heb je een extensie nodig, zoals Tampermonkey of Userscripts.

Voor het installeren van scripts heb je een extensie nodig, zoals {tampermonkey_link:Tampermonkey}.

Voor het installeren van scripts heb je een gebruikersscriptbeheerder nodig.

(Ik heb al een user script manager, laat me het downloaden!)

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een extensie nodig, zoals {stylus_link:Stylus}.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

Voor het installeren van gebruikersstijlen heb je een gebruikersstijlbeheerder nodig.

(Ik heb al een beheerder - laat me doorgaan met de installatie!)

// ==UserScript==
// @name         Tcafe Block User
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  try to take over the world!
// @author       You
// @include      /tcafe2a.com/
// @require      http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant        GM_setValue
// @grant        GM_getValue
// @grant		 GM_addStyle
// @run-at       document-end
// ==/UserScript==
(function() { var css = document.createElement('link'); css.href = 'https://use.fontawesome.com/releases/v5.15.1/css/all.css'; css.rel = 'stylesheet'; css.type = 'text/css'; document.getElementsByTagName('head')[0].appendChild(css); })();

//document.querySelector('.top_bg').insertAdjacentHTML('beforeend', '&nbsp;<a class="BanIcon fas fa-ban" href="javascript:void(0)"></>')

// 차단유저 ID
const IDs = JSON.parse(GM_getValue("IDs", "[]"))


// 대상 node 선택
var target = document.querySelector('body')


// 감시자 인스턴스 만들기
var observer = new MutationObserver(function(mutations) {

    IDs.forEach(function (ID, index, array) {        
        let IDNode1 = document.querySelectorAll("div.user > a[onclick*=" + ID +"]")
        let IDNode2 = document.querySelectorAll("td > a[onclick*=" + ID +"]")

        if(IDNode2){
            for(var j=0; j < IDNode2.length; j++) {
                if (IDNode2[j].parentNode) {
                    console.log('게시글 번호  : ' + IDNode2[j].closest('tr').getAttribute('id') + ' -- ID : ' + ID)
                    $(IDNode2[j]).closest('tr').remove()
                }
            }
        }
        if(IDNode1 && /wr_id/.test(window.location.href)){
            for(var i=0; i < IDNode1.length; i++) {
                if (IDNode1[i].parentNode) {
                    console.log('코멘트 번호 : ' + IDNode1[i].closest('div.user').nextElementSibling.children[1].getAttribute('name') + ' -- ID : ' + ID)
                    $(IDNode1[i]).closest('div.box').remove()
                }
            }

        }
    })


})

// 감시자의 설정:
var config = { attributes: true, childList: true };

// 감시자 옵션 포함, 대상 노드에 전달
observer.observe(target, config);

// 차단 ID 저장
GM_setValue("IDs", JSON.stringify(IDs))

function BanList() {
    let getids = document.querySelector('td#sideViewRow_mb_id > span > a').getAttribute('href')
    let id =getids.replace(/.*\&stx=/,'')
    if(IDs.indexOf(id) !== -1){
        alert("이미 차단 등록되었습니다!")
    } else{
        IDs.push(id)
        GM_setValue("IDs", JSON.stringify(IDs))
    }

}


let BanIDs = document.querySelectorAll('span.member')
for (let i = 0; i < BanIDs.length; i++) {
    BanIDs[i].addEventListener("click", async function(e){
        await sleep(150)
        let entries = document.querySelector('td#sideViewRow_mb_id')
        //console.log(entries)
        entries.closest('tr').insertAdjacentHTML('afterend', '<tr height="19"><td id="Banid">&nbsp;<font color="gray">·</font>&nbsp;<span style="color: #A0A0A0;  font-family: 돋움; font-size: 11px;"><a href="javascript:void(0);">Ban ID</a></span></td></tr>')
        document.querySelector('#Banid').addEventListener("click", function(e){
            e.preventDefault()
            BanList()
        });

    })
}

function sleep(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}