再见灌水回复

Block unwanted replies

// ==UserScript==
// @name         再见灌水回复
// @author       T子大大
// @description  Block unwanted replies
// @description:zh-CN 在使用各大论坛时出现的一些已知的无用信息回复例如:沙发,大佬厉害,6666等..。将会被屏蔽显示在最下面,可以再论坛最顶层看到推荐及有用信息的回复减少问题的重复性
// @namespace    https://greasyfork.org/zh-CN/users/1031190-t%E5%AD%90
// @match        http*://*/*
// @version      0.3
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    console.log("欢迎使用-T子制作")
    const regexArray = [/0000/,/1111/,/2222/,/3333/,/4444/,/5555/,/6666/,/7777/,/8888/,/9999/,
                        /试试看/,/好东西/,/看起来/,
                        /很赞同/,/顶一下/,/学习了/,/我看看/,/沙发/,/来看看/,
                        /这个牛/,/很奈斯/,/牛牛牛/,/冇/,/冇/,/冇/,
                        /感谢分享/,/感谢无私/,/谢谢提供/,/谢谢技术/,/冇/,/冇/,
                        /感谢大大/,/感谢更新/,/冇/,/冇/,/冇/,/冇/,
                        /DDDD/,/SSSS/,/冇/,/冇/,/冇/,/冇/,
                        /感恩楼主/,/感恩大佬/,/感恩老板/,/感恩感恩/,/感恩分享/,/感恩老师/,/感恩楼组/,/感恩楼楼/,/感恩大神/,/冇/,/冇/,/冇/,
                        /感谢楼主/,/感谢大佬/,/感谢老板/,/感谢感谢/,/感谢分享/,/感谢老师/,/感谢楼组/,/感谢楼楼/,/感谢大神/,/冇/,/冇/,/冇/,
                        /多谢楼主/,/多谢大佬/,/多谢老板/,/多谢多谢/,/多谢分享/,/多谢老师/,/多谢楼组/,/多谢楼楼/,/多谢大神/,/冇/,/冇/,/冇/,

                        /谢谢楼主/,/谢谢大佬/,/谢谢老板/,/谢谢分享/,/谢谢老师/,/谢谢楼组/,/谢谢楼楼/,/谢谢大神/,/冇/,/冇/,/冇/,

                        /大佬真强/,/大佬牛逼/,/大佬真牛/,/大佬厉害/,/大佬无敌/,/冇/,

                        /楼主无私/,/楼主辛苦/,/楼主好人/,/冇/,/冇/,/冇/,
                        /作者辛苦/,/冇/,/冇/,/冇/,/冇/,/冇/,
                        /退币退币/,/冇/,/冇/,/冇/,/冇/,/冇/,

                        /学习一下/,/支持一下/,/测试一下/,/冇/,/冇/,/冇/,
                        /终于更新/,/威武霸气/,/兄弟分享/,
                        /就是大佬/,/必须支持/,/必须点赞/,
                        /太感谢了/,/多谢分享/,/晚点试试/,/非常感谢/,/非常NICE/,
                        /真的厉害/,/点赞楼主/,
                        /YYDS/,/必须学习/,/正好需要/,/我正需要/,/冇/,/冇/,
                        /下来看看/,/下来试试/,/下载看看/,/下载试试/,/下载备用/,/冇/,
                        /啊啊啊啊/,/顶顶顶顶/,/学习学习/,/好好学习/,/养好习惯/,/冇/,
                        /研究研究/,/牛逼牛逼/,/支持支持/,/冇/,/冇/,/冇/,

                        /地表最强/,/万分感谢/,/支持开源/,/岂能不顶/,/岂能不赞/,/冇/,
                        /看看隐藏/,/看看大佬/,/冇/,/冇/,/冇/,/冇/,
                        /额额额额/,/鹅鹅鹅鹅/,/看看看看/,/谢谢谢谢/,/冇/,/冇/,/冇/,
                        /百度网盘/,/吾爱破解论坛/,
                        /谢谢你楼主/,/楼主太给力/,/本帖隐藏内容/,/冇/,/冇/,/冇/,
                        /看看好不好/,/看看是不是/,/看看不说话/,/冇/,/冇/,/冇/,
                        /。。。。/,/!!!!/,/,,,,/,/冇/,/冇/,/冇/,
                       ]; // 要匹配的正则表达式数组


    let postlist = document.querySelector("#postlist");// 获取 #postlist 元素
    if(!postlist){
        return;
    }
    let postDivs = postlist.querySelectorAll("#postlist > div"); // 获取 postlist 内部的所有 div 元素

    const wp = document.querySelector("#wp"); // 找到 #wp 元素
    const newElement = document.createElement("div"); // 新建一个 div 元素
    let UselesString = "",UsefulString = "";// 无用评论 and 正常评论

    let textLength = 40; // 过滤文本的小于长度
    let UselesNum = 0,UsefulNum = 0; // 无用次数 and 有用次数

    // 遍历所有的 div 元素
    postDivs.forEach((postDiv) => {
        // 获取当前 div 元素内部的 td 元素
        let tdElement = postDiv.querySelector("tbody > tr:nth-child(1) > td.plc > div.pct > div.pcb > div.t_fsz > table > tbody > tr > td");// 获取评论

        // 如果 td 元素存在
        if (tdElement) {
            let textContent = tdElement.textContent.replace(/ /g, '').toLocaleUpperCase();// 过滤掉空格

            // 判断文本长度是否小于设定长度才进入过滤
            // 使用 Array.some() 方法检查 div 的文本内容是否与任一项匹配
            // 判断文本长度小于6直接进入过滤
            if (textContent.length <= textLength && regexArray.some(regex => textContent.match(regex)) ||textContent.length <= 6) {
                UselesString = UselesString+"<p>第"+ ++UselesNum +"条 的评论"+ textContent + "</p>";
                postDiv.remove(); // 如果匹配,则删除该 div 元素
            }else{
                UsefulString = UsefulString + "<p><a href='#" + tdElement.id + "' style='color: blue;'>第" + ++UsefulNum + "条</a> 的评论" + textContent + "</p>";
            }

        }
    });
    // 在新元素中添加内容
    newElement.innerHTML = "<p>T子 为您推荐" + UsefulNum + "条评论</p><hr>" + UsefulString;
    newElement.innerHTML = newElement.innerHTML + "<hr><p>T子 为您一共过滤掉了" + UselesNum + "条无用评论</p>" + UselesString + "</br>";
    const firstChild = wp.firstChild; // 找到第一个子元素
    wp.insertBefore(newElement, firstChild); // 将新元素插入到第一个子元素之前


    // 添加事件监听器
    document.addEventListener('click', function(event) {
        const target = event.target;
        // 如果点击的是链接
        if (target.tagName === 'A') {
            const href = target.getAttribute('href');
            // 如果链接的 href 属性以 # 开头
            if (href && href[0] === '#') {
                const id = href.slice(1);
                const targetElement = document.getElementById(id);
                // 如果目标元素存在,则滚动到该元素
                if (targetElement) {
                    event.preventDefault();
                    targetElement.scrollIntoView({ behavior: 'smooth' });
                }
            }
        }
    });

})();