Rules-For-Quantumult-X/Scripts/AdBlock/Bilibili/BiliBili.js

193 lines
9.6 KiB
JavaScript

const version = 'V2.0.119';
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 && (t.result.cards = t.result.cards.filter(t => 2 != t.type)), body = JSON.stringify(t)
} catch (i) {
console.log("bilibili recommend:" + i)
}
break;
case/^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/skin\?/.test($request.url):
try {
let a = JSON.parse(body);
delete a.data?.common_equip, body = JSON.stringify(a)
} catch (e) {
console.log("bilibili skin:" + e)
}
break;
case/^https:\/\/app\.bilibili\.com\/x\/v2\/feed\/index\?/.test($request.url):
try {
let s = JSON.parse(body), l = [];
for (let o of s.data.items) if (!o.hasOwnProperty("banner_item")) {
if (!(!o.hasOwnProperty("ad_info") && -1 === o.card_goto?.indexOf("ad") && ["small_cover_v2", "large_cover_v1", "large_cover_single_v9"].includes(o.card_type))) continue; else l.push(o)
}
s.data.items = l, body = JSON.stringify(s)
} catch (d) {
console.log("bilibili index:" + d)
}
break;
case/^https?:\/\/app\.bilibili\.com\/x\/v2\/feed\/index\/story\?/.test($request.url):
try {
let r = JSON.parse(body), b = [];
for (let p of r.data.items) p.hasOwnProperty("ad_info") || -1 !== p.card_goto.indexOf("ad") || b.push(p);
r.data.items = b, body = JSON.stringify(r)
} catch (c) {
console.log("bilibili Story:" + c)
}
break;
case/^https?:\/\/app\.bilibili\.com\/x\/v\d\/account\/teenagers\/status\?/.test($request.url):
try {
let n = JSON.parse(body);
n.data.teenagers_status = 0, body = JSON.stringify(n)
} catch (y) {
console.log("bilibili teenagers:" + y)
}
break;
case/^https?:\/\/app\.bilibili\.com\/x\/resource\/show\/tab/.test($request.url):
try {
let u = new Set([177, 178, 179, 181, 102, 104, 106, 486, 488, 489]), 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: 4
}, {
id: 151,
name: "影视",
uri: "bilibili://pgc/cinema-tab",
tab_id: "film",
pos: 5
}), h.data.tab = f
}
if (h.data.top && (h.data.top = [{
id: 481,
icon: "http://i0.hdslb.com/bfs/archive/d43047538e72c9ed8fd8e4e34415fbe3a4f632cb.png",
name: "消息",
uri: "bilibili://link/im_home",
tab_id: "消息Top",
pos: 1
}]), h.data.bottom) {
let m = h.data.bottom.filter(t => u.has(t.id));
h.data.bottom = 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 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, 2830, 3072]);
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 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 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 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 P = JSON.parse(body);
P.data && (P.data = {
shopping_card_detail: {},
bubbles_detail: {},
recommend_card_detail: {},
selected_goods: {},
h5jump_popup: []
}), 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 j = JSON.parse(body);
j.data = {type: "history", title: "搜索历史", search_hotword_revision: 2}, 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 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 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") && (t.items = t.items.filter(t => -1 == t.blink.indexOf("bilibili.com")), [1283, 241, 1441, 1284].includes(t.module_id) && (t.items = [])), t.style.startsWith("tip") && (t.items = [])
}), 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 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 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(A)
} catch (C) {
console.log("bilibili xlive:" + C)
}
break;
default:
$done({})
}
$done({body})
} else $done({});