📺feat: 更新 Bili 相关脚本

This commit is contained in:
sve1r 2023-04-12 14:11:16 +08:00
parent dd277b8a66
commit 8d246e67fe
6 changed files with 207 additions and 181 deletions

View File

@ -1,5 +1,5 @@
// ==UserScript==
// @ScriptName BiliBili_AdBlock_DIY
// @ScriptName 哔哩哔哩净化[墨鱼版]
// @Author @ddgksf2013, @blackmatrix7, @app2smile, @yjqiang, @kokoryh
// @ForHelp 若有屏蔽广告的需求可公众号后台回复APP名称
// @TaiWanBilibili https://apps.apple.com/tw/app/id1517062289
@ -9,8 +9,8 @@
// @TgChannel https://t.me/ddgksf2021
// @Contribute https://t.me/ddgksf2013_bot
// @Feedback 📮 ddgksf2013@163.com 📮
// @UpdateTime 2023-03-04
// @ConfigVersion V2.0.109
// @UpdateTime 2023-04-09
// @ConfigVersion V2.0.116
// @Attention 如果广告仍然存在,请清除缓存或卸载应用重新安装
// @Attention 如需引用请注明出处,谢谢合作!
// @Function 去广告配置(自用,不定期更新)

View File

@ -1,5 +1,5 @@
// ==UserScript==
// @ScriptName BiliBili_AdBlock_DIY
// @ScriptName 哔哩哔哩净化[墨鱼版]
// @Author @ddgksf2013, @blackmatrix7, @app2smile, @yjqiang, @kokoryh
// @ForHelp 若有屏蔽广告的需求可公众号后台回复APP名称
// @TaiWanBilibili https://apps.apple.com/tw/app/id1517062289
@ -9,8 +9,8 @@
// @TgChannel https://t.me/ddgksf2021
// @Contribute https://t.me/ddgksf2013_bot
// @Feedback 📮 ddgksf2013@163.com 📮
// @UpdateTime 2023-03-04
// @ConfigVersion V2.0.109
// @UpdateTime 2023-04-09
// @ConfigVersion V2.0.116
// @Attention 如果广告仍然存在,请清除缓存或卸载应用重新安装
// @Attention 如需引用请注明出处,谢谢合作!
// @Function 去广告配置(自用,不定期更新)

View File

