Greasy Fork 支持简体中文。

妖火吃肉回复过滤

屏蔽妖火论坛派肉贴中的吃肉回复楼层

// ==UserScript==
// @name         妖火吃肉回复过滤
// @namespace    https://www.yaohuo.me/bbs/userinfo.aspx?touserid=20740
// @version      1.0.0
// @description  屏蔽妖火论坛派肉贴中的吃肉回复楼层
// @author       SiXi
// @icon         https://yaohuo.me/css/favicon.ico
// @match        https://www.yaohuo.me/bbs-*.html
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // 定义屏蔽关键词
    const blockKeywords = ["吃", "7了", "肉", "恰", "口乞", "chi"];

    // 检查当前页面是否是肉贴
    function isLijinPost() {
        return document.querySelector('span.lijin') !== null;
    }

    // 屏蔽包含屏蔽关键词的楼层
    function filterReplies() {
        // 获取所有楼层
        const posts = document.querySelectorAll('.forum-post');

        posts.forEach(post => {
            // 判断是否为吃肉回复楼层
            const rewardInfo = post.querySelector('.admin-actions .reward-info');
            if (rewardInfo) {
                // 获取楼层正文内容
                const content = post.querySelector('.post-content .retext');
                if (content) {
                    const text = content.textContent.trim();
                    // 如果正文包含任何屏蔽关键词,屏蔽该楼层
                    if (blockKeywords.some(keyword => text.includes(keyword))) {
                        post.style.display = 'none'; // 隐藏该楼层
                    }
                }
            }
        });
    }

    // 监听页面AJAX加载新回复内容动态
    function observeDynamicContent() {
        const targetNode = document.getElementById('YH_show_tip');
        if (targetNode) {
            // 使用MutationObserver来监听AJAX加载的内容
            const observer = new MutationObserver((mutationsList, observer) => {
                mutationsList.forEach(mutation => {
                    if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                        filterReplies(); // 新内容加载后筛选
                    }
                });
            });
            observer.observe(targetNode, { childList: true });
        }
    }

    // 初始加载时检查页面并过滤内容
    if (isLijinPost()) {
        filterReplies(); // 过滤肉贴吃肉回复
    }

    // 监听AJAX加载的下一页内容
    observeDynamicContent();
})();