最新消息
使用油猴插件进行关键词屏蔽
使用油猴插件进行关键词屏蔽
3个月前 9 阅读
  • 首页
  • /
  • 学习
  • /
  • 正文
  • 使用油猴插件进行关键词屏蔽

    本文转载自:https://www.nodeseek.com/post-109394-1

    关键词列表【关键词仅为个人主观添加,具体自己增删】

    viie,tuan,跑路云,bestvm,富婆,台妹,usercloud,wise,ocbc,giffgaff,京东,esim,redotpay,batvm,电话卡,虚拟卡,dv,尼区,epic,nnr,庆余年,88vip,bagevm,8v,1v,32v,host-c,尼日利亚,绿云,follow,Yxvm

    改良版 相较于原版的区别是关键词不区分大小写,注释掉了帖子内容和楼层的关键词屏蔽,只根据标题屏蔽,你也可以取消注释。

    // ==UserScript==
    // @name         nodeseek论坛屏蔽词
    // @namespace    http://tampermonkey.net/
    // @version      2023-12-30
    // @description  为nodeseek论坛添加屏蔽词功能
    // @author       bigQY
    // @match        *://www.nodeseek.com/*
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=nodeseek.com
    // @grant        none
    // @require      https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
    // @license MIT
    // @downloadURL https://update.greasyfork.org/scripts/483014/nodeseek%E8%AE%BA%E5%9D%9B%E5%B1%8F%E8%94%BD%E8%AF%8D.user.js
    // @updateURL https://update.greasyfork.org/scripts/483014/nodeseek%E8%AE%BA%E5%9D%9B%E5%B1%8F%E8%94%BD%E8%AF%8D.meta.js
    // ==/UserScript==
    
    (function() {
        'use strict';
        // 设置按钮
        var headerDiv = document.querySelector("#nsk-head")
        var btn = document.createElement("button");
        btn.innerHTML = "屏蔽词设置";
        btn.classList.add("btn");
        btn.style = "margin-left: 10px;";
        headerDiv.appendChild(btn);
    
        // 设置面板
        var panel = document.createElement("div");
        panel.innerHTML = `
        <div id="ns-block-words-setting">
          <h2>屏蔽词设置</h2>
          <input type="checkbox" id="ns-block-words-checkbox-enable" name="ns-block-words-checkbox-enable" checked />
          <label for="ns-block-words-checkbox-enable">启用屏蔽词</label>
          <br/>
          <input type="checkbox" id="ns-block-words-checkbox-hide" name="ns-block-words-checkbox-enable" checked />
          <label for="ns-block-words-checkbox-hide">不显示被屏蔽的帖子或楼层</label>
          <br/>
          <p>屏蔽词列表(逗号分隔)</p>
          <textarea id='ns-block-words' style='width: 98%; height: 50vh;'></textarea>
          <br/>
          <div style="display: flex;justify-content: end;margin:10px">
            <button id='ns-block-words-btn-save' class='btn' style="margin:0 10px">保存</button>
            <button id='ns-block-words-btn-cance' class='btn'>取消</button>
          </div>
        </div>
        `;
        panel.style = `
        position: fixed;
        top: 10vh;
        left: 10vw;
        z-index: -1;
        display: block;
        width: 80vw;
        height: 0;
        background-color: rgba(255, 255, 255, 0.8);
        border-radius: 10px;
        backdrop-filter: blur(10px);
        padding:20px;
        transition: all 0.5s;
        opacity: 0;
        overflow: hidden;
        `;
        document.body.appendChild(panel);
    
        // 设置按钮点击事件
        btn.onclick = function() {
            showSetting();
            document.getElementById("ns-block-words").value = localStorage.getItem("ns-block-words");
        };
        // 保存按钮点击事件
        document.getElementById("ns-block-words-btn-save").onclick = function() {
            localStorage.setItem("ns-block-words", document.getElementById("ns-block-words").value);
            localStorage.setItem("ns-block-words-enable", document.getElementById("ns-block-words-checkbox-enable").checked);
            localStorage.setItem("ns-block-words-hide", document.getElementById("ns-block-words-checkbox-hide").checked);
            hideSetting();
        };
        // 取消按钮点击事件
        document.getElementById("ns-block-words-btn-cance").onclick = function() {
            hideSetting();
        };
    
        function showSetting() {
            panel.style.zIndex = 9998;
            panel.style.opacity = 1;
            panel.style.height = "80vh";
        }
    
        function hideSetting() {
            panel.style.opacity = 0;
            panel.style.height = "0";
            setTimeout(function() {
              if(panel.style.opacity == 0){
                panel.style.zIndex = -1;
              }
            }, 500);
        }
    
        // dom ready初始化
        $(document).ready(function() {
            // 屏蔽词列表
            var blockWords = localStorage.getItem("ns-block-words");
            if (blockWords == null) {
                blockWords = "";
            }
            blockWords = blockWords.split(",");
            // 启用屏蔽词
            var enable = localStorage.getItem("ns-block-words-enable");
            enable = enable == 'true' ? true : false;
            var checkbox = document.getElementById("ns-block-words-checkbox-enable");
            checkbox.checked = enable;
            // 隐藏屏蔽词
            var hide = localStorage.getItem("ns-block-words-hide");
            hide = hide == 'true' ? true : false;
            var checkbox2 = document.getElementById("ns-block-words-checkbox-hide");
            checkbox2.checked = hide;
            // 屏蔽词列表
            var textarea = document.getElementById("ns-block-words");
            textarea.value = blockWords.join(",");
            // 屏蔽词
            if (enable) {
              /*
                // 帖子界面
                var comments = document.querySelectorAll(".content-item");
                if (comments != null) {
                    comments.forEach(function(comment) {
                        var content = comment.querySelector(".post-content");
                        var contentText = content.innerText.toLowerCase(); // 将文本转换为小写
                        blockWords.forEach(function(word) {
                            if (contentText.indexOf(word.toLowerCase()) != -1) { // 比较时将屏蔽词转换为小写
                                if (word==="") return;
                                if (hide) {
                                    comment.style.display = "none";
                                } else {
                                    content.innerHTML = `<span style="color: red;">触发屏蔽词:${word}</span>`
                                }
                            }
                        });
                    });
                }
                */
                // 列表界面
                var posts = document.querySelectorAll(".post-list-content");
                if (posts != null) {
                    posts.forEach(function(post) {
                        var content = post.querySelector(".post-title > a");
                        var contentText = content.innerText.toLowerCase(); // 将文本转换为小写
                        blockWords.forEach(function(word) {
                            if (contentText.indexOf(word.toLowerCase()) != -1) { // 比较时将屏蔽词转换为小写
                                if (word==="") return;
                                if (hide) {
                                    post.parentNode.style.display='none'
                                } else {
                                    content.innerHTML = `<span style="color: red;">触发屏蔽词:${word}</span>`
                                }
                            }
                        });
                    });
                }
            }
        });
    })();
    0

    评语 (0)

    取消
    您是第 36106 位访客