// ==UserScript==
// @name BiliBili哔哩哔哩推荐关键词屏蔽
// @description BiliBili哔哩哔哩屏蔽与相应关键词有关的视频与直播
// @namespace https://space.bilibili.com/482343
// @author 超神越鬼
// @license 超神越鬼
// @version 2.3
// @include *bilibili.com*
// @exclude *message.bilibili.com*
// @run-at document-end
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
//dd 都屏蔽, bt 只屏蔽标题, zz 只屏蔽up主 在这里添加,运行一次后会保存,在存储里修改删除。
var dd = new Array("","","","","");
var bt = new Array("","","","","");
var zz = new Array("","","","","");
var i,c,fl,x,debugx = 0;
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]!="" && 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);
GM_setValue("dd", ddx);GM_setValue("bt", btx);GM_setValue("zz", zzx);
dd=ddx;bt=btx;zz=zzx;
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();
}
}
}}
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('//ul[@class="clearfix cube-list"]/li[@class="small-item fakeDanmu-item"]/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('//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("标题12 ",bt[x]," : ", fl.snapshotItem(i));
fl.snapshotItem(i).remove();
}
}
}}
return false;
}
if (location.href.indexOf("video/")>-1 || location.href.indexOf("play/")>-1){
if (debugx)console.log("A 视频播放模式 ",location.href);
setTimeout(sc,10000);
}else{
if (debugx)console.log("B 列表模式 ",location.href);
sc; setInterval(sc,2000);
}