Greasy Fork

Greasy Fork is available in English.

X键阴阳人屏蔽器

在知乎和微博打开评论区后,按下X键屏蔽不友善言论。折叠评论区并再次打开即恢复。

当前为 2022-07-23 提交的版本,查看 最新版本

// ==UserScript==
// @name         X键阴阳人屏蔽器
// @namespace    https://mr-metasequoia.github.io/tools/YYGQ/
// @version      0.4
// @description  在知乎和微博打开评论区后,按下X键屏蔽不友善言论。折叠评论区并再次打开即恢复。
// @author       水杉metasequoia
// @match        *://*.zhihu.com/*
// @match        *://*.weibo.com/*
// @icon         https://s2.loli.net/2022/07/21/J7PsSYgkdze9fRV.png
// @grant        none
// @license      水杉协议
// ==/UserScript==

//不要放太多阴阳怪气词!严重影响性能。
var badword = ['全在美方','贏麻了','润','底层','孝','磕头','老爷','的','是']//可以通过“的&是”来做测试!

var where = ['CommentContent css-1ygdre8','wbpro-list']

function findLen() {
    for(let i=0;i<where.length;i++)
        {
            if(document.getElementsByClassName(where[i]).length!=0)
            {
                let len = document.getElementsByClassName(where[i]).length
                if(i==0)
                {
                    return [len,"知乎"]
                }
                else if(i==1)
                {
                    return [len,"微博"]
                }
            }
        }
    return [0,"未知"]
}

(function() {

    document.addEventListener('keydown',e=>{

        var key = e.key;

        //comment和len放里面,是为了每次监听新的值
        //这里的两个comment主要为了让后面代码简短一点好看。
        var zhihuComment = document.getElementsByClassName("CommentContent css-1ygdre8")
        var weibo1Comment = document.getElementsByClassName("wbpro-list")//这个div包括了评论的次级评论

        //微博有2种评论区classname,但我现在不太确定这到底在哪里生效,是否可以被wbpro-list取代。如果后续需要添加,直接填在where数组里。
        //var weibo2Comment = document.getElementsByClassName("card-review s-ptb10")

        var len=findLen()[0]
        var loc=findLen()[1]

        if(loc=="微博"&&document.getElementsByClassName("wbpro-form focus Form_wbproform_1F8KL").length!=0)//在微博,并且焦点在评论区
        {
            //微博评论区展开后,输入框避免自动获得焦点
            document.getElementsByClassName("wbpro-form focus Form_wbproform_1F8KL")[0].innerHTML = document.getElementsByClassName("wbpro-form Form_wbproform_1F8KL")[0].innerHTML
        }

        if(key==='x')//x的意思是抽象手势“哒咩!”,主要是为了避免和知乎微博的快捷键冲突。
        {
            console.log(loc+"评论数量:"+len)

            for(let i=0;i<len;i++)
            {
                for(let j=0;j<badword.length;j++)
                {
                    let bad = new RegExp(badword[j],'g');
                    if(loc=="知乎")
                    {
                        if(zhihuComment[i].innerHTML.indexOf("<img src=\"https://pic2.zhimg.com/v2-3846906ea3ded1fabbf1a98c891527fb.png\" class=\"sticker\">") != -1)
                        {
                            document.getElementsByClassName("CommentContent css-1ygdre8")[i].innerHTML = "「阴阳人の怪話」"
                        }else if((parseInt(zhihuComment[i].innerHTML.split("?").length) - 1)>3)//一个评论中使用超过3个问号
                        {
                            document.getElementsByClassName("CommentContent css-1ygdre8")[i].innerHTML = "「急急國王の碎念」"
                        }
                        else
                        {
                            document.getElementsByClassName("CommentContent css-1ygdre8")[i].innerHTML = zhihuComment[i].innerHTML.replace(bad,'🌳')
                        }
                    }
                    else if(loc=="微博")
                    {
                        if((parseInt(weibo1Comment[i].innerHTML.split("?").length) - 1)>3)
                        {
                            document.getElementsByClassName("wbpro-list")[i].innerHTML = "「急急國王の碎念」"
                        }else
                        {
                            document.getElementsByClassName("wbpro-list")[i].innerHTML = weibo1Comment[i].innerHTML.replace(bad,'🌳')
                        }
                    }else
                    {
                        console.log("错误!这里不是知乎or微博")
                    }
                }
            }

        }

    })

})();

//我知道这代码质量很差,但闭着眼睛当作黑盒来使用的话其实也还彳亍吧?