您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
b站评论过滤器
// ==UserScript== // @name bili_rebuild // @description b站评论过滤器 // @license MIT // @namespace dreamcenter // @version 2.0.0.2 // @match *://*.bilibili.com/video/* // @match *://*.bilibili.com/opus/* // @match *://space.bilibili.com/*/dynamic // @grant GM_xmlhttpRequest // ==/UserScript== /*******************************下方内容可以修改***************************************/ let banMap = [ 'test','随机','恶心','病','纯','ch','CH','op','策划' ]; /*******************************下方内容不要修改***************************************/ function judgeIfBanned(raw) { for(var key of banMap) { if (raw.includes(key)) return true; } return false; } (function() { 'use strict'; window.onload=function(){ var startMark = false setInterval(function(){ // 判断是否可以开始执行核心程序 if (startMark){ runCore(); } else { // 判断节点是否渲染完毕 startMark = document.querySelector("bili-comments") != null } },100) } function runCore (){ // 获取整楼评论 var reviews = document.querySelector("bili-comments").shadowRoot.querySelectorAll("#feed > bili-comment-thread-renderer"); for(var review of reviews){ // 判断该元素是否为null(可能元素还没渲染出来) // 检查楼主评论是否过滤过,过滤则不再计算 if (review.getAttribute('filtered') == null){ // 获取楼主评论 var comment = review.shadowRoot.querySelector('#comment') // 获取楼主评论内容 var commentText = comment.shadowRoot.querySelector("#content > bili-rich-text").shadowRoot.querySelector("#contents").innerHTML; // 状态设置成已经过滤判断过 review.setAttribute('filtered',true) // 过滤判断 if(judgeIfBanned(commentText)) { review.style.display = "none"; } } // 获取回复评论集 var replies = review.shadowRoot.querySelector("#replies > bili-comment-replies-renderer").shadowRoot.querySelectorAll("#expander-contents > bili-comment-reply-renderer:not([filtered])") for(var reply of replies) { // 获取回复评论内容 var replyCommentText = reply.shadowRoot.querySelector("#main > bili-rich-text").shadowRoot.querySelector("#contents").innerHTML; // 状态设置成已经过滤判断过 reply.setAttribute('filtered',true) // 过滤判断 if(judgeIfBanned(replyCommentText)) { reply.style.display = "none"; } } } } })();