// ==UserScript== // @name CC98 Block // @namespace http://tampermonkey.net/ // @version 0.1 // @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 https://greasyfork.org/scripts/2199-waitforkeyelements/code/waitForKeyElements.js?version=6349 // @downloadURL none // ==/UserScript== let starttime=new Date(); console.log ("==> Script start.", starttime ); // 添加拉黑按钮 function addBtn(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_message = user_message; commentlike.appendChild(b); } // 删除当前回复 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 fully_loaded() { 'use strict'; console.log('Begin Search Reply'); var replys = document.querySelectorAll('.reply'); console.log(replys); console.log(document); console.log(document.getElementById('0')); replys.forEach( function(el) { debugger; var user_message = el.querySelector('.userMessage-userName'); if (user_message) { var commentlike = el.querySelector('#commentlike'); if (removeReply(user_message) == false) { addBtn(commentlike, user_message); } } } ); } function fully_loaded_hot() { 'use strict'; console.log('Begin Search Hot Reply'); var replys = document.querySelectorAll('[id^=hot]'); replys.forEach( function(el) { debugger; var user_message = el.querySelector('.userMessage-userName'); if (user_message) { var commentlike = el.querySelector('#commentlike'); if (removeReply(user_message) == false) { addBtn(commentlike, user_message); } } } ); } function fully_focus_loaded() { 'use strict'; 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 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; } } waitForKeyElements("#1", fully_loaded); waitForKeyElements("#hot_0", fully_loaded_hot); waitForKeyElements(".focus-topic-topicArea", fully_focus_loaded); let endtime=new Date(); console.log ("==> Script end.", endtime ); console.log("script load in", endtime.getTime()-starttime.getTime(), "ms");