Greasy Fork is available in English.

一键生成uBlock本地黑名单屏蔽代码

复制用户主页链接后通过左下角「拉黑」按钮或者按下Ctrl+F1即可一键转换为uBlock等扩展可用的屏蔽代码

// ==UserScript==
// @name                  一键生成uBlock本地黑名单屏蔽代码
// @namespace             https://axutongxue.com/
// @version               1.5
// @author                阿虚同学
// @description:          复制用户主页链接后通过左下角「拉黑」按钮或者按下Ctrl+F1即可一键转换为uBlock等扩展可用的屏蔽代码
// @license               MIT
// @match                 *://*.weibo.com/*
// @match                 *://tieba.baidu.com/*
// @match                 *://*.bilibili.com/*
// @match                 *://*.zhihu.com/*
// @match                 *://*.douban.com/*
// @grant                 GM_setClipboard
// @run-at                document-end
// @description 复制用户主页链接后通过左下角「拉黑」按钮或者按下Ctrl+F1即可一键转换为uBlock等扩展可用的屏蔽代码
// ==/UserScript==

(function() {
  if (window.location.hostname === "www.zhihu.com") {

    // 在所有class为"AuthorInfo"的div后面创建按钮
    var authorInfoDivs = document.querySelectorAll('.AuthorInfo-content');
    authorInfoDivs.forEach(function(authorInfoDiv) {
    var button = document.createElement('button');
    button.innerHTML = 'ublock拉黑';

    // 添加按钮样式属性
    button.style.outline = 'none';
    button.style.position = 'relative';
    button.style.display = 'inline-block';
    button.style.fontWeight = '400';
    button.style.whiteSpace = 'nowrap';
    button.style.textAlign = 'center';
    button.style.border = '1px solid transparent';
    button.style.cursor = 'pointer';
    button.style.transition = 'all .3s';
    button.style.userSelect = 'none';
    button.style.touchAction = 'manipulation';
    button.style.lineHeight = '1.5';
    button.style.fontSize = '12px';
    button.style.height = '24px';
    button.style.padding = '2px 6px';
    button.style.borderRadius = '6px';
    button.style.backgroundColor = '#ffffff';
    button.style.borderColor = '#d9d9d9';
    button.style.color = 'rgba(0,0,0,0.88)';
    button.style.boxShadow = '0 2px 0 rgba(0,0,0,0.02)';

    authorInfoDiv.insertAdjacentElement('afterend', button);

    button.onclick = function() {
      var clipPromise = navigator.clipboard.readText();
      clipPromise.then(function(text) {
        let zhihu = text.match(/(?<=https:\/\/www\.zhihu\.com\/(people|org)\/).*/);
        if (zhihu) {
          GM_setClipboard("##.AnswerItem:has(a.UserLink-link[href*=\"" + zhihu[0] + "\"])");
        }

        // 显示弹窗
        var toast = document.createElement('div');
        toast.innerHTML = '屏蔽代码转换成功,请自行右键打开ublock粘贴';
        toast.style.position = 'fixed';
        toast.style.left = '50%';
        toast.style.bottom = '50%';
        toast.style.transform = 'translateX(-50%)';
        toast.style.padding = '10px 20px';
        toast.style.backgroundColor = '#333333';
        toast.style.color = '#ffffff';
        toast.style.borderRadius = '4px';
        toast.style.opacity = '0';
        toast.style.transition = 'opacity 0.5s';
        document.body.appendChild(toast);

        // 延迟一定时间后隐藏弹窗
        setTimeout(function() {
          toast.style.opacity = '1';
        }, 1000);
        setTimeout(function() {
          toast.style.opacity = '0';
          setTimeout(function() {
            toast.remove();
          }, 500);
        }, 2000);
      });
    }
  });

  }


})();

var currentDomain = window.location.hostname;
if (currentDomain === "www.douban.com" || currentDomain === "www.bilibili.com" || currentDomain === "www.weibo.com" || currentDomain === "tieba.baidu.com"){

let btn = document.createElement("button");
btn.innerHTML = "拉黑";
btn.setAttribute("style", "position:fixed;bottom: 5rem;left:2rem;z-index:999;");
btn.onclick = function() {
    var clipPromise = navigator.clipboard.readText();
    clipPromise.then(function(text) {
        // alert(clipText);
        let weibo = text.match(/(?<=https:\/\/weibo\.com).*/);
        let bilibili = text.match(/(?<=https:\/\/space\.bilibili\.com\/).*/);
        let tieba = text.match(/(?<=https:\/\/tieba\.baidu\.com\/home\/main\?id=).*?(?=\?t|&fr=pb)/);
        let zhihu = text.match(/(?<=https:\/\/www\.zhihu\.com\/people\/).*/);
        let douban = text.match(/(?<=https:\/\/www\.douban\.com\/people\/).*?(?=\/)/);
        if (weibo) {
            GM_setClipboard("##.item1:has(a[href=\"" + weibo[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        } else if (bilibili) {
            GM_setClipboard("##.reply-item:has(div.user-name[data-user-id=\"" + bilibili[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        } else if (tieba) {
            GM_setClipboard("##.l_post:has(a.p_author_name[href*=\"" + tieba[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            2000);
        } else if (zhihu) {
            GM_setClipboard("##.AnswerItem:has(a.UserLink-link[href*=\"" + zhihu[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }
        else if (douban) {
            GM_setClipboard("##.reply-item:has(div.user-face>a[href*=\"" + douban[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }
    });

}
document.body.append(btn);

document.addEventListener('keydown', async keydown => {
			if (keydown.ctrlKey && keydown.keyCode == 112) {

				let text = await readClipboard();
        let weibo= text.match(/(?<=https:\/\/weibo\.com).*/);
        let bilibili = text.match(/(?<=https:\/\/space\.bilibili\.com\/).*/);
        let tieba = text.match(/(?<=https:\/\/tieba\.baidu\.com\/home\/main\?id=).*?(?=\?t|&fr=pb)/);
        let zhihu = text.match(/(?<=https:\/\/www\.zhihu\.com\/(people|org)\/).*/);
        let douban = text.match(/(?<=https:\/\/www\.douban\.com\/people\/).*?(?=\/)/);

        if(weibo){
           GM_setClipboard("##.item1:has(a[href=\""+ weibo[0] + "\"])");
           btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }

        else if(bilibili){
        GM_setClipboard("##.reply-item:has(div.user-name[data-user-id=\""+ bilibili[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴添加";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }

        else if(tieba){
        GM_setClipboard("##.l_post:has(a.p_author_name[href*=\""+ tieba[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }

        else if(zhihu){
        GM_setClipboard("##.AnswerItem:has(a.UserLink-link[href*=\""+ zhihu[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }

        else if(douban){
        GM_setClipboard("##.reply-item:has(div.user-face>a[href*=\""+ douban[0] + "\"])");
            btn.innerHTML = "屏蔽代码转换成功,请自行右键打开ublock粘贴";
            setTimeout(function() {
                btn.innerHTML = "拉黑";
            },
            3000);
        }

			}

		});

}



async function readClipboard() {
	if (!window.isSecureContext) {
		alert('不安全页面不允许读取剪贴板!');
		return
	}
	await navigator.permissions.query({name: 'clipboard-read'});
	try {
		return await navigator.clipboard.readText();
	} catch (ex) {
		alert('请允许读取剪贴板!')
	}
};