您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
屏蔽b站首页推荐中的指定up
当前为
// ==UserScript== // @name Bili-Recommended-List-Blocker // @description 屏蔽b站首页推荐中的指定up // @icon http://www.bilibili.com/favicon.ico // @namespace https://gf.qytechs.cn/zh-CN/users/xxxxx // @version 1.0 // @author kuzen // @run-at document-start // @include *://www.bilibili.com/ // @include *://www.bilibili.com/?* // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @license MIT // ==/UserScript== (function () { 'use strict'; var search = function(nums, target) { const n = nums.length; let left = 0, right = n - 1, ans = n; while (left <= right) { let mid = ((right - left) >> 1) + left; if (target <= nums[mid]) { ans = mid; right = mid - 1; } else { left = mid + 1; } } return ans; }; var removeDuplicates = function(nums) { const n = nums.length; if (n === 0) { return 0; } let fast = 1, slow = 1; while (fast < n) { if (nums[fast] !== nums[fast - 1]) { nums[slow] = nums[fast]; ++slow; } ++fast; } return slow; }; var addBlockUid = function(blockList, uid) { var index = search(blockList, uid); if (blockList[index] !== uid) { blockList.splice(index, 0, uid); } GM_setValue('blockList', JSON.stringify(blockList)); } var blockDivCss = '.bili-block-uid .bili-block-uid__icon{pointer-events:none;user-select:none;width:22px;height:22px;color:#fff}.bili-block-uid__icon{pointer-events:none;user-select:none;width:22px;height:22px;color:#fff;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgdmlld0JveD0iMCAwIDQ4IDQ4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4wMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjQgNDRDMzUuMDQ1NyA0NCA0NCAzNS4wNDU3IDQ0IDI0QzQ0IDEyLjk1NDMgMzUuMDQ1NyA0IDI0IDRDMTIuOTU0MyA0IDQgMTIuOTU0MyA0IDI0QzQgMzUuMDQ1NyAxMi45NTQzIDQ0IDI0IDQ0WiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZjNmM2YzIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0xNSAxNUwzMyAzMyIgc3Ryb2tlPSIjZjNmM2YzIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPg==)}.bili-block-uid{display:-webkit-flex;display:flex;align-items:center;justify-content:center;position:absolute;top:72px;right:8px;width:28px;height:28px;border-radius:6px;cursor:pointer;background-color:rgba(33,33,33,.8);z-index:9;transform:translateZ(0)}.bili-block-uid .bili-block-uid__tip{pointer-events:none;user-select:none;position:absolute;bottom:-6px;right:-10px;transform:translateY(100%);font-size:12px;color:#fff;border-radius:4px;line-height:18px;padding:4px 8px;background-color:rgba(0,0,0,.8);white-space:nowrap}'; var style_tag = document.createElement('style'); style_tag.innerHTML = blockDivCss; document.head.appendChild(style_tag); var blockList = JSON.parse(GM_getValue('blockList') || '[]'); blockList.sort(); removeDuplicates(blockList); console.log(GM_getValue('blockList')) // identical array to arr var blockContext = document.createElement("div"); blockContext.setAttribute("class", "bili-video-card") blockContext.innerHTML = '<a target="_blank" data-spmid="333.851" data-mod="b_7265636f6d6d656e64" data-idx="1""><div class="bili-video-card__image __scale-player-wrap"><div class="bili-video-card__image--wrap"><div class="bili-watch-later" style="display: none;"><svg class="bili-watch-later__icon"><use xlink:href="#widget-watch-later"></use></svg><span class="bili-watch-later__tip" style="display: none;"></span></div><picture class="v-img bili-video-card__cover"><source srcset="//s6.jpg.cm/2021/12/23/LbJgzO.jpg" type="image/jpg"><img src="//s6.jpg.cm/2021/12/23/LbJgzO.jpg" alt="黑名单内容" loading="eager" onload="fsrCb()"></picture></div></div></a><div class="bili-video-card__info __scale-disable"><a target="_blank" data-spmid="333.851" data-mod="b_7265636f6d6d656e64" data-idx="1""><div class="v-avatar bili-video-card__avatar"><picture class="v-img v-avatar__face"><source srcset="//s6.jpg.cm/2021/12/23/LbJ0Iw.jpg" type="image/jpg"><img src="//s6.jpg.cm/2021/12/23/LbJ0Iw.jpg" alt="黑名单" loading="lazy" onload=""></picture></div></a><div class="bili-video-card__info--right"><a target="_blank" data-spmid="333.851" data-mod="b_7265636f6d6d656e64" data-idx="1""><h3 class="bili-video-card__info--tit" title="黑名单内容">黑名单内容</h3></a><p class="bili-video-card__info--bottom"><a class="bili-video-card__info--owner" data-spmid="333.851" data-mod="b_7265636f6d6d656e64" data-idx="1""><span class="bili-video-card__info--author">已屏蔽</span></a></p></div></div>'; // item.replaceChildren(block_dom); var blockDiv = document.createElement("div"); blockDiv.setAttribute("class", "bili-block-uid"); // blockDiv.setAttribute("style", "display: none;"); blockDiv.innerHTML = '<svg class="bili-block-uid__icon"></svg><span class="bili-block-uid__tip" style="display: none;">屏蔽用户</span>' blockDiv.innerHTML = '<svg class="bili-block-uid__icon""></svg>' var clickBtn = function(event) { console.log(event.currentTarget.parentElement); var cardInfo = event.currentTarget.parentElement.getElementsByClassName("bili-video-card__info")[0]; var uidStr = cardInfo.firstElementChild["href"] var uid = uidStr.substr(uidStr.lastIndexOf("/") + 1); console.log(uid + " 已屏蔽"); addBlockUid(blockList, uid); event.currentTarget.parentElement.lastElementChild.replaceChildren(blockContext.cloneNode(true)); return false; }; // bili-video-card__wrap setTimeout(function () { var list = document.getElementsByClassName('recommend-container__2-line')[0].getElementsByClassName('bili-video-card__wrap'); for (let item of list) { // item.replaceChildren(blockDom); // 判断是否屏蔽 // var cardView = item.getElementsByClassName("bili-video-card__image--wrap")[0]; var uidStr = item.lastElementChild.firstElementChild["href"] var uid = uidStr.substr(uidStr.lastIndexOf("/") + 1); // console.log(uid); var index = search(blockList, uid); if (blockList[index] == uid) { item.replaceChildren(blockContext.cloneNode(true)); } // break; // 添加屏蔽按钮 var bd = blockDiv.cloneNode(true); bd.addEventListener("click", clickBtn); item.parentElement.insertBefore(bd, item.parentElement.childNodes[1]); } }, 1000); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址