[linuxdo]隐藏狗粮帖

Hide posts with the "狗粮" tag

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         [linuxdo]隐藏狗粮帖
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Hide posts with the "狗粮" tag
// @author       Ferrari
// @match        *://*.linux.do/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=linux.do
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    let isVisible = false; // 初始状态设置为不可见

    // 定义隐藏特定<tr>元素的函数
    function applyVisibilityToTr() {
        let trElements = document.querySelectorAll('tr');

        trElements.forEach(function(tr) {
            if (tr.classList.contains('tag-狗粮') ||
                tr.classList.contains('狗粮')) {
                // 根据isVisible变量来隐藏或显示<tr>
                tr.style.display = isVisible ? '' : 'none';
            }
        });
    }

    // 创建显示/隐藏按钮
    function createToggleButton() {
        let toggleButton = document.createElement('button');
        toggleButton.innerHTML = '显示狗粮帖';
        toggleButton.style.position = 'fixed';
        toggleButton.style.top = '20px';
        toggleButton.style.right = '20px';
        toggleButton.style.zIndex = 1000;

        toggleButton.addEventListener('click', function() {
            // 切换isVisible状态
            isVisible = !isVisible;
            // 更新按钮的文本
            toggleButton.innerHTML = isVisible ? '隐藏狗粮帖' : '显示狗粮帖';
            // 重新应用隐藏逻辑
            applyVisibilityToTr();
        });

        document.body.appendChild(toggleButton);
    }

    // 使用MutationObserver API来监听DOM的变化
    const observer = new MutationObserver(mutations => {
        applyVisibilityToTr();
    });

    // 配置和启动observer
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // 初始化隐藏逻辑
    createToggleButton();
    applyVisibilityToTr();
})();