// ==UserScript==
// @name BiliBili哔哩哔哩推荐关键词屏蔽
// @description BiliBili哔哩哔哩屏蔽与相应关键词有关的视频与直播
// @namespace https://space.bilibili.com/482343
// @author 超神越鬼
// @license 超神越鬼
// @version 2.7
// @include *bilibili.com*
// @exclude *message.bilibili.com*
// @run-at document-end
// @grant GM_setValue
// @grant GM_getValue
// @noframes
// ==/UserScript==
//dd 都屏蔽, bt 只屏蔽标题, zz 只屏蔽up主 在这里添加,运行一次后会保存,在存储里修改删除。 ("","","","","");
var dd = new Array("","","","","");
var bt = new Array("","","","","");
var zz = new Array("","","","","");
var i,c,fl,fk,x,debugx = 1,a,b;
var toObj = function( arr ){ var obj = {}; for(var temp in arr){ obj[arr[temp]] = true; } return obj;};
var toArr = function( obj ){ var arr = []; for(var temp in obj){ arr.push(temp); } return arr;};
var together = function( a,b ){ for(var temp in b){ if(b[temp]!=null && b[temp]!="" && b[temp]!="null" && b[temp].length<40)a.push(b[temp]);}};
var getUniq = function(arr){ return toArr( toObj(arr) );};
var ddx = GM_getValue("dd",new Array(""));
var btx = GM_getValue("bt",new Array(""));
var zzx = GM_getValue("zz",new Array(""));
together(ddx,dd);together(btx,bt);together(zzx,zz);
ddx =getUniq(ddx);btx =getUniq(btx);zzx =getUniq(zzx);
dd = new Array(); bt = new Array(); zz = new Array();
together(dd,ddx);together(bt,btx);together(zz,zzx);
GM_setValue("dd", dd);GM_setValue("bt", bt);GM_setValue("zz", zz);
bt.push.apply(bt,dd);
zz.push.apply(zz,dd);
function sc() {
for (x in zz) {if(zz[x] != ""){
//在线列表up主
fl = document.evaluate('//div[@class="online-list"]/div[@class="ebox"]/div[@class="dlo"]/a[contains(text(),"' + zz[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者1 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
//直播up主
fl = document.evaluate('//div[@class="live-card"]/a/div[@class="up"]/div[@class="txt"]/p[@class="name" and contains(text(),"' + zz[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者2 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="room-ctnr w-100"]/div[@class="room-card-wrapper p-relative dp-i-block"]/a/div[@class="card-info-ctnr"]/div[@class="text-info-ctnr body-bg p-relative dp-i-block v-middle"]/div[@class="room-anchor card-text p-relative"]/span[contains(text(),"' + zz[x] + '")]/../../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者3 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
//视频up主
fl = document.evaluate('//div[@class="zone-list-box"]/div[@class="video-card-common"]/a[@class="up"]/i[contains(text(),"' + zz[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者4 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="zone-list-box storey-box"]/div[@class="video-card-common"]/a[@class="up" and contains(text(),"' + zz[x] + '")]/..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者5 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="ext-box"]/div[@class="video-card-common ex-card-common"]/a[@class="ex-up"]/i[contains(text(),"' + zz[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者6 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="ext-box"]/div[@class="video-card-common ex-card-common"]/a[contains(text(),"' + zz[x] + '")]/..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者7 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="rec-list"]/div[@class="video-page-card"]/div[@class="card-box"]/div[@class="info"]/div[@class="count up"]/a[contains(text(),"' + zz[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者8 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="zone-list-box"]/div[@class="article-card"]/div/a[@class="up" and contains(text(),"' + zz[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者9 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//*[@id="reportFirst1"]/div[2]/div/div[1]/a/div/p[@class="up" and contains(text(),"' + zz[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者10 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="groom-box-m clearfix"]/div[@class="groom-module"]/a/div[@class="card-mark"]/p[@class="author" and contains(text(),"' + zz[x] + '")]/../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("作者11 ",zz[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
}}
for (x in bt) {if(bt[x] != ""){
//在线列表标题
fl = document.evaluate('//div[@class="online-list"]/div[@class="ebox"]/a[1]/p[contains(text(),"' + bt[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题1 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
//直播标题
fl = document.evaluate('//div[@class="live-card"]/a/div[@class="up"]/div[@class="txt"]/p[@class="desc" and contains(text(),"' + bt[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题2 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="room-ctnr w-100"]/div[@class="room-card-wrapper p-relative dp-i-block"]/a/div[@class="card-info-ctnr"]/div[@class="text-info-ctnr body-bg p-relative dp-i-block v-middle"]/span[contains(text(),"' + bt[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题3 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
//视频标题
fl = document.evaluate('//div[@class="zone-list-box"]/div[@class="video-card-common"]/a[@class="title" and contains(text(),"' + bt[x] + '")]/..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题4 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="zone-list-box storey-box"]/div[@class="video-card-common"]/a[@class="title" and contains(text(),"' + bt[x] + '")]/..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题5 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="ext-box"]/div[@class="video-card-common"]/a[@class="title" and contains(text(),"' + bt[x] + '")]/..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题6 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="ext-box"]/div[@class="video-card-common"]/a[@class="title"]/span[contains(text(),"' + bt[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题7 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="ext-box"]/div[@class="video-card-common ex-card-common"]/div/a/p[contains(text(),"' + bt[x] + '")]/../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题8 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="storey-box clearfix"]/div[@class="spread-module"]/a/p[@class="t" and contains(text(),"' + bt[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题9 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="rec-list"]/div[@class="video-page-card"]/div[@class="card-box"]/div[@class="info"]/a[@class="title" and contains(text(),"' + bt[x] + '")]/../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题10 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="zone-list-box"]/div[@class="article-card"]/div/a[@class="title" and contains(text(),"' + bt[x] + '")]/../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题11 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//*[@id="reportFirst1"]/div[2]/div/div[1]/a/div/p[1 and contains(text(),"' + bt[x] + '")]/../../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题12 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
fl = document.evaluate('//div[@class="groom-box-m clearfix"]/div[@class="groom-module"]/a/div[@class="card-mark"]/p[@class="title" and contains(text(),"' + bt[x] + '")]/../../..', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
if (fl.snapshotLength) {
for (i = 0; i < fl.snapshotLength; i++) {
if (debugx)console.log("标题13 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
}}
//个人页面
fl = document.querySelectorAll("#submit-video-list > ul.clearfix.cube-list > li > a.title");
if (fl.length>0) {
for (i = 0; i < fl.length; i++) {
a=0;
for (x in bt) {
if(bt[x] != ""){
if(fl[i].innerText.indexOf(bt[x])>-1){
a=1; break;
}
}
}
if (fl[i].parentElement.style.display!="none" && a==1){
if (debugx)console.log("个人页面标题隐藏 ",bt[x]," :",fl[i].innerText);
fl[i].parentElement.style.display="none";
}
/*if (fl[i].parentElement.style.display=="none" && a==0){
if (debugx)console.log("个人页面标题显示 :",fl[i].innerText);
fl[i].parentElement.style.display=" ";
}*/
}
}
//游戏频道推荐
fl = document.querySelectorAll("div.video-card-box > div > div > a > p.title");
fk = document.querySelectorAll("div.video-card-box > div > div > a > p:nth-child(5) > span");
if (fl.length>0) {
for (i = 0; i < fl.length; i++) {
a=0;
for (x in bt) {
if(bt[x] != ""){
if(fl[i].innerText.indexOf(bt[x])>-1){
a=1; break;
}
}
}
if (fl[i].parentElement.style.display!="none" && a==1){
if (debugx)console.log("频道推荐标题隐藏 ",bt[x]," :",fl[i].innerText);
fl[i].parentElement.style.display="none";
continue;
}
if (a==0){
fk = fl[i].parentElement.querySelector('p:nth-child(5) > span').innerText;
for (x in zz) {
if(zz[x] != ""){
if(fk.indexOf(zz[x])>-1){
a=1; break;
}
}
}
}
if (fl[i].parentElement.style.display!="none" && a==1){
if (debugx)console.log("频道推荐作者隐藏 ",zz[x]," :",fk);
fl[i].parentElement.style.display="none";
continue;
}
if (fl[i].parentElement.style.display=="none" && a==0){
if (debugx)console.log("频道推荐显示 :",fl[i].innerText," ",fk);
fl[i].parentElement.style.display="block";
}
}
}
return false;
}
if ((location.href.indexOf("live.bilibili.com")>-1&& location.href.split(".com/")[1].length>0)){return}
if ((location.href.indexOf("video/")>-1&& location.href.indexOf("online.html")<0) || location.href.indexOf("play/")>-1){
if (debugx)console.log("A 视频播放模式 ",location.href);
setTimeout(sc,10000);
}else{
if (debugx)console.log("B 列表模式 ",location.href);
setTimeout(sc,1500);
setInterval(sc,4500);
}