搜书小组(404吧)-主页 帖子过滤器

精准过滤敏感标题

目前為 2025-03-04 提交的版本,檢視 最新版本

// ==UserScript==
// @name         搜书小组(404吧)-主页 帖子过滤器
// @namespace    https://gf.qytechs.cn/zh-CN/users/1441970-%E5%8D%97%E7%AB%B9
// @version      0.2
// @description  精准过滤敏感标题
// @author       南竹
// @match        https://404zu.com/*
// @license      MIT
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_registerMenuCommand
// ==/UserScript==

(function() {
    'use strict';

    // 初始化关键词(支持中文)
    let KEYWORDS = JSON.parse(JSON.stringify(
        GM_getValue('keywords', ["媚黑", "NTR", "绿母", "绿妈", "绿文", "绿黑", "黑人", "黑鬼", "绿帽", "逆子难防", "加绿", "改绿", "纯绿"]) || []
    ));

    // 核心过滤逻辑
    function filterTitles() {
        // 选择所有区块的帖子:最新主题、最新回复、热帖、精华帖子
        document.querySelectorAll(`
            ul.category_newlist li a,          /* 最新主题 */
            .replaybox li a,                   /* 最新回复 */
            .hottiebox li a,                   /* 热帖 */
            .goodtiebox li a                   /* 精华帖子 */
        `).forEach(titleLink => {
            const text = titleLink.textContent.toLowerCase();

            // 匹配逻辑(支持部分匹配)
            const shouldHide = KEYWORDS.some(kw =>
                text.includes(kw.toLowerCase())
            );

            if (shouldHide) {
                titleLink.closest('li').style.display = 'none';
            }
        });
    }

    // 持久化存储
    function saveKeywords() {
        GM_setValue('keywords', JSON.parse(JSON.stringify(KEYWORDS)));
    }

    // 右键菜单管理
    GM_registerMenuCommand("管理关键词", () => {
        const cmd = prompt("请输入操作:\n1. 添加关键词\n2. 删除关键词");
        if (cmd === '1') {
            const word = prompt("输入要屏蔽的关键词:").trim();
            if (word && !KEYWORDS.includes(word)) {
                KEYWORDS.push(word);
                saveKeywords();
                filterTitles();
            }
        } else if (cmd === '2') {
            const word = prompt("输入要删除的关键词:").trim();
            KEYWORDS = KEYWORDS.filter(k => k !== word);
            saveKeywords();
            filterTitles();
        }
    });

    // 动态加载监听(优化性能)
    const observer = new MutationObserver(mutations => {
        if (mutations.some(m => m.addedNodes.length > 0)) {
            setTimeout(filterTitles, 300); // 防抖处理
        }
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // 初始执行
    window.addEventListener('load', () => {
        setTimeout(filterTitles, 1500); // 等待页面完全加载
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址