您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
티카페 특정 유저 글과 코멘트 숨기기
当前为
// ==UserScript== // @name Tcafe Block User // @namespace http://tampermonkey.net/ // @version 4.0 // @description 티카페 특정 유저 글과 코멘트 숨기기 // @author DandyClubs // @match *://tcafe2a.com/* // @require https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js // @grant GM_setValue // @grant GM_getValue // @grant GM_addStyle // @run-at document-start // ==/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); })(); GM_addStyle (` @import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c&family=Noto+Sans+KR&family=Poppins&display=swap'); body, .ko, .ko small{ font-family: 'Poppins', 'M PLUS Rounded 1c', 'Noto Sans KR', sans-serif !important; } body.is-pc .ko { font-size: 12px !important; } .BanList { position: fixed !important; left: auto; right: 10px; border: 2px solid Tomato !important; text-align: center; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; background-color: white !important; padding: .25em .5em; margin: auto; font-size: 14px; border-radius: 4px; -webkit-box-sizing: border-box; box-sizing: border-box; z-index: 999999999 !important; } .BanButton { position: fixed !important; left: auto; right: 10px; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; background-color: white !important; padding: .25em; margin: auto; font-size: 16px; border-radius: 2em; -webkit-box-sizing: border-box; box-sizing: border-box; z-index: 999999999 !important; } .BanList-wrapper { text-align: left !important; font-size: 12px !important; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; z-index: 999999999 !important; height: auto; margin: auto; } .BanCheck { text-align: center !important; margin: auto; } .BanCounts.fa-layers-counter { background-color: #ff253a !important; border-radius: 1em; -webkit-box-sizing: border-box; box-sizing: border-box; color: #fff !important; height: 1.5em; line-height: 1; max-width: 5em; min-width: 1.5em; overflow: hidden; padding: .25em; right: 0; text-overflow: ellipsis; top: 0; -webkit-transform: scale(0.65); transform: scale(0.65); -webkit-transform-origin: top right; transform-origin: top right; } .BanCounts.fa-layers-counter, .fa-layers-text { display: inline-block; position: absolute; text-align: center; } .BanNotice { display: inline-block; position: absolute; text-align: center; border-radius: 4px; color: white !important; background:Tomato !important; overflow: hidden; padding: .25em 1em; text-overflow: ellipsis; font-size: 12px; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; } .w-side .f-side-wrap { font-size: 13px !important; } .fas.fa-user-slash { display: inline-block; position: absolute; text-align: center; overflow: hidden; padding: .25em; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { display: inline-block !important; } `); $(document).ready(function(){ // 차단유저 ID var IDs = JSON.parse(GM_getValue("IDs", "[]")) var IDsCounts = IDs.length var ShowHide = GM_getValue("ShowHide") document.querySelector("body").insertAdjacentHTML('afterbegin', '<div class="BanButton"><i class="BanButtonIcon far fa-angry fa-2x fa-spin" style="color:#FF2D00 !important;"></i><span class="BanCounts fa-layers-counter" style="background:Tomato;">' + IDsCounts + '</span></>') document.querySelector("body").insertAdjacentHTML('afterbegin', '<div class="BanList"><i class="Banupdate far fa-save" style="color:#ff0000;"></i> BanList <i class="BanListClose fas fa-times" style="color:Tomato;"></i></>') if(ShowHide == 'Hide'){ $(".BanList").hide() $(".BanButton").show() } else{ $(".BanButton").hide() $(".BanList").show() } let BanIDs = document.querySelectorAll('span.member') for (let i = 0; i < BanIDs.length; i++) { BanIDs[i].parentNode.insertAdjacentHTML('afterend', ' <a class="AddBan" href="javascript:void(0)"><i class="fas fa-user-slash" style="color:#FF2D00 !important;"></i></> <span class="BanNotice fa-layers-counter" style="background:Tomato; display:none;"></span>') } let Addnab = document.querySelectorAll(".fas.fa-user-slash") for (let i = 0; i < Addnab.length; i++) { if(Addnab[i].closest('b')){ Addnab[i].closest('div').addEventListener("mouseover",togglebbtn,false); Addnab[i].closest('div').addEventListener("mouseout",togglebbtn,false); } else{ Addnab[i].closest('td').addEventListener("mouseover",togglebbtn,false); Addnab[i].closest('td').addEventListener("mouseout",togglebbtn,false); } Addnab[i].style.visibility = "hidden"; } IDs.forEach(function (item) { var idx = item.ID let IDNodeC = document.querySelectorAll('div > b > a[onclick*="' + idx +'"]') let IDNodeW = document.querySelectorAll('td > a[onclick*="' + idx +'"]') //코멘트 제거 if(IDNodeC && /wr_id/.test(window.location.href)){ for(var i=0; i < IDNodeC.length; i++) { var matchIDc = IDNodeC[i].outerHTML.match(/showSideView\(this, (\'[\w]+\')/) if (IDNodeC[i].closest('div.media') && matchIDc[1] == idx) { console.log('코멘트 번호 : ' + IDNodeC[i].closest('div.media').getAttribute('id') + ' -- 닉네임 : ' + item.NickName) IDNodeC[i].closest('div.media').style.display = 'none'; } } } //글목록에서 제거 if(IDNodeW){ for(var j=0; j < IDNodeW.length; j++) { var matchID = IDNodeW[j].outerHTML.match(/showSideView\(this, (\'[\w]+\')/) if (IDNodeW[j].closest('tr') && matchID[1] == idx) { console.log('게시글 번호 : ' + IDNodeW[j].closest('tr').getAttribute('id') + ' -- 닉네임 : ' + item.NickName) IDNodeW[j].closest('tr').style.display = 'none'; } } } }) /* console.log(document.querySelector('i.fa.fa-bars').nextElementSibling.textContent) if(/wr_id/.test(window.location.href) && !document.querySelector('i.fa.fa-bars')){ var listurl = window.location.href.match(/bbs(\/board.php.+)&wr_id/) document.querySelector(".fa.fa-comments").parentElement.insertAdjacentHTML('beforebegin', '<a href=".' + listurl[1] + '" class="btn btn-black btn-sm"><i class="fa fa-bars"></i><span class="hidden-xs"> 목록</span></a>') } if(/wr_id/.test(window.location.href) && document.querySelector('i.fa.fa-bars')){ var listurl = window.location.href.match(/bbs(\/board.php.+)&wr_id/) document.querySelector('i.fa.fa-bars').style.display = '' } */ function BanList(GetID, GetNickName, AddBanNoticei) { let searchID = IDs.find( ({ ID }) => ID === GetID ) let searchNickName = IDs.find( ({ NickName }) => NickName === GetNickName ) if(searchNickName){ //alert("[ " + GetNickName + " ] 이미 차단 등록되었습니다!") AddBanNoticei.textContent = GetNickName + ' 이미 차단 등록되었습니다!' $(AddBanNoticei).slideDown('fast') setTimeout(function(){ $(AddBanNoticei).slideUp('slow') }, 2000); } else if(searchID){ //alert("[ " + GetID + " ] 이미 차단 등록되었습니다!") AddBanNoticei.textContent = GetID + ' 이미 차단 등록되었습니다!' $(AddBanNoticei).slideDown('fast') setTimeout(function(){ $(AddBanNoticei).slideUp('slow') }, 2000); } else { IDs.push({ID : GetID, NickName : GetNickName}); GM_setValue("IDs", JSON.stringify(IDs)) document.querySelector('.BanCounts').textContent = IDs.length AddBanNoticei.textContent = GetNickName + ' 차단 등록되었습니다!' $(AddBanNoticei).slideDown('fast') setTimeout(function(){ $(AddBanNoticei).slideUp('slow') }, 1000); Reload() } } function update() { let BanCheck = document.querySelectorAll('.BanCheck') //console.log(BanCheck) for (let i = 0; i < BanCheck.length; i++) { if (BanCheck[i].checked == false){ var RemoveNickName = BanCheck[i].getAttribute('NickName') //console.log(AddID) var removeIndex = IDs.map(function(item) { return item.NickName; }).indexOf(RemoveNickName); // remove object IDs.splice(removeIndex, 1); } if(i == BanCheck.length -1){ GM_setValue("IDs", JSON.stringify(IDs)) document.querySelector('.BanCounts').textContent = IDs.length Reload() } } } const Bancontainer = document.querySelector('.BanList') document.querySelector('.Banupdate').addEventListener("click", function(e){ update() }) function Reload() { var element = document.querySelectorAll('.BanList-wrapper') Array.prototype.forEach.call( element, function( node ) { node.parentNode.removeChild( node ); }); MakeList() } function MakeList() { for (let i = 0; i < IDs.length; i++) { let wrapper = document.createElement('div') let checkbox = document.createElement('input') wrapper.classList.add('BanList-wrapper') //label.textContent = ' ' + IDs[i].NickName + " [ " + document.querySelectorAll("td > a[onclick*=" + IDs[i].ID +"]").length + " | " + document.querySelectorAll("div.user > a[onclick*=" + IDs[i].ID +"]").length + " ]" checkbox.type = 'checkbox' checkbox.checked = true checkbox.setAttribute("class", 'BanCheck') checkbox.setAttribute("NickName", IDs[i].NickName) Bancontainer.appendChild(wrapper) wrapper.appendChild(checkbox) checkbox.insertAdjacentHTML('afterend', " " + IDs[i].NickName) } } $(".BanListClose").click(function(){ $(".BanList").slideUp(function() { $(".BanButton").slideDown() ShowHide = 'Hide' GM_setValue("ShowHide", ShowHide) }) }) $(".BanButtonIcon").click(function(){ $(".BanButton").slideUp(function() { $(".BanList").slideDown() ShowHide = 'Show' GM_setValue("ShowHide", ShowHide) }) }) let AddBanIcon = document.querySelectorAll('.AddBan') let AddBanNotice = document.querySelectorAll('.BanNotice') for (let i = 0; i < AddBanIcon.length; i++) { AddBanIcon[i].addEventListener("click", function(e){ let getinfo = AddBanIcon[i].previousElementSibling.getAttribute('onclick') let GetNickName = AddBanIcon[i].previousElementSibling.textContent let GetID = getinfo.match(/showSideView\(this, (\'[\w]+\')/)[1] BanList(GetID, GetNickName, AddBanNotice[i]) AddBanIcon[i].childNodes[0].style = "color: Indigo !important;" }) } MakeList() function togglebbtn(e){ var bbtn = e.currentTarget.querySelector('.fa-user-slash'); if (bbtn){ if (e.type == "mouseover") bbtn.style.visibility = ""; else bbtn.style.visibility = "hidden"; } } })
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址