您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
block the user you don't want to see his reply.
当前为
// ==UserScript== // @name new script // @namespace http://tampermonkey.net/ // @version 0.2 // @description block the user you don't want to see his reply. // @author kumiko // @match *://www.cc98.org/topic/* // @match *://www.cc98.org/newTopics // @match *://www.cc98.org/focus // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_setValue // @grant GM_getValue // @license AGPL-3.0 // @require http://greasyfork.icu/scripts/2199-waitforkeyelements/code/waitForKeyElements.js?version=6349 // ==/UserScript== let starttime=new Date(); console.log ("==> Script start.", starttime ); // 添加拉黑按钮 function addUserBtn(commentlike, user_message) { let b = document.createElement('button'); b.textContent = '拉黑'; b.style.cssText = 'width: 25%;height: 25%; text-align: center; vertical-align:bottom; margin-left: 8px'; b.addEventListener('click', banUser); b.user = true; b.user_message = user_message; commentlike.appendChild(b); } function loadFocus() { console.log('Run script at focus or newTopic page'); var topics = document.querySelectorAll('.focus-topic'); topics.forEach( function(el) { var user_message = el.querySelector('.focus-topic-userName'); if (user_message) { if (removeTopic(user_message) == false) {} } } ); } // 删除当前回复 function removeReply(user_message) { var user_name = user_message.text; if (GM_getValue(user_name, false)) { try { user_message.offsetParent.remove(); console.log ("==> Rmove user's reply ", user_name ); } catch (e) {} return true; } return false; } function banUser(event) { var r = window.confirm('确认拉黑此用户?'); if (r) { var user_name = event.currentTarget.user_message.text; GM_setValue(user_name, true); removeReply(event.currentTarget.user_message); } } function loadReply() { console.log('Begin Search Reply'); var replys = document.querySelectorAll('.reply'); replys.forEach( function(el) { var user_message = el.querySelector('.userMessage-userName'); if (user_message) { var commentlike = el.querySelector('#commentlike'); if (removeReply(user_message) == false) { addUserBtn(commentlike, user_message); } } } ); } function loadHot() { console.log('Begin Search Hot Reply'); var replys = document.querySelectorAll('[id^=hot]'); replys.forEach( function(el) { var user_message = el.querySelector('.userMessage-userName'); if (user_message) { var commentlike = el.querySelector('#commentlike'); if (removeReply(user_message) == false) { addUserBtn(commentlike, user_message); } } } ); } function removeTopic(user_message) { var user_name = user_message.textContent; if (GM_getValue(user_name, false)) { try { user_message.parentElement.parentElement.remove(); console.log ("==> Rmove user's topic ", user_name ); } catch(e) {} return true; } else { return false; } } function callback(mutationsList, observer) { if (mutationsList[0].type === 'attributes') { console.log('Focus hover changes, recall loadFocus function'); } else if (mutationsList[0].type === 'childList') { console.log('Current Focus-topic number changes, recall loadFocus function'); } loadFocus(); } var mutationObserverL = new MutationObserver(callback); var mutationObserverF = new MutationObserver(callback); function focusHoverMO() { console.log('Run function focusHoverMO'); mutationObserverL.observe( document.querySelector('.focus-board-area'), {attributes: true, subtree: true} ) } function focusTopicAreaMO() { console.log('Run function focusTopicAreaMO'); mutationObserverF.observe( document.querySelector('.focus-topic-topicArea'), {childList: true} ) } waitForKeyElements("#1", loadReply); waitForKeyElements("#hot_0", loadHot); // waitForKeyElements(".focus-topic-topicArea", loadFocus); waitForKeyElements(".focus-board-area", focusHoverMO); waitForKeyElements(".focus-topic-topicArea", focusTopicAreaMO); let endtime=new Date(); console.log ("==> Script end.", endtime ); console.log("script load in", endtime.getTime()-starttime.getTime(), "ms");