6.1 使用简要说明
JS 的引入,起初只是为了能更好的修改响应体从而去除某些顽固广告,但随着版本的不断更新迭代,现在Quantumult X 的js脚本功能已经五花八门,完美适合各类爱折腾的同学。
在版本 1.0.12+ 后,作者重新开放了
远程脚本的一键更新
,
⚠️但需满足一个条件:购买时间>30天
⚠️⚠️否则,你依旧可以使用远程 js 脚本,但只能一个个手动更新
JS 使用的 2⃣️ 个 要素:
- JS 脚本文件本身
- 如果你是极端小白,那你只用知道,脚本文件本身,就是你在网上
找到/下载
到的那个,叫xxx.js 的文件(它可以是本地文件,也可以是别人放在GitHub的远程链接🔗️)
- Quantumult X 配置中的重写rewrite语句
- 有了JS文件之后,你当然还需要告诉 Quantumult X,你要如何使用这个xxx.js
- 写法的通用表达 :
匹配网址 url 复写类型 脚本文件
- 这个语句是一句 rewrite,可以放在本地配置(rewrite_local),也可以放远程引用(rewrite_remote)
- 解读上面的语句:当访问网址匹配 “http://example\.com/resource5/” 时,将会执行 123.js 的脚本文件, 而
url script-response-body
,则是复写类型
- 各类型的具体说明,参见作者: https://github.com/crossutility/Quantumult-X
; 匹配网址请求 url 复写类型 脚本文件 http://example\.com/resource5/ url script-response-body 123.js
A. JS 文件(远程-本机-iCloud)
首先,关于 js脚本文件 的位置说明:
0⃣️. 请大佬们 千万别 直接把js脚本链接直接丢进rewrite引用,然后还跑来问“怎么报错?”
1️⃣. 同时,放对位置后,需要去 rewrite_local里添加引用
- 可以放
github 后, 远程使用对应链接(raw 链接)
2. 也可以放入本机文件夹中 /
On My iPhone/Quantumult X/Scripts
目录下 3. 当然也可以放入
iCloud Drive
下的 Quantumult X/Scripts
目录 (但记得去quantumultx中开启开关,如右下图
所示)B. 重写语句
示范 1:本地写法(
文本编辑,[rewrite_local] 部分
):;远程 github js脚本 http://example\.com/resource5/ url script-response-body https://raw.githubusercontent.com/crossutility/Quantumult-X/master/sample-rewrite-with-script.js ;本地js文件 http://example\.com/resource5/ url script-response-body script_name.js
当然,你也可以将
上述复写语句
放在GitHub中,作为远程 rewrite , 直接引用导入(但记得脚本路径跟文件本身,都要放置在本地)示范2: 远程写法 (UI内重写部分直接引用,或文本编辑填入
[rewrite_remote]
部分)譬如神机规则重写的订阅链接内,就包含部分js复写,可以直接引用导入使用:
6.2 JavaScript 去广告(rewrite)
Quantumult X 支持通过JS脚本修改 响应体 / 响应头/ 请求头 等等, 以满足更复杂的需求。
官方示范说明链接:
P.S.: 与 surge 的部分去广告脚本基本通用,只需按各自格式进行更改即可(不支持定时任务&脚本内发送请求)
A . JS脚本资源 (可供学习,但请勿滥用)
某些js脚本频道订阅
可关注几位大佬的脚本频道,频道中有可以通过rewrite 直接订阅 的js集合:
3⃣️ https://github.com/yichahucha/surge/tree/master 👍👍👍 (京东 / 淘宝 商品历史价格显示,Netflix 电影评分显示)
4⃣️https://github.com/chavyleung/scripts (
签到狂魔
大佬的地址, bilibili, 喜马拉雅,腾讯视频 爱奇艺 什么值得买 等)效果展示:
6.3 任务脚本使用(task scripts)
Quantumult X
最新TF版本中 (170+)
, 增加了期待已久的 任务脚本功能(task scripts)
。可设置定时发送请求,比如“天气提醒、话费查询、甚至是签到
”,进一步提高了Quantumult X的可玩性。目前该功能模块被独立出来,且仅限本地使用
[task_local]
A. 添加方法
- 单条使用:
;配置文件中,自己添加下面的[task_local]模块,并填写任务, ;任务脚本 name.js 文件放于 本机 或者 iCloud 的 "Quantumult X/Scripts" 目录下 ; * * * * * 为分开始的 cron语法,用法可随意 Google或见教程:Cron语法格式学习 ;tag 参数指定 task 标签名 ;img-url参数为 task 指定图标 icon [task_local] //脚本在本地时 * * * * * name.js, tag=京东签到, img-url=https://icon.expamle.png //脚本在远程时 * * * * * https://example.name.js, tag=京东签到, img-url=https://icon.expamle.png ;如果是签到类task任务,一般还需要先获取对应的cookie; ;提供签到类的脚本处一般会有使用说明,请自行寻找 ;一般在提供签到js的资源处,会有对应的说明,请参照具体情况使
2. task gallery 订阅
TF 版本 1.0.17 (
build 433
)后,Quantumult X 加入了 task-gallery,可以实现签到脚本订阅&管理。- 已有大佬们的仓库(可直接引用):
B. 效果展示
C. 资源分享
- 自己按照作者示范写
2. 网友大佬们的分享
D. 调试方法
1.0.16版本后,task手动运行(
右滑
)有两种模式- 后台运行,不会即时跳出日志页面;
- 日志模式,可以即时看到运行状态(运行结束前不能关闭退出)
6.3 JS 自定义查询节点信息
这部分与上面的JS其实没太多关系。仅用于
获取节点信息
并 展示在Quantumult X节点页面官方说明如下:
- 增加自定义主页显示节点落地信息的数据获取方式(geo_location_checker)。 - 增加长按节点获取节点落地信息的功能(需有配置 geo_location_checker)。 - 范例中脚本各返回值为必须,否则显示查询失败。如不在意某个值,脚本返回任意固定值即可。 - 为提高查询效率节点信息查询接口的请求仅支持 http,范例如下: [general] geo_location_checker=http://extreme-ip-lookup.com/json/, https://raw.githubusercontent.com/crossutility/Quantumult-X/master/sample-location-with-script.js
下图中,前两图 分别使用了
api.ipstack.com
跟 ifconfig.co/json
的查询接口返回数据,然后脚本自定义返回的参数进行显示(如 ip,city,country 等):第三图为 长按节点,显示详细信息
具体代码如下,根据喜好自行修改查询的 api 以及所需参数(第 3️⃣ 4️⃣个为返回
中文
的api)如
上图 4
所示,代码放到 文本配置
,[general]
下,可通过;注释
来选择生效的 api 代码:;加';'来注释掉对应行, 如下,仅第 5⃣️ 行生效 ;geo_location_checker=http://ifconfig.co/json,https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/IPConfig.js ;geo_location_checker= http://extreme-ip-lookup.com/json/ ,https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/IPCheck.js ;geo_location_checker=http://ip-api.com/json/?lang=zh-CN, https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/IP_API.js ;geo_location_checker= http://api.ipstack.com/check?access_key=1c24147fb534e1a71cb35ff84de2d153&language=zh&output=json , https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/IPInfo.js geo_location_checker= http://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr?, https://raw.githubusercontent.com/KOP-XIAO/QuantumultX/master/Scripts/IP_bili_cn.js