Merge branch 'master' into pr

This commit is contained in:
NobyDa 2022-01-26 00:49:56 +08:00 committed by GitHub
commit fef6c047b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 152 additions and 36 deletions

View File

@ -384,7 +384,7 @@
"descs_html": [
"<h4 align=\"center\">脚本配置请查看<a href=\"https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js\">脚本注释</a></h4>"
],
"keys": ["BiliArea_Policy", "BiliArea_CN", "BiliArea_HK", "BiliArea_TW"],
"keys": ["BiliArea_Policy", "BiliArea_CN", "BiliArea_HK", "BiliArea_TW", "BiliArea_DF", "BiliArea_disabled"],
"settings": [{
"id": "BiliAreaNotify",
"name": "静默运行",
@ -425,6 +425,20 @@
"type": "text",
"placeholder": "(点击以展开说明)",
"desc": "哔哩哔哩分流策略组里的台湾子策略名"
}, {
"id": "BiliArea_DF",
"name": "后备-子策略名",
"val": "",
"type": "text",
"placeholder": "(点击以展开说明)",
"desc": "部分番剧可能会被屏蔽, 使用该策略以避免页面加载失败. 建议填写台湾子策略"
}, {
"id": "BiliArea_disabled",
"name": "WiFi黑名单",
"val": "",
"type": "text",
"placeholder": "(点击以展开说明)",
"desc": "WiFi名称以逗号分隔, 名单内将跳过策略切换"
}],
"author": "@NobyDa",
"repo": "https://github.com/NobyDa/Script/blob/master/Surge/JS/Bili_Auto_Regions.js",

View File

@ -1412,7 +1412,6 @@ DOMAIN-SUFFIX,api-flow.flyme.cn,REJECT
DOMAIN-SUFFIX,api-game.meizu.com,REJECT
DOMAIN-SUFFIX,apihk.growingio.com,REJECT
DOMAIN-SUFFIX,api-push.meizu.com,REJECT
DOMAIN-SUFFIX,api-shoulei-ssl.xunlei.com,REJECT
DOMAIN-SUFFIX,apisoft.df0535.com,REJECT
DOMAIN-SUFFIX,apk.idate520.com,REJECT
DOMAIN-SUFFIX,apk.supfast.net,REJECT

View File

@ -81,9 +81,8 @@ https://api.zhihu.com/topstory/recommend url script-response-body https://raw.gi
https://api.zhihu.com/v4/questions url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20zhihu%20answer.js
# 哔哩哔哩动画去广告 (onewayticket255)
https://app.bilibili.com/x/v2/(splash|search/(defaultword|square)) url reject-200
https://app.bilibili.com/x/v2/(splash|search/square) url reject-200
https://api.bilibili.com/x/v2/dm/ad url reject-200
#https://app.bilibili.com/x/v2/space\?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20space.js
https://app.bilibili.com/x/resource/show/tab\?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20tab.js
https://app.bilibili.com/x/v2/feed/index\?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20feed.js
https://app.bilibili.com/x/v2/account/mine\?access_key url script-response-body https://raw.githubusercontent.com/onewayticket255/Surge-Script/master/surge%20bilibili%20account.js

View File

@ -418,7 +418,7 @@ hostname = api.cognitive.microsofttranslator.com,offline.microsofttranslator.com
^https?:\/\/du\.hupucdn\.com\/\w+h\d{4} url reject-img
^https?:\/\/api\.yangkeduo\.com\/api\/cappuccino\/splash url reject-img
^https?:\/\/mp\.weixin\.qq\.com\/(s|mp)\/(ad_|advertisement|getappmsgad|report|appmsgreport|appmsgpicreport) url reject-img
^https?:\/\/ap(i|p)\.bilibili\.com\/((x\/v2|pgc)\/(search\/defaultword|season\/rank\/cn|splash\/)|(pgc/season/rank/cn|x/v2/(rank.*?rid=(168|5)|search/(defaultword|hot|recommend|resource)))) url reject-img
^https?:\/\/ap(i|p)\.bilibili\.com\/((x\/v2|pgc)\/(season\/rank\/cn|splash\/)|(pgc/season/rank/cn|x/v2/(rank.*?rid=(168|5)|search/(hot|recommend|resource)))) url reject-img
^https?:\/\/www\.zhihu\.com\/terms\/privacy\/confirm url reject-img
^https?:\/\/api\.zhihu\.com\/market\/popover url reject-img
^https?:\/\/api\.zhihu\.com\/search\/(top|tab|preset) url reject-img

