Greasy Fork

Greasy Fork is available in English.

CC98 Block

block the user you don't want to see her reply.

当前为 2021-11-17 提交的版本,查看 最新版本

// ==UserScript==
// @name         CC98 Block
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  block the user you don't want to see her 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 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");