声明
不提供涉及 APP 的下载及其他使用教程
前提
- 知道 QuanX 的基本使用逻辑,以及基本的概念
- 有自我修改部分代码能力和上 github 或者其他托管代码平台的能力
学习资源来源
效果
效果 1
- 进入 B 站客户端
- 进入『首页』,点击『追番』
- 找到番剧『进击的巨人最终季』
- 点击进入,脚本会自动将代理节点切换设置的代理分组
- 如果出现『找不到页面』,点击页面的『重新加载』或刷新页面,进入番剧观看页面,正常观看
- 退出观看页,脚本自动切换为直连
效果 2
- 进入 B 站客户端
- 点击『输入框』
- 输入『进击的巨人 港』
- 脚本自动切换代理分组
- 页面显示『进击的巨人』番剧结果
- 点击『立即观看』,进入观看页
优点
- 不用再每次看港澳台番剧时自己手动切成全局,看完后又切换回规则模式,全自动。
实践
准备
- 带有 ios 系统的 iPhone
- 一个 QuanX App
- 『Bili_Auto_Region 脚本』
修改原有脚本
到『脚本原作者仓库』,fork 该仓库
加入『StreamingSE』规则集(必须)
1 2
# 绑定相关select或static策略组,并且需要具有相关的区域代理服务器纳入您的子策略中,子策略可以是服务器也可以是其他区域策略组. https://raw.githubusercontent.com/DivineEngine/Profiles/master/Quantumult/Filter/StreamingMedia/StreamingSE.list
设置该规则集的『策略偏好』为自己的『父策略组』(例如我设为 『BiliGroup』)
添加几个子策略组(如台湾 or 香港)(这里涉及到策略组的节点选择策略,自己了解)
修改 Surge/JS/Bili_Auto_Regions.js,提交更改
1 2 3 4 5 6 7 8
//找到如下代码块,删除如下中文,修改成自己创建的策略组名 const Group = $.read('BiliArea_Policy') || '你的父策略组(BiliGroup)'; //Your blibli policy group name. const CN = $.read('BiliArea_CN') || 'DIRECT'; //Your China sub-policy name. const TW = $.read('BiliArea_TW') || '台湾子策略组'; //Your Taiwan sub-policy name. const HK = $.read('BiliArea_HK') || '香港子策略组'; //Your HongKong sub-policy name. const DF = $.read('BiliArea_DF') || '请求失败后的策略组'; //Sub-policy name used after region is blocked(e.g. url 404) const off = $.read('BiliArea_disabled') || '在某些wifi下不转换策略组'; //WiFi blacklist(disable region change), separated by commas. const current = await $.getPolicy(Group);
在 QuantumultX/ 目录下(或其他目录),新增两个文件,一个『分流』,一个『重写』,举例:
1 2 3 4 5 6 7 8 9 10 11 12
#『重写』引用:Bili_Region.conf # start------------- hostname = ap?.bilibili.com, ap?.biliapi.net ^https:\/\/ap(p|i)\.bili(bili|api)\.(com|net)\/(pgc\/view\/v\d\/app\/season|x\/v\d\/search\/defaultwords)\?access_key url script-response-body https://raw.githubusercontent.com/你的用户名/Script/master/Surge/JS/Bili_Auto_Regions.js # 适用于搜索指定地区的番剧(该脚本为『效果2』的实现,根据自身需要选择) ^https:\/\/ap(p|i)\.bili(bili|api)\.(com|net)\/x\/v\d\/search(\/type)?\?.+?%20(%E6%B8%AF|%E5%8F%B0|%E4%B8%AD)& url script-request-header https://raw.githubusercontent.com/你的用户名/Script/master/Surge/JS/Bili_Auto_Regions.js # end-------------- #『分流』引用:Bili_Region.list # start----------------- ip-cidr, 203.107.1.1/24, reject # end--------------------
打开 App;将以上两个文件『分流』与『重写』分别引用;
最后,在 QuanX -> 其他设置 -> VPN 中,关闭 MPM(温和策略机制)
至此,所有需要做的都已经完成,此时,进入 B 站客户端,实现以上的效果
Why?
为什么?这部分将对『实践』中的部分操作做解释。
为什么 fork 仓库?
1
因为需要修改原脚本相关分组的名字,这部分由自己定义;而且涉及到『重写』与『分流』引用,虽然不是必须,但是强烈建议这样做;可以方便地管理这些规则的开关;
为什么关闭 MPM
1
主要是在切换策略时打断之前的连接,让策略生效(个人认为)
已知问题
- 在长时间使用 B 站一段时间后,会发现脚本有失效情况,这个时候退出 B 站重新进入可以解决。
最后
如果有代码方面的时候问题,请到原作者脚本仓库上提 issue。
如果有关于以上实践部分的问题,可以在下方评论提问。本教程也是参考了原脚本的注释部分,自己实践得来,建议在问之前把注释看一遍;不提供除实践部分之外的问题。如果是我知道的,我会提供关键词给你,然后请自己去问谷歌。