View File

@ -1423,7 +1423,6 @@ DOMAIN-SUFFIX,api-flow.flyme.cn
DOMAIN-SUFFIX,api-game.meizu.com
DOMAIN-SUFFIX,apihk.growingio.com
DOMAIN-SUFFIX,api-push.meizu.com
DOMAIN-SUFFIX,api-shoulei-ssl.xunlei.com
DOMAIN-SUFFIX,apisoft.df0535.com
DOMAIN-SUFFIX,apk.idate520.com
DOMAIN-SUFFIX,apk.supfast.net

View File

@ -5,7 +5,7 @@
如需禁用豆瓣评分或策略通知, 可前往BoxJs设置.
BoxJs订阅地址: https://raw.githubusercontent.com/NobyDa/Script/master/NobyDa_BoxJs.json
Update: 2021.09.26
Update: 2022.01.18
Author: @NobyDa
Use: Surge, QuanX, Loon
@ -34,7 +34,7 @@ QX用户注: 使用切换地区功能请确保您的QX=>其他设置=>温和策
Surge 4.7+ 远程脚本配置 :
****************************
[Script]
Bili Region = type=http-response,pattern=^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/(v\d\/)?app|x(\/v\d)?\/view\/video)\/(season|online)\?access_key,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
Bili Region = type=http-response,pattern=^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/v\d\/app\/season|x\/v\d\/search\/defaultwords)\?access_key,requires-body=1,max-size=0,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
#可选, 适用于搜索指定地区的番剧
Bili Search = type=http-request,pattern=^https:\/\/app\.bilibili\.com\/x\/v\d\/search(\/type)?\?.+?%20(%E6%B8%AF|%E5%8F%B0|%E4%B8%AD)&,script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
@ -46,7 +46,7 @@ hostname = ap?.bilibili.com
Quantumult X 远程脚本配置 :
****************************
[rewrite_local]
^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/(v\d\/)?app|x(\/v\d)?\/view\/video)\/(season|online)\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/v\d\/app\/season|x\/v\d\/search\/defaultwords)\?access_key url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
#可选, 适用于搜索指定地区的番剧
^https:\/\/app\.bilibili\.com\/x\/v\d\/search(\/type)?\?.+?%20(%E6%B8%AF|%E5%8F%B0|%E4%B8%AD)& url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js
@ -62,7 +62,7 @@ ip-cidr, 203.107.1.1/24, reject
Loon 远程脚本配置 :
****************************
[Script]
http-response ^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/(v\d\/)?app|x(\/v\d)?\/view\/video)\/(season|online)\?access_key script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js, requires-body=true, tag=bili自动地区
http-response ^https:\/\/ap(p|i)\.bilibili\.com\/(pgc\/view\/v\d\/app\/season|x\/v\d\/search\/defaultwords)\?access_key script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js, requires-body=true, tag=bili自动地区
#可选, 适用于搜索指定地区的番剧
http-request ^https:\/\/app\.bilibili\.com\/x\/v\d\/search(\/type)?\?.+?%20(%E6%B8%AF|%E5%8F%B0|%E4%B8%AD)& script-path=https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Bili_Auto_Regions.js, requires-body=true, tag=bili自动地区(搜索)
@ -80,23 +80,35 @@ async function SwitchRegion(play) {
const CN = $.read('BiliArea_CN') || 'DIRECT'; //Your China sub-policy name.
const TW = $.read('BiliArea_TW') || '🇹🇼 sub-policy'; //Your Taiwan sub-policy name.
const HK = $.read('BiliArea_HK') || '🇭🇰 sub-policy'; //Your HongKong sub-policy name.
const DF = $.read('BiliArea_DF') || '🏁 sub-policy'; //Sub-policy name used after region is blocked(e.g. url 404)
const off = $.read('BiliArea_disabled') || ''; //WiFi blacklist(disable region change), separated by commas.
const current = await $.getPolicy(Group);
const area = (() => {
let select;
if (/\u50c5[\u4e00-\u9fa5]+\u6e2f|%20%E6%B8%AF&/.test(play)) {
if (current != HK) return HK;
const test = /\u50c5[\u4e00-\u9fa5]+\u53f0/.test(play);
if (current != HK && (current == TW && test ? 0 : 1)) select = HK;
} else if (/\u50c5[\u4e00-\u9fa5]+\u53f0|%20%E5%8F%B0&/.test(play)) {
if (current != TW) return TW;
} else if (current != CN) return CN;
if (current != TW) select = TW;
} else if (play === -404) {
if (current != DF) select = DF;
} else if (current != CN) {
select = CN;
}
if ($.isQuanX && current === 'direct' && select === 'DIRECT') {
select = null; //avoid loops in some cases
}
return select;
})()
if (area) {
if (area && !off.includes($.ssid || undefined)) {
const change = await $.setPolicy(Group, area);
const notify = $.read('BiliAreaNotify') === 'true';
const msg = SwitchStatus(change, current, area);
if (!notify) {
$.notify(/^http/.test(play) || !play ? `` : play, ``, msg);
$.notify((/^(http|-404)/.test(play) || !play) ? `` : play, ``, msg);
} else {
console.log(`${/^http/.test(play)||!play?``:play}\n${msg}`);
console.log(`${(/^(http|-404)/.test(play)||!play)?``:play}\n${msg}`);
}
if (change) {
return true;
@ -106,7 +118,7 @@ async function SwitchRegion(play) {
}
function SwitchStatus(status, original, newPolicy) {
if (status) {
if (status && typeof original !== 'number') {
return `${original} => ${newPolicy} => 🟢`;
} else if (original === 2) {
return `切换失败, 策略组名未填写或填写有误 ⚠️`
@ -123,9 +135,14 @@ function EnvInfo() {
if (typeof($response) !== 'undefined') {
const raw = JSON.parse($response.body);
const data = raw.data || raw.result || {};
//if surge or loon, $done() will auto reconnect with the new policy
SwitchRegion(data.title)
.then(s => s && !$.isQuanX ? $done() : QueryRating(raw, data));
SwitchRegion(data.title || (raw.code === -404 ? -404 : null))
.then(s => s ? $done({
status: $.isQuanX ? "HTTP/1.1 408 Request Timeout" : 408,
headers: {
Connection: "close"
},
body: "{}"
}) : QueryRating(raw, data));
} else {
const raw = $request.url;
const res = {
@ -237,6 +254,17 @@ function nobyda() {
const isLoon = typeof $loon != "undefined";
const isQuanX = typeof $task != "undefined";
const isSurge = typeof $network != "undefined" && typeof $script != "undefined";
const ssid = (() => {
if (isQuanX && typeof($environment) !== 'undefined') {
return $environment.ssid;
}
if (isSurge && $network.wifi) {
return $network.wifi.ssid;
}
if (isLoon) {
return JSON.parse($config.getConfig()).ssid;
}
})();
const notify = (title, subtitle, message) => {
console.log(`${title}\n${subtitle}\n${message}`);
if (isQuanX) $notify(title, subtitle, message);
@ -328,6 +356,7 @@ function nobyda() {
isLoon,
notify,
read,
ssid,
get
}
}

View File

@ -35,6 +35,7 @@ DOMAIN-KEYWORD,113.105.166.
DOMAIN-KEYWORD,113.96.154.
DOMAIN-KEYWORD,113.96.156.
DOMAIN-KEYWORD,113.96.16.
DOMAIN-KEYWORD,113.96.18.
DOMAIN-KEYWORD,113.96.202.
DOMAIN-KEYWORD,113.96.208.
DOMAIN-KEYWORD,113.96.209.
@ -53,6 +54,7 @@ DOMAIN-KEYWORD,116.253.61.
DOMAIN-KEYWORD,117.184.242.
DOMAIN-KEYWORD,117.187.243.
DOMAIN-KEYWORD,117.41.224.
DOMAIN-KEYWORD,119.147.190.
DOMAIN-KEYWORD,119.147.227.
DOMAIN-KEYWORD,119.147.83.
DOMAIN-KEYWORD,119.188.155.
@ -140,6 +142,9 @@ DOMAIN-KEYWORD,183.3.233.
DOMAIN-KEYWORD,183.3.234.
DOMAIN-KEYWORD,183.3.235.
DOMAIN-KEYWORD,183.47.97.
DOMAIN-KEYWORD,183.47.101.
DOMAIN-KEYWORD,183.47.115.
DOMAIN-KEYWORD,183.47.117.
DOMAIN-KEYWORD,183.60.131.
DOMAIN-KEYWORD,183.60.155.
DOMAIN-KEYWORD,183.61.13.
@ -215,6 +220,8 @@ DOMAIN-KEYWORD,58.247.204.
DOMAIN-KEYWORD,58.247.205.
IP-CIDR6,2402:4e00:8010::/112,no-resolve
IP-CIDR6,2402:4e00:8020:101::2:0/112,no-resolve
IP-CIDR6,2402:4e00:1020:10fb:0:9466::/112,no-resolve
IP-CIDR6,2402:4e00:1430:2264:0:9467::/96,no-resolve
IP-CIDR6,2408:80f1:31:50::/112,no-resolve
IP-CIDR6,2409:8c1e:8fd0:50::/112,no-resolve
IP-CIDR6,240e:e1:a900:50::/112,no-resolve
@ -254,11 +261,13 @@ IP-CIDR6,240E:93C:8:10::/60,no-resolve
IP-CIDR6,240E:95C:2003:20::/60,no-resolve
IP-CIDR6,240E:95C:3003:14::/60,no-resolve
IP-CIDR6,240E:96C:6400:700::/60,no-resolve
IP-CIDR6,240E:97C:2F::/60,no-resolve
IP-CIDR6,240E:97D:4:1E00::/60,no-resolve
IP-CIDR6,240E:CF:8800::/56,no-resolve
IP-CIDR6,240E:E1:A800::/48,no-resolve
IP-CIDR6,240E:E1:A800::/46,no-resolve
IP-CIDR6,240E:E1:A900::/48,no-resolve
IP-CIDR6,240E:E1:AA00::/48,no-resolve
IP-CIDR6,240E:E9:6003::/48,no-resolve
IP-CIDR6,240E:F7:4F00:1F10::/60,no-resolve
IP-CIDR6,240E:F7:A070:100::/60,no-resolve
IP-CIDR6,240E:F7:A070:403::/60,no-resolve

View File

@ -1,7 +1,7 @@
/*
爱奇艺会员签到脚本
更新时间: 2021.12.4
更新时间: 2022.1.24
脚本兼容: QuantumultX, Surge4, Loon, JsBox, Node.js
电报频道: @NobyDa
问题反馈: @NobyDa_bot
@ -14,7 +14,7 @@
如果使用Node.js, 需自行安装'request'模块. : npm install request -g
JsBox, Node.js用户抓取Cookie说明
开启抓包, 打开爱奇艺App后(AppStore中国区)点击"我的" 返回抓包App 搜索请求头关键字 psp_cki= P00001= authcookie=
开启抓包, 打开爱奇艺App后(AppStore中国区)点击"我的" 返回抓包App 搜索请求头关键字 psp_cki= P00001= authcookie= P00003=
提取字母数字混合字段, &结束, 填入以下单引号内即可.
*/
@ -22,6 +22,8 @@ var cookie = ''
var barkKey = ''; //Bark APP 通知推送Key
var P00001 = '';
var P00003 = '';
/*********************
QuantumultX 远程脚本配置:
**********************
@ -78,6 +80,11 @@ var $nobyda = nobyda();
if ($nobyda.isRequest) {
GetCookie()
} else if (cookie) {
if (cookie.includes("P00001") && cookie.includes("P00003")) {
P00001 = cookie.match(/P00001=(.*?);/)[1];
P00003 = cookie.match(/P00003=(.*?);/)[1];
}
if (P00001 !== "" && P00003 !== ""){
await login();
await Checkin();
await Lottery(500);
@ -87,13 +94,13 @@ var $nobyda = nobyda();
await new Promise(r => setTimeout(r, 5000));
await getTaskRewards(tasks[i]);
}
await barkNotify();
const expires = $nobyda.expire ? $nobyda.expire.replace(/\u5230\u671f/, "") : "获取失败 ⚠️"
if (!$nobyda.isNode) $nobyda.notify("爱奇艺", "到期时间: " + expires, $nobyda.data);
if (barkKey) await BarkNotify($nobyda, barkKey, '爱奇艺', `到期时间: ${expires}\n${$nobyda.data}`);
await $nobyda.time();
} else {
$nobyda.notify("爱奇艺会员", "", "签到终止, 未获取Cookie");
}else{
$nobyda.notify("爱奇艺会员", "", "签到终止, 未获取Cookie");
}
}
})().finally(() => {
$nobyda.done();
@ -123,26 +130,57 @@ function login() {
}
function Checkin() {
const timestamp = new Date().getTime();
const stringRandom = require('string-random');
return new Promise(resolve => {
const sign_date = {
agentType: "1",
agentversion: "1.0",
appKey: "basic_pcw",
authCookie: P00001,
qyid: md5(stringRandom(16)),
task_code: "natural_month_sign",
timestamp: timestamp,
typeCode: "point",
userId: P00003,
};
const post_date = {
"natural_month_sign": {
"agentType": "1",
"agentversion": "1",
"authCookie": P00001,
"qyid": md5(stringRandom(16)),
"taskCode": "iQIYI_mofhr",
"verticalCode": "iQIYI"
}
};
const sign = k("UKobMjDMsDoScuWOfp6F", sign_date, {
split: "|",
sort: !0,
splitSecretKey: !0
});
var URL = {
url: 'https://tc.vip.iqiyi.com/taskCenter/task/queryUserTask?autoSign=yes&P00001=' + cookie
url: 'https://community.iqiyi.com/openApi/task/execute?' + w(sign_date) + "&sign=" + sign,
headers: {
'Content-Type':'application/json'
},
body: JSON.stringify(post_date)
}
$nobyda.get(URL, function(error, response, data) {
$nobyda.post(URL, function(error, response, data) {
if (error) {
$nobyda.data = "签到失败: 接口请求出错 ‼️"
console.log(`爱奇艺-${$nobyda.data} ${error}`)
} else {
const obj = JSON.parse(data)
const Details = LogDetails ? `response:\n${data}` : ''
if (obj.msg == "成功") {
if (obj.data.signInfo.code == "A00000") {
var AwardName = obj.data.signInfo.data.rewards[0].name;
var quantity = obj.data.signInfo.data.rewards[0].value;
var continued = obj.data.signInfo.data.cumulateSignDaysSum;
$nobyda.data = "签到成功: " + AwardName + quantity + ", 累计签到" + continued + "天 🎉"
if (obj.code === "A00000") {
if (obj.data.code === "A0000") {
var quantity = obj.data.data.rewards[0].rewardCount;
var continued = obj.data.data.signDays;
$nobyda.data = "签到成功: 获得积分" + quantity + ", 累计签到" + continued + "天 🎉"
console.log(`爱奇艺-${$nobyda.data} ${Details}`)
} else {
$nobyda.data = "签到失败: " + obj.data.signInfo.msg + " ⚠️"
$nobyda.data = "签到失败: " + obj.data.msg + " ⚠️"
console.log(`爱奇艺-${$nobyda.data} ${Details}`)
}
} else {
@ -401,4 +439,33 @@ function nobyda() {
times,
done
}
};
};
function k(e, t) {
var a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}
, n = a.split
, c = void 0 === n ? "|" : n
, r = a.sort
, s = void 0 === r || r
, o = a.splitSecretKey
, i = void 0 !== o && o
, l = s ? Object.keys(t).sort() : Object.keys(t)
, u = l.map((function (e) {
return "".concat(e, "=").concat(t[e])
}
)).join(c) + (i ? c : "") + e;
return md5(u)
}
function md5(date){
const crypto = require('crypto');
return crypto.createHash("md5").update(date, "utf8").digest("hex")
}
function w(){
var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}
, t = [];
return Object.keys(e).forEach((function (a) {
t.push("".concat(a, "=").concat(e[a]))
}
)),
t.join("&")
}