mirror of https://github.com/NobyDa/Script.git
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
/************************
|
|
|
|
动画疯,屏蔽播放广告脚本 (黑屏25秒自动播放)
|
|
由于动画疯强制验证观看广告时间,无法实现真正意义上的跳过广告。
|
|
|
|
Surge(4.11+)模块:
|
|
https://raw.githubusercontent.com/NobyDa/Script/master/Surge/Module/BahamutAnimeAds.sgmodule
|
|
|
|
QX(1.0.27+)用户请自行搭配KOP-XIAO资源解析器重写引用Surge模块。
|
|
|
|
************************/
|
|
|
|
let [req, rsp] = [$request, JSON.parse($response.body || '{}')];
|
|
|
|
runs().catch((err) => {
|
|
console.log(`[BahamutAnime] ERROR: ${err.message||err}`)
|
|
}).finally(() => $done({
|
|
body: JSON.stringify(rsp)
|
|
}));
|
|
|
|
async function runs() {
|
|
if (req.url.includes('token.php')) {
|
|
if (rsp.ad) {
|
|
rsp.ad.minor = [];
|
|
rsp.ad.major = [];
|
|
}
|
|
if (rsp.data && rsp.data.ad) {
|
|
rsp.data.ad.minor = [];
|
|
rsp.data.ad.major = [];
|
|
}
|
|
}
|
|
if (req.url.includes('m3u8.php') && (rsp.message || rsp.error)) {
|
|
await adURL('');
|
|
await new Promise(r => setTimeout(r, 25000));
|
|
await adURL('end');
|
|
rsp = await playURL();
|
|
}
|
|
}
|
|
|
|
function adURL(str) {
|
|
return new Promise((res) => {
|
|
get({
|
|
url: `https://api.gamer.com.tw/mobile_app/anime/v1/stat_ad.php?ad=${str}&schedule=0&sn=${req.url.split(/sn=(\d+)/i)[1]}`,
|
|
headers: req.headers
|
|
}, (err, resp, data) => res())
|
|
})
|
|
}
|
|
|
|
function playURL() {
|
|
return new Promise((res) => {
|
|
get({
|
|
url: req.url,
|
|
headers: req.headers
|
|
}, (err, resp, data) => res(JSON.parse(data || '{}')))
|
|
})
|
|
}
|
|
|
|
function get(options, callback) {
|
|
if (typeof $task != "undefined") {
|
|
$task.fetch(options).then(response => {
|
|
response["status"] = response.statusCode
|
|
callback(null, response, response.body)
|
|
}, reason => callback(reason.error, null, null))
|
|
}
|
|
if (typeof $httpClient != "undefined") {
|
|
$httpClient.get(options, callback)
|
|
}
|
|
} |