feat: 📽️ 更新 B站 相关

This commit is contained in:
sve1r 2023-02-01 15:09:16 +08:00
parent f41aa35762
commit 11062ef97e
3 changed files with 139 additions and 318 deletions

View File

@ -9,8 +9,8 @@
// @TgChannel https://t.me/ddgksf2021
// @Contribute https://t.me/ddgksf2013_bot
// @Feedback 📮 ddgksf2013@163.com 📮
// @UpdateTime 2023-01-10
// @ConfigVersion V0.0.95
// @UpdateTime 2023-01-22
// @ConfigVersion V2.0.102
// @Attention 如果广告仍然存在,请清除缓存或卸载应用重新安装
// @Attention 如需引用请注明出处,谢谢合作!
// @Function 去广告配置(自用,不定期更新)
@ -64,20 +64,26 @@
//2023-01-06 41、压缩并优化B站脚本内容大小由24kb->5kb
//2023-01-07 42、删除脚本中未匹配的$request.url的Part内容
//2023-01-09 43、屏蔽B站漫画底部中间的手机图片活动
//2023-01-10 44、调整粉色B站与白色B站在直连或代理四种情况下顶部tab删除白B番剧和影视顶部重复tab如果你在使用白B请在规则后加上#out=proto
//2023-01-10 44、调整粉色B站与白色B站在直连或代理四种情况下顶部tab删除白B番剧和影视顶部重复tab
//2023-01-16 45、去除白B动态中“可能感兴趣的up主”card
//2023-01-16 46、更新proto脚本去除ipad端视频播放页面右上角的推荐广告
//2023-01-17 47、proto动态去广告正则匹配添加grpc.biliapi.net(方便surge用户)兴许后面QX也会跟进MITM h2
//2023-01-18 48、屏蔽B站直播页顶部轮播图本来想把白B直播顶部的大ICON移植到粉B但粉B不识别V1
//2023-01-22 49、处理B站直播间右下角商品推广
hostname = app.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com, *.bilibili.com, *.bilibili.*, grpc.biliapi.net,*biliapi.net, -broadcast.chat.bilibili.com, -*cdn*.biliapi.net, -*tracker*.biliapi.net
hostname = app.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com, *.bilibili.com, *.bilibili.*, grpc.biliapi.net,api.biliapi.net, -broadcast.chat.bilibili.com, -*cdn*.biliapi.net, -*tracker*.biliapi.net
# BiliBili_哔哩哔哩_屏蔽直播页顶部轮播图@ddgksf2013
^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-interface\/v2\/index\/feed url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_屏蔽直播间商品广告浮窗@ddgksf2013
^https?:\/\/api\.live\.bilibili\.com\/xlive\/e-commerce-interface\/v\d\/ecommerce-user\/get_shopping_info\? url reject-dict
xlive\/e-commerce-interface\/v\d\/ecommerce-user\/get_shopping_info\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_屏蔽广告浮窗@ddgksf2013
^https?:\/\/api\.bilibili\.com\/pgc\/activity\/deliver\/material\/receive url reject-dict
# BiliBili_哔哩哔哩_屏蔽IP请求@ddgksf2013
^https?:\/\/app\.bilibili\.com\/x\/resource\/ip url reject
# BiliBili_哔哩哔哩_屏蔽DefaultWord@ddgksf2013
^https?:\/\/app\.bilibili\.com\/bilibili\.app\.interface\.v1\.Search\/Default url reject
^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.interface\.v1\.Search\/Default url reject
# BiliBili_哔哩哔哩_屏蔽首页右上活动@ddgksf2013
^https?:\/\/app\.bilibili\.com\/x\/resource\/top\/activity url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_观影页面去广告@ddgksf2013
@ -86,7 +92,7 @@ hostname = app.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com, *.bilibil
^https://app.bilibili.com/x/v2/splash/show url reject-dict
# BiliBili_哔哩哔哩_应用开屏广告预加载@yjqiang
^https:\/\/app\.bilibili\.com\/x\/v2\/splash\/list url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_1080P高码率+4K画质(番剧和影视除外)@ddgksf2013
# BiliBili_哔哩哔哩_1080P高码率+4K画质[番剧和影视除外]@ddgksf2013
^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/myinfo\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_热搜发现@ddgksf2013
^https://app.bilibili.com/x/v2/search/square url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
@ -108,11 +114,11 @@ hostname = app.bilibili.com,api.live.bilibili.com,api.vc.bilibili.com, *.bilibil
^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/tab url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_我的页面处理@ddgksf2013
^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/mine url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js
# BiliBili_哔哩哔哩_Proto去广告@app2smile
^https:\/\/app\.bilibili\.com\/bilibili\.app\.(view\.v1\.View\/View|dynamic\.v2\.Dynamic\/DynAll)$ url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/Unlock/BiliBili-proto.js
# BiliBili_哔哩哔哩_Proto去广告@app2smile@ddgksf2013
^https?:\/\/(app\.bilibili\.com|grpc\.biliapi\.net)\/bilibili\.app\.(view\.v1\.View\/View|dynamic\.v2\.Dynamic\/DynAll)$ url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/Unlock/BiliBili-proto.js
# BiliBili_哔哩哔哩_启动时开启直连模式[自行启用]@ddgksf2013
;^https?:\/\/app\.bilibili\.com\/x\/resource\/domain url script-response-body https://github.com/ddgksf2013/Scripts/raw/master/bilibili_startup_direct.js
# BiliBili_哔哩哔哩_繁体CC字幕转中文简体[自行启用]@ddgksf2013
;^https?:\/\/i.\.hdslb\.com\/bfs\/subtitle\/.+\.json$ url script-response-body https://github.com/ddgksf2013/Scripts/raw/master/bilibili_cc.js
# BiliBili_哔哩哔哩_去除统一设置的皮肤@ddgksf2013
# BiliBili_哔哩哔哩_去除统一设置的皮肤[注释留存]@ddgksf2013
;^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/skin\? url script-response-body https://cdn.jsdelivr.net/gh/sve1r/Rules-For-Quantumult-X@develop/Scripts/AdBlock/Bilibili/bilibili_json.js

