Greasy Fork

Greasy Fork is available in English.

No More Dramas - TJUPT

torrent page filter

当前为 2024-06-25 提交的版本,查看 最新版本

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         No More Dramas - TJUPT
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  torrent page filter
// @author       colder
// @match        https://*.tjupt.org/torrents.php*
// @match        https://*.tju.pt/torrents.php*
// @match        https://*.pterclub.com/torrents.php*
// @license MIT
// ==/UserScript==


(function() {
    'use strict';

    // 要过滤的字符集
    const filterChars = ["-GodDramas", "短剧"];

    // 需要检查的类名列表
    const targetClasses = ['triple_sticky_bg','double_sticky_bg', 'sticky_bg', 'normal_bg', 'sticky_top', 'sticky_normal', 'rowfollow'];

    // 检查文本是否包含任意过滤字符
    function containsFilterChar(text) {
        return filterChars.some(char => text.includes(char));
    }

    // 隐藏包含过滤字符的<tr>
    function hideFilteredTRs() {
        targetClasses.forEach(cls => {
            document.querySelectorAll(`tr.${cls}`).forEach(tr => {
                if (containsFilterChar(tr.textContent)) {
                    tr.style.display = 'none';
                }
            });
        });
    }

    // 使用MutationObserver来监视DOM变化
    function observeDOMChanges() {
        const observer = new MutationObserver((mutations) => {
            // 每当DOM变化时,重新应用过滤逻辑
            hideFilteredTRs();
        });

        // 配置观察器:
        const config = { childList: true, subtree: true };

        // 传入目标节点和观察选项
        observer.observe(document.body, config);
    }

    // 立即执行一次隐藏逻辑,确保在页面加载后立即应用
    hideFilteredTRs();

    // 设置DOM变化观察器
    observeDOMChanges();
})();