您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在照顾到狗屎们自尊心的前提下屏蔽狗屎们的干扰
当前为
'use strict'; // ==UserScript== // @name Bilibili UP主透明黑名单 // @namespace http://space.bilibili.com/13127303/transparentBlacklist // @version 1.0.0 // @description 在照顾到狗屎们自尊心的前提下屏蔽狗屎们的干扰 // @author 阿布相机手册 // @supportURL http://space.bilibili.com/13127303 // @match http*://*.bilibili.com/* // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js // @run-at document-end // ==/UserScript== let pageStyles = 'div.list-item.blacklisted > div.con > div.user,div.list-item.blacklisted > div.con > p.text' +',div.reply-item.blacklisted' +'{ opacity: 0.1 !important; }'; let $ = jQuery; let tbl = (window.localStorage.tbl || '').split(';'); function inBlacklist(id) { return tbl.includes(id); } let blackListActions = [ //[查找的容器,容器内对比id的元素,元素进一步的操作] ['div.comment-list div.list-item','div.user a.name', (e) => $(e).data('usercard-mid').toString()], ['div.comment-list div.reply-item','a.reply-face', (e) => $(e).data('usercard-mid').toString()], ]; function hideBlacklists() { blackListActions.forEach((action)=>{ let [container,idItem,idProcessor] = action; $(container).each((i,c)=>{ let item = idItem ? $(idItem,c) : $(c); if(item && item.length > 0){ let id = idProcessor(item.get(0)); if(inBlacklist(id)){ $(c).addClass('blacklisted'); } } }) }) } function unique(a) { return a.filter(function (value, index, self) { return self.indexOf(value) === index; }); } let waitJquery = setInterval(function (_) { if ($) { clearInterval(waitJquery); //install styles let styleElem = $('<style>'); styleElem.text(pageStyles); $(document.body).append(styleElem); $(document.body).addClass('jquery-ready'); hideBlacklists(); setInterval(function (_) { hideBlacklists() }, 1000); //register blacklist $(document.body).on('click', 'a.name', function (e) { if (e.shiftKey) { let id = $(e.currentTarget).data('usercard-mid').toString(); if (id && confirm('\u6DFB\u52A0 ' + id + ' \u5230\u9ED1\u540D\u5355\uFF1F')) { e.preventDefault(); tbl.push(id); window.localStorage.tbl = unique(tbl).join(';'); hideBlacklists(); } } }); } }, 1000);