您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
当前为
// ==UserScript== // @name Tcafe Block User // @namespace http://tampermonkey.net/ // @version 2.4 // @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); })(); GM_addStyle (` body { position: absolute!important; top: 0!important; bottom: 0!important; left: 0!important; right: 0!important; width: 1100px!important; margin: auto!important; } .BanList { position : absolute; left: 901px; top: 5px; z-index: 9999999; border: 2px solid #4CAF50; text-align: center; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; background-color: white; padding: .4em .4em; margin: auto; font-size: 14px; } .BanButton { position : absolute; left: 901px; top: 5px; z-index: 9999998; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; //background-color: white; padding: .4em .4em; margin: auto; font-size: 14px; } .BanList-wrapper { text-align: left; font-size: 12px; font-family: 'Nanum Gothic', "Malgun Gothic", dotum, sans-serif !important; margin: auto; } .BanCheck { text-align: center !important; margin: auto; } `); document.querySelector('table#cssImg').insertAdjacentHTML('afterend', '<div class="BanButton"><i class="BanButtonIcon far fa-angry fa-2x fa-spin"></i></>') document.querySelector('table#cssImg').insertAdjacentHTML('afterend', '<div class="BanList"><i class="BanListupdate far fa-save"></i> BanList <i class="BanListClose fas fa-times"></i></>') // 차단유저 ID var IDs = JSON.parse(GM_getValue("IDs", "[]")) var ShowHide = GM_getValue("ShowHide") if(ShowHide == 'Hide'){ $(".BanList").hide() $(".BanButton").show() } else{ $(".BanButton").hide() $(".BanList").show() } IDs.forEach(function (item) { var idx = item.ID let IDNodeC = document.querySelectorAll("div.user > 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, '(.*)',/) if (IDNodeC[i].parentNode.className ==='user' && matchIDc[1] == item.ID) { console.log('코멘트 번호 : ' + IDNodeC[i].parentNode.nextElementSibling.children[1].getAttribute('name') + ' -- 닉네임 : ' + item.NickName) IDNodeC[i].closest('div.box').remove() } } } //글목록에서 제거 if(IDNodeW){ for(var j=0; j < IDNodeW.length; j++) { var matchID = IDNodeW[j].outerHTML.match(/showSideView\(this, '(.*)',/) if (IDNodeW[j].closest('tr') && matchID[1] == item.ID) { console.log('게시글 번호 : ' + IDNodeW[j].closest('tr').getAttribute('id') + ' -- 닉네임 : ' + item.NickName) IDNodeW[j].closest('tr').remove() } } } }) function BanList(GetID, GetNickName) { let searchID = IDs.find( ({ ID }) => ID === GetID ) let searchNickName = IDs.find( ({ NickName }) => NickName === GetNickName ) if(searchNickName){ alert("[ " + GetNickName + " ] 이미 차단 등록되었습니다!") } else if(searchID){ alert("[ " + GetID + " ] 이미 차단 등록되었습니다!") } else { IDs.push({ID : GetID, NickName : GetNickName}); GM_setValue("IDs", JSON.stringify(IDs)) Reload() } } 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></>') } let AddBanIcon = document.querySelectorAll('.AddBan') 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, '(.*)',/)[1] BanList(GetID, GetNickName) }) } 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)) Reload() } } } const Bancontainer = document.querySelector('.BanList') const BanUpdate = document.querySelector('.BanListUpdate') BanUpdate.addEventListener("click", function(e){ update() }) MakeList() 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 label = document.createElement('label') 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 + " ]" label.textContent = ' ' + IDs[i].NickName checkbox.type = 'checkbox' checkbox.checked = true checkbox.setAttribute("class", 'BanCheck') checkbox.setAttribute("NickName", IDs[i].NickName) wrapper.appendChild(checkbox) wrapper.appendChild(label) Bancontainer.appendChild(wrapper) } } var floatPosition = parseInt($(".BanButton").css('top')); $(window).scroll(function() { // 현재 스크롤 위치를 가져온다. var scrollTop = $(window).scrollTop(); var newPosition = scrollTop + floatPosition + "px"; $(".BanButton").css('top', newPosition); $(".BanList").css('top', newPosition); }).scroll(); $(".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) }) })
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址