Greasy Fork

Greasy Fork is available in English.

再见灌水回复

Block unwanted replies

当前为 2023-02-25 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

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

(function() {
    'use strict';
    console.log("欢迎使用-T子制作")
    const regexArray = [/1111/,/2222/,/3333/,/4444/,/5555/,/6666/,
                        /7777/,/8888/,/9999/,/试试看/,/好东西/,/看起来/,
                        /很赞同/,/顶一下/,/学习了/,/我看看/,/沙发/,/来看看/,
                        /这个牛/,/很奈斯/,/牛牛牛/,/冇/,/冇/,/冇/,
                        /感谢分享/,/感谢无私/,/谢谢提供/,/谢谢技术/,/冇/,/冇/,
                        /感谢大大/,/感谢更新/,/冇/,/冇/,/冇/,/冇/,
                        /DDDD/,/SSSS/,
                        /感恩楼主/,/感恩大佬/,/感恩老板/,/感恩感恩/,/感恩分享/,/感恩老师/,
                        /感恩楼组/,/感恩楼楼/,/感恩大神/,/冇/,/冇/,/冇/,
                        /感谢楼主/,/感谢大佬/,/感谢老板/,/感谢感谢/,/感谢分享/,/感谢老师/,
                        /感谢楼组/,/感谢楼楼/,/感谢大神/,/冇/,/冇/,/冇/,
                        /多谢楼主/,/多谢大佬/,/多谢老板/,/多谢多谢/,/多谢分享/,/多谢老师/,
                        /多谢楼组/,/多谢楼楼/,/多谢大神/,/冇/,/冇/,/冇/,
                        /谢谢楼主/,/谢谢大佬/,/谢谢老板/,/谢谢谢谢/,/谢谢分享/,/谢谢老师/,
                        /谢谢楼组/,/谢谢楼楼/,/谢谢大神/,/冇/,/冇/,/冇/,
                        /大佬真强/,/大佬牛逼/,/大佬真牛/,/大佬厉害/,/大佬无敌/,/冇/,
                        /楼主无私/,/楼主辛苦/,/冇/,/冇/,/冇/,/冇/,
                        /作者辛苦/,/冇/,/冇/,/冇/,/冇/,/冇/,
                        /学习一下/,/支持一下/,/测试一下/,/冇/,/冇/,/冇/,
                        /终于更新/,/威武霸气/,/兄弟分享/,
                        /就是大佬/,/必须支持/,/必须点赞/,
                        /太感谢了/,/多谢分享/,/晚点试试/,/非常感谢/,/非常NICE/,
                        /真的厉害/,/点赞楼主/,
                        /YYDS/,/必须学习/,/正好需要/,/我正需要/,/冇/,/冇/,
                        /下来看看/,/下来试试/,/下载看看/,/下载试试/,/下载备用/,/冇/,
                        /啊啊啊啊/,/顶顶顶顶/,/学习学习/,/好好学习/,/养好习惯/,/冇/,
                        /研究研究/,/牛逼牛逼/,/支持支持/,/冇/,/冇/,/冇/,
                        /地表最强/,/万分感谢/,/支持开源/,/冇/,/冇/,/冇/,
                        /看看隐藏/,/看看大佬/,/冇/,/冇/,/冇/,/冇/,
                        /额额额额/,/鹅鹅鹅鹅/,/看看看看/,/冇/,/冇/,/冇/,
                        /百度网盘/,/吾爱破解论坛/,
                        /谢谢你楼主/,/楼主太给力/,/本帖隐藏内容/,/冇/,/冇/,/冇/,
                        /看看好不好/,/看看是不是/,/看看不说话/,/冇/,/冇/,/冇/,
                        /。。。。/,/!!!!/,/,,,,/,/冇/,/冇/,/冇/,
                       ]; // 要匹配的正则表达式数组


    let postlist = document.querySelector("#postlist");// 获取 #postlist 元素
    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();// 过滤掉空格
            // console.log(textContent);

            // 判断文本长度是否小于设定长度才进入过滤
            // 使用 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{
                // console.log(tdElement);
                // console.log(textContent);
                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' });
                }
            }
        }
    });


})();