View File

@ -2,14 +2,14 @@
> 应用名称墨鱼自用B站去广告脚本
> 脚本作者@ddgksf2013
> 微信账号墨鱼手记
> 更新时间2022-01-11
> 更新时间2023-01-21
> 通知频道https://t.me/ddgksf2021
> 贡献投稿https://t.me/ddgksf2013_bot
> 问题反馈ddgksf2013@163.com
> 特别提醒如需转载请注明出处谢谢合作
***********************************************/
const version = "V2.0.98";
const version = "V2.0.107";
let body = $response.body;
if (body) {
@ -20,21 +20,25 @@ if (body) {
try {
let t = JSON.parse(body),
i = [];
for (let e of t.data.items)
if (!e.hasOwnProperty("banner_item")) {
for (let a of t.data.items)
if (!a.hasOwnProperty("banner_item")) {
if (
e.hasOwnProperty("ad_info") ||
-1 !== e.card_goto.indexOf("ad") ||
("small_cover_v2" !== e.card_type &&
"large_cover_v1" !== e.card_type &&
"large_cover_single_v9" !== e.card_type)
!(
!a.hasOwnProperty("ad_info") &&
-1 === a.card_goto?.indexOf("ad") &&
[
"small_cover_v2",
"large_cover_v1",
"large_cover_single_v9",
].includes(a.card_type)
)
)
continue;
else i.push(e);
else i.push(a);
}
(t.data.items = i), (body = JSON.stringify(t));
} catch (a) {
console.log("bilibili index:" + a);
} catch (e) {
console.log("bilibili index:" + e);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/v2\/feed\/index\/story\?/.test(
@ -48,16 +52,16 @@ if (body) {
-1 !== o.card_goto.indexOf("ad") ||
l.push(o);
(s.data.items = l), (body = JSON.stringify(s));
} catch (r) {
console.log("bilibili Story:" + r);
} catch (d) {
console.log("bilibili Story:" + d);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/v\d\/account\/teenagers\/status\?/.test(
$request.url
):
try {
let d = JSON.parse(body);
(d.data.teenagers_status = 0), (body = JSON.stringify(d));
let r = JSON.parse(body);
(r.data.teenagers_status = 0), (body = JSON.stringify(r));
} catch (b) {
console.log("bilibili teenagers:" + b);
}
@ -133,42 +137,48 @@ if (body) {
$request.url
):
try {
let m = JSON.parse(body),
h = new Set([
let u = JSON.parse(body),
f = new Set([
396, 397, 398, 399, 407, 410, 402, 404, 425, 426, 427, 428, 430,
432, 433, 434, 494, 495, 496, 497, 500, 501,
]);
m.data.sections_v2.forEach((t, i) => {
let e = t.items.filter((t) => h.has(t.id));
(m.data.sections_v2[i].items = e),
(m.data.sections_v2[i].button = {}),
delete m.data.sections_v2[i].be_up_title,
delete m.data.sections_v2[i].tip_icon,
delete m.data.sections_v2[i].tip_title,
"创作中心" == m.data.sections_v2[i].title &&
(delete m.data.sections_v2[i].title,
delete m.data.sections_v2[i].type);
u.data.sections_v2.forEach((t, i) => {
let a = t.items.filter((t) => f.has(t.id));
(u.data.sections_v2[i].items = a),
(u.data.sections_v2[i].button = {}),
delete u.data.sections_v2[i].be_up_title,
delete u.data.sections_v2[i].tip_icon,
delete u.data.sections_v2[i].tip_title,
"创作中心" == u.data.sections_v2[i].title &&
(delete u.data.sections_v2[i].title,
delete u.data.sections_v2[i].type);
}),
delete m.data.vip_section_v2,
delete m.data.vip_section,
m.data.hasOwnProperty("live_tip") && (m.data.live_tip = {}),
m.data.hasOwnProperty("answer") && (m.data.answer = {}),
(m.data.vip_type = 2),
(m.data.vip.type = 2),
(m.data.vip.status = 1),
(m.data.vip.vip_pay_type = 1),
(m.data.vip.due_date = 4669824160),
(body = JSON.stringify(m));
} catch (u) {
console.log("bilibili mypage:" + u);
delete u.data.vip_section_v2,
delete u.data.vip_section,
u.data.hasOwnProperty("live_tip") && (u.data.live_tip = {}),
u.data.hasOwnProperty("answer") && (u.data.answer = {}),
(u.data.vip_type = 2),
(u.data.vip.type = 2),
(u.data.vip.status = 1),
(u.data.vip.vip_pay_type = 1),
(u.data.vip.due_date = 4669824160),
(body = JSON.stringify(u));
} catch (h) {
console.log("bilibili mypage:" + h);
}
break;
case /^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-room\/v1\/index\/getInfoByRoom/.test(
$request.url
):
try {
let f = JSON.parse(body);
(f.data.activity_banner_info = null), (body = JSON.stringify(f));
let m = JSON.parse(body);
(m.data.activity_banner_info = null),
m.data?.shopping_info && (m.data.shopping_info = { is_show: 0 }),
m.data?.new_tab_info?.outer_list &&
m.data.new_tab_info.outer_list.length &&
(m.data.new_tab_info.outer_list =
m.data.new_tab_info.outer_list.filter((t) => 33 != t.biz_id)),
(body = JSON.stringify(m));
} catch (g) {
console.log("bilibili live broadcast:" + g);
}
@ -184,54 +194,52 @@ if (body) {
console.log("bilibili right corner:" + _);
}
break;
case /ecommerce-user\/get_shopping_info\?/.test($request.url):
try {
let $ = JSON.parse(body);
$.data &&
($.data = {
shopping_card_detail: {},
bubbles_detail: {},
recommend_card_detail: {},
selected_goods: {},
h5jump_popup: [],
}),
(body = JSON.stringify($));
} catch (x) {
console.log("bilibili shopping info:" + x);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/v2\/search\/square/.test(
$request.url
):
try {
let $ = JSON.parse(body);
($.data = {
let k = JSON.parse(body);
(k.data = {
type: "history",
title: "搜索历史",
search_hotword_revision: 2,
}),
(body = JSON.stringify($));
} catch (k) {
console.log("bilibili hot search:" + k);
(body = JSON.stringify(k));
} catch (w) {
console.log("bilibili hot search:" + w);
}
break;
case /https?:\/\/app\.bilibili\.com\/x\/v2\/account\/myinfo\?/.test(
$request.url
):
try {
let w = JSON.parse(body);
(w.data.vip.type = 2),
(w.data.vip.status = 1),
(w.data.vip.vip_pay_type = 1),
(w.data.vip.due_date = 4669824160),
(body = JSON.stringify(w));
} catch (x) {
console.log("bilibili 1080p:" + x);
}
break;
case /pgc\/page\/bangumi/.test($request.url):
try {
let O = JSON.parse(body);
O.result.modules.forEach((t) => {
t.style.startsWith("banner") &&
(t.items = t.items.filter((t) => -1 != t.link.indexOf("play"))),
t.style.startsWith("function") &&
((t.items = t.items.filter(
(t) => -1 == t.blink.indexOf("www.bilibili.com")
)),
(1283 == t.module_id || 241 == t.module_id) && (t.items = [])),
t.style.startsWith("tip") && (t.items = []);
}),
(O.data.vip.type = 2),
(O.data.vip.status = 1),
(O.data.vip.vip_pay_type = 1),
(O.data.vip.due_date = 4669824160),
(body = JSON.stringify(O));
} catch (P) {
console.log("bilibili fanju:" + P);
console.log("bilibili 1080p:" + P);
}
break;
case /pgc\/page\/cinema\/tab\?/.test($request.url):
case /pgc\/page\/(bangumi|cinema\/tab\?)/.test($request.url):
try {
let W = JSON.parse(body);
W.result.modules.forEach((t) => {
@ -239,43 +247,44 @@ if (body) {
(t.items = t.items.filter((t) => -1 != t.link.indexOf("play"))),
t.style.startsWith("function") &&
((t.items = t.items.filter(
(t) => -1 == t.blink.indexOf("www.bilibili.com")
(t) => -1 == t.blink.indexOf("bilibili.com")
)),
(1441 == t.module_id || 1284 == t.module_id) && (t.items = [])),
[1283, 241, 1441, 1284].includes(t.module_id) && (t.items = [])),
t.style.startsWith("tip") && (t.items = []);
}),
(body = JSON.stringify(W));
} catch (q) {
console.log("bilibili video:" + q);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/skin\?/.test(
$request.url
):
try {
let E = JSON.parse(body);
E &&
E.hasOwnProperty("data") &&
E.data.hasOwnProperty("common_equip") &&
E.data.common_equip.hasOwnProperty("package_url"),
(body = JSON.stringify(E));
} catch (j) {
console.log("bilibili skin:" + j);
console.log("bilibili fanju:" + j);
}
break;
case /^https:\/\/app\.bilibili\.com\/x\/v2\/splash\/list/.test(
$request.url
):
try {
let E = JSON.parse(body);
if (E.data && E.data.list)
for (let q of E.data.list)
(q.duration = 0),
(q.begin_time = 2240150400),
(q.end_time = 2240150400);
body = JSON.stringify(E);
} catch (z) {
console.log("bilibili openad:" + z);
}
break;
case /^https:\/\/api\.live\.bilibili\.com\/xlive\/app-interface\/v2\/index\/feed/.test(
$request.url
):
try {
let B = JSON.parse(body);
if (B.data && B.data.list)
for (let I of B.data.list)
(I.duration = 0),
(I.begin_time = 2240150400),
(I.end_time = 2240150400);
body = JSON.stringify(B);
} catch (R) {
console.log("bilibili openad:" + R);
B.data &&
B.data.card_list &&
(B.data.card_list = B.data.card_list.filter(
(t) => "banner_v1" != t.card_type
)),
(body = JSON.stringify(B));
} catch (I) {
console.log("bilibili xlive:" + I);
}
break;
default:

File diff suppressed because one or more lines are too long