Bilibili UP主透明黑名单

在照顾到狗屎们自尊心的前提下屏蔽狗屎们的干扰

'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);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址