@ -1,11 +1,12 @@
const version = "V2.0.112";
const version = "V2.0.117";
let body = $response.body;
if (body) {
switch (!0) {
case /pgc\/season\/app\/related\/recommend\?/.test($request.url):
try {
let t = JSON.parse(body);
t.result?.cards?.length > 0 &&
t.result?.cards?.length &&
(t.result.cards = t.result.cards.filter((t) => 2 != t.type)),
(body = JSON.stringify(t));
} catch (i) {
@ -79,37 +80,47 @@ if (body) {
):
try {
let u = new Set([177, 178, 179, 181, 102, 104, 106, 486, 488, 489]),
f = JSON.parse(body);
if (
(f.data?.tab &&
(f.data.tab = [
{
id: 39,
name: "直播",
uri: "bilibili://live/home",
tab_id: "直播tab",
pos: 1,
},
{
id: 40,
name: "推荐",
uri: "bilibili://pegasus/promo",
tab_id: "推荐tab",
pos: 2,
default_selected: 1,
},
h = JSON.parse(body);
if (h.data?.tab) {
var f = [];
f.push(
{
id: 39,
name: "直播",
uri: "bilibili://live/home",
tab_id: "直播tab",
pos: 1,
},
{
id: 40,
name: "推荐",
uri: "bilibili://pegasus/promo",
tab_id: "推荐tab",
pos: 2,
default_selected: 1,
}
),
-1 == JSON.stringify(h.data.tab).indexOf("pgc/home")
? f.push({
id: 774,
name: "番剧",
uri: "bilibili://following/home_activity_tab/6544",
tab_id: "bangumi",
pos: 3,
})
: f.push({
id: 545,
name: "番剧",
uri: "bilibili://pgc/home",
tab_id: "bangumi",
pos: 3,
}),
f.push(
{
id: 41,
name: "热门",
uri: "bilibili://pegasus/hottopic",
tab_id: "hottopic",
pos: 3,
},
{
id: 545,
name: "番剧",
uri: "bilibili://pgc/home",
tab_id: "bangumi",
pos: 4,
},
{
@ -118,10 +129,13 @@ if (body) {
uri: "bilibili://pgc/cinema-tab",
tab_id: "film",
pos: 5,
},
]),
f.data.top &&
(f.data.top = [
}
),
(h.data.tab = f);
}
if (
(h.data.top &&
(h.data.top = [
{
id: 481,
icon: "http://i0.hdslb.com/bfs/archive/d43047538e72c9ed8fd8e4e34415fbe3a4f632cb.png",
@ -131,129 +145,129 @@ if (body) {
pos: 1,
},
]),
f.data.bottom)
h.data.bottom)
) {
let h = f.data.bottom.filter((t) => u.has(t.id));
f.data.bottom = h;
let m = h.data.bottom.filter((t) => u.has(t.id));
h.data.bottom = m;
}
body = JSON.stringify(f);
} catch (m) {
console.log("bilibili tabprocess:" + m);
body = JSON.stringify(h);
} catch (g) {
console.log("bilibili tabprocess:" + g);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/v2\/account\/mine/.test(
$request.url
):
try {
let g = JSON.parse(body),
v = new Set([
let v = JSON.parse(body),
$ = new Set([
396, 397, 398, 399, 407, 410, 402, 404, 425, 426, 427, 428, 430,
432, 433, 434, 494, 495, 496, 497, 500, 501,
]);
g.data.sections_v2.forEach((t, i) => {
let a = t.items.filter((t) => v.has(t.id));
(g.data.sections_v2[i].items = a),
(g.data.sections_v2[i].button = {}),
delete g.data.sections_v2[i].be_up_title,
delete g.data.sections_v2[i].tip_icon,
delete g.data.sections_v2[i].tip_title,
("创作中心" == g.data.sections_v2[i].title ||
"創作中心" == g.data.sections_v2[i].title) &&
(delete g.data.sections_v2[i].title,
delete g.data.sections_v2[i].type);
v.data.sections_v2.forEach((t, i) => {
let a = t.items.filter((t) => $.has(t.id));
(v.data.sections_v2[i].items = a),
(v.data.sections_v2[i].button = {}),
delete v.data.sections_v2[i].be_up_title,
delete v.data.sections_v2[i].tip_icon,
delete v.data.sections_v2[i].tip_title,
("创作中心" == v.data.sections_v2[i].title ||
"創作中心" == v.data.sections_v2[i].title) &&
(delete v.data.sections_v2[i].title,
delete v.data.sections_v2[i].type);
}),
delete g.data.vip_section_v2,
delete g.data.vip_section,
g.data.hasOwnProperty("live_tip") && (g.data.live_tip = {}),
g.data.hasOwnProperty("answer") && (g.data.answer = {}),
g.data.vip.status ||
((g.data.vip_type = 2),
(g.data.vip.type = 2),
(g.data.vip.status = 1),
(g.data.vip.vip_pay_type = 1),
(g.data.vip.due_date = 466982416e4)),
(body = JSON.stringify(g));
} catch ($) {
console.log("bilibili mypage:" + $);
delete v.data.vip_section_v2,
delete v.data.vip_section,
v.data.hasOwnProperty("live_tip") && (v.data.live_tip = {}),
v.data.hasOwnProperty("answer") && (v.data.answer = {}),
v.data.vip.status ||
((v.data.vip_type = 2),
(v.data.vip.type = 2),
(v.data.vip.status = 1),
(v.data.vip.vip_pay_type = 1),
(v.data.vip.due_date = 466982416e4)),
(body = JSON.stringify(v));
} catch (_) {
console.log("bilibili mypage:" + _);
}
break;
case /^https?:\/\/api\.live\.bilibili\.com\/xlive\/app-room\/v1\/index\/getInfoByRoom/.test(
$request.url
):
try {
let _ = JSON.parse(body);
(_.data.activity_banner_info = null),
_.data?.shopping_info && (_.data.shopping_info = { is_show: 0 }),
_.data?.new_tab_info?.outer_list &&
_.data.new_tab_info.outer_list.length &&
(_.data.new_tab_info.outer_list =
_.data.new_tab_info.outer_list.filter((t) => 33 != t.biz_id)),
(body = JSON.stringify(_));
} catch (x) {
console.log("bilibili live broadcast:" + x);
let x = JSON.parse(body);
(x.data.activity_banner_info = null),
x.data?.shopping_info && (x.data.shopping_info = { is_show: 0 }),
x.data?.new_tab_info?.outer_list &&
x.data.new_tab_info.outer_list.length &&
(x.data.new_tab_info.outer_list =
x.data.new_tab_info.outer_list.filter((t) => 33 != t.biz_id)),
(body = JSON.stringify(x));
} catch (k) {
console.log("bilibili live broadcast:" + k);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/resource\/top\/activity/.test(
$request.url
):
try {
let k = JSON.parse(body);
k.data && ((k.data.hash = "ddgksf2013"), (k.data.online.icon = "")),
(body = JSON.stringify(k));
} catch (w) {
console.log("bilibili right corner:" + w);
let w = JSON.parse(body);
w.data && ((w.data.hash = "ddgksf2013"), (w.data.online.icon = "")),
(body = JSON.stringify(w));
} catch (O) {
console.log("bilibili right corner:" + O);
}
break;
case /ecommerce-user\/get_shopping_info\?/.test($request.url):
try {
let O = JSON.parse(body);
O.data &&
(O.data = {
let P = JSON.parse(body);
P.data &&
(P.data = {
shopping_card_detail: {},
bubbles_detail: {},
recommend_card_detail: {},
selected_goods: {},
h5jump_popup: [],
}),
(body = JSON.stringify(O));
} catch (P) {
console.log("bilibili shopping info:" + P);
(body = JSON.stringify(P));
} catch (W) {
console.log("bilibili shopping info:" + W);
}
break;
case /^https?:\/\/app\.bilibili\.com\/x\/v2\/search\/square/.test(
$request.url
):
try {
let W = JSON.parse(body);
(W.data = {
let j = JSON.parse(body);
(j.data = {
type: "history",
title: "搜索历史",
search_hotword_revision: 2,
}),
(body = JSON.stringify(W));
} catch (j) {
console.log("bilibili hot search:" + j);
(body = JSON.stringify(j));
} catch (q) {
console.log("bilibili hot search:" + q);
}
break;
case /https?:\/\/app\.bilibili\.com\/x\/v2\/account\/myinfo\?/.test(
$request.url
):
try {
let q = JSON.parse(body);
q.data.vip.status ||
((q.data.vip.type = 2),
(q.data.vip.status = 1),
(q.data.vip.vip_pay_type = 1),
(q.data.vip.due_date = 466982416e4)),
(body = JSON.stringify(q));
} catch (E) {
console.log("bilibili 1080p:" + E);
let E = JSON.parse(body);
E.data.vip.status ||
((E.data.vip.type = 2),
(E.data.vip.status = 1),
(E.data.vip.vip_pay_type = 1),
(E.data.vip.due_date = 466982416e4)),
(body = JSON.stringify(E));
} catch (z) {
console.log("bilibili 1080p:" + z);
}
break;
case /pgc\/page\/(bangumi|cinema\/tab\?)/.test($request.url):
try {
let z = JSON.parse(body);
z.result.modules.forEach((t) => {
let B = JSON.parse(body);
B.result.modules.forEach((t) => {
t.style.startsWith("banner") &&
(t.items = t.items.filter((t) => -1 != t.link.indexOf("play"))),
t.style.startsWith("function") &&
@ -263,39 +277,39 @@ if (body) {
[1283, 241, 1441, 1284].includes(t.module_id) && (t.items = [])),
t.style.startsWith("tip") && (t.items = []);
}),
(body = JSON.stringify(z));
} catch (B) {
console.log("bilibili fanju:" + B);
(body = JSON.stringify(B));
} catch (I) {
console.log("bilibili fanju:" + I);
}
break;
case /^https:\/\/app\.bilibili\.com\/x\/v2\/splash\/list/.test(
$request.url
):
try {
let I = JSON.parse(body);
if (I.data && I.data.list)
for (let R of I.data.list)
(R.duration = 0),
(R.begin_time = 2240150400),
(R.end_time = 2240150400);
body = JSON.stringify(I);
} catch (S) {
console.log("bilibili openad:" + S);
let R = JSON.parse(body);
if (R.data && R.data.list)
for (let S of R.data.list)
(S.duration = 0),
(S.begin_time = 2240150400),
(S.end_time = 2240150400);
body = JSON.stringify(R);
} catch (T) {
console.log("bilibili openad:" + T);
}
break;
case /^https:\/\/api\.live\.bilibili\.com\/xlive\/app-interface\/v2\/index\/feed/.test(
$request.url
):
try {
let T = JSON.parse(body);
T.data &&
T.data.card_list &&
(T.data.card_list = T.data.card_list.filter(
let A = JSON.parse(body);
A.data &&
A.data.card_list &&
(A.data.card_list = A.data.card_list.filter(
(t) => "banner_v1" != t.card_type
)),
(body = JSON.stringify(T));
} catch (A) {
console.log("bilibili xlive:" + A);
(body = JSON.stringify(A));
} catch (C) {
console.log("bilibili xlive:" + C);
}
break;
default:

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
> 应用名称墨鱼自用B站proto去广告脚本
> 脚本作者@app2smile,@ddgksf2013,@kokoryh
> 微信账号墨鱼手记
> 更新时间2023-03-03
> 更新时间2023-04-09
> 通知频道https://t.me/ddgksf2021
> 贡献投稿https://t.me/ddgksf2013_bot
> 原作者库https://github.com/app2smile
@ -12,7 +12,7 @@
> 脚本声明若有侵犯原作者权利请邮箱联系删除
***********************************************/
const version = "V2.0.16";
const version = "V2.0.19";
let protobuf;
!(function (g) {
@ -11364,92 +11364,102 @@ if (
) {
log("Dynamic page Dynamic/DynAll");
let e = biliRoot.lookupType("bilibili.app.dynamic.DynAllReply"),
o = e.decode(unGzipBody);
i = e.decode(unGzipBody);
if (
(o.topicList &&
((needProcessFlag = !0), (o.topicList = null), log("Delete topicList")),
o.upList,
o.dynamicList?.list?.length)
(i.topicList &&
((needProcessFlag = !0), (i.topicList = null), log("Delete topicList")),
i.upList,
i.dynamicList?.list?.length)
) {
let i = 0,
let o = 0,
l = RegExp("红包|拼多多|京东|天猫|淘宝");
(o.dynamicList.list = o.dynamicList.list.filter(
(i.dynamicList.list = i.dynamicList.list.filter(
(e) =>
!(
15 === e.cardType ||
19 === e.cardType ||
l.test(JSON.stringify(e.extend?.origDesc))
) || (i++, !1)
) || (o++, !1)
)),
i &&
o &&
((needProcessFlag = !0),
log("Number of dynamic page advertisements" + i));
log("Number of dynamic page advertisements" + o));
}
needProcessFlag && (body = processNewBody(e.encode(o).finish()));
needProcessFlag && (body = processNewBody(e.encode(i).finish()));
} else if (url.includes("View/View")) {
log("Video playback page View/View");
let t = biliRoot.lookupType("bilibili.app.view.ViewReply"),
n = t.decode(unGzipBody);
n = t.decode(unGzipBody),
s = [
"cmIpad",
"specialCellNew",
"specialCell",
"activityUrl",
"reqUser",
"materialLeft",
"refreshSpecialCell",
];
if (
(n.cmIpad &&
((n.cmIpad = null),
(needProcessFlag = !0),
log("Remove iPad advertising")),
(s.forEach((e) => {
n[e] &&
((n[e] = null), (needProcessFlag = !0), log("Remove advertising"));
}),
n.cms?.length)
) {
let s = 0,
let a = 0,
d = biliRoot.lookupType("bilibili.ad.v1.SourceContentDto");
for (let a = 0; a < n.cms.length; a++) {
let r = n.cms[a];
if (r.sourceContent?.value) {
let c = d.decode(r.sourceContent.value);
c.adContent && s++;
for (let r = 0; r < n.cms.length; r++) {
let c = n.cms[r];
if (c.sourceContent?.value) {
let y = d.decode(c.sourceContent.value);
y.adContent && a++;
}
}
(n.cms = []),
log(`Up recommendation advertisement:${s}`),
s && (needProcessFlag = !0);
log(`Up recommendation advertisement:${a}`),
a && (needProcessFlag = !0);
}
if (n.relates?.length) {
let y = 0;
(n.relates = n.relates.filter((e) => "cm" !== e.goto || (y++, !1))),
log(`Related recommendation advertisement:${y}`),
y && (needProcessFlag = !0);
let p = 0;
(n.relates = n.relates.filter((e) => "cm" !== e.goto || (p++, !1))),
log(`Related recommendation advertisement:${p}`),
p && (needProcessFlag = !0);
}
let p = n.cmConfig?.adsControl?.value;
if (p) {
let g = biliRoot.lookupType("bilibili.ad.v1.AdsControlDto"),
u = g.decode(p);
(u?.hasDanmu === 1 || u?.cids?.length > 0) &&
(log(`Up danmu advertisement. ${u?.hasDanmu}, ${u?.cids}`),
let g = n.cmConfig?.adsControl?.value;
if (g) {
let u = biliRoot.lookupType("bilibili.ad.v1.AdsControlDto"),
b = u.decode(g);
(b?.hasDanmu === 1 || b?.cids?.length > 0) &&
(log(`Up danmu advertisement. ${b?.hasDanmu}, ${b?.cids}`),
(n.cmConfig = null),
(needProcessFlag = !0));
}
if (needProcessFlag) {
let b = n.tIcon;
for (let m in b) null === b[m] && (log(`tIconMap:${m}`), delete b[m]);
let m = n.tIcon;
for (let f in m) null === m[f] && (log(`tIconMap:${f}`), delete m[f]);
body = processNewBody(t.encode(n).finish());
}
} else if (url.includes("PlayURL/PlayView")) {
let f = biliRoot.lookupType("bilibili.app.playurl.PlayViewReply"),
h = f.decode(unGzipBody),
P = h.playArc?.backgroundPlayConf;
P &&
(!P.isSupport || P.disabled) &&
((h.playArc.backgroundPlayConf.isSupport = !0),
(h.playArc.backgroundPlayConf.disabled = !1),
(h.playArc.backgroundPlayConf.extraContent = null),
log("PlayURL/PlayView");
let h = biliRoot.lookupType("bilibili.app.playurl.PlayViewReply"),
P = h.decode(unGzipBody),
w = P.playArc?.backgroundPlayConf;
w &&
(!w.isSupport || w.disabled) &&
((P.playArc.backgroundPlayConf.isSupport = !0),
(P.playArc.backgroundPlayConf.disabled = !1),
(P.playArc.backgroundPlayConf.extraContent = null),
(needProcessFlag = !0),
(body = processNewBody(f.encode(h).finish())));
(body = processNewBody(h.encode(P).finish())));
} else $notification.post("bilibili-proto", "path mistake:", url);
function processNewBody(e) {
let o = e.length,
i = new Uint8Array(5 + o);
return i.set(intToUint8Array(o), 1), i.set(e, 5), i;
let i = e.length,
o = new Uint8Array(5 + i);
return o.set(intToUint8Array(i), 1), o.set(e, 5), o;
}
function intToUint8Array(e) {
let o = new ArrayBuffer(4);
return new DataView(o).setUint32(0, e, !1), new Uint8Array(o);
let i = new ArrayBuffer(4);
return new DataView(i).setUint32(0, e, !1), new Uint8Array(i);
}
function log(e) {
isDebug && console.log(e);

File diff suppressed because one or more lines are too long