JavaScript 脚本以及[task]使用
🕌

JavaScript 脚本以及[task]使用

 

6.1 使用简要说明

💡
JS 的引入,起初只是为了能更好的修改响应体从而去除某些顽固广告,但随着版本的不断更新迭代,现在Quantumult X 的js脚本功能已经五花八门,完美适合各类爱折腾的同学。 在版本 1.0.12+ 后,作者重新开放了 远程脚本的一键更新 , ⚠️但需满足一个条件:购买时间>30天 ⚠️⚠️否则,你依旧可以使用远程 js 脚本,但只能一个个手动更新
JS 使用的 2⃣️ 个 要素:
  1. JS 脚本文件本身
      • 如果你是极端小白,那你只用知道,脚本文件本身,就是你在网上 找到/下载 到的那个,叫xxx.js 的文件(它可以是本地文件,也可以是别人放在GitHub的远程链接🔗️)
  1. Quantumult X 配置中的重写rewrite语句
      • 有了JS文件之后,你当然还需要告诉 Quantumult X,你要如何使用这个xxx.js
        • 写法的通用表达 : 匹配网址 url 复写类型 脚本文件
      • 这个语句是一句 rewrite,可以放在本地配置(rewrite_local),也可以放远程引用(rewrite_remote)
      ; 匹配网址请求 url 复写类型 脚本文件 http://example\.com/resource5/ url script-response-body 123.js
      • 解读上面的语句:当访问网址匹配 “http://example\.com/resource5/” 时,将会执行 123.js 的脚本文件, 而 url script-response-body,则是 复写类型

A. JS 文件(远程-本机-iCloud)

首先,关于 js脚本文件 的位置说明:
🚫
0⃣️. 请大佬们 千万别 直接把js脚本链接直接丢进rewrite引用,然后还跑来问“怎么报错?” 1️⃣. 同时,放对位置后,需要去 rewrite_local里添加引用
  1. 可以放 github 后, 远程使用对应链接(raw 链接)
2. 也可以放入本机文件夹中 /On My iPhone/Quantumult X/Scripts 目录下
3. 当然也可以放入iCloud Drive下的 Quantumult X/Scripts 目录 (但记得去quantumultx中开启开关,如右下图所示)
notion image
notion image

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, 喜马拉雅,腾讯视频 爱奇艺 什么值得买 等)
效果展示:
notion image

6.3 任务脚本使用(task scripts)

Quantumult X最新TF版本中 (170+), 增加了期待已久的 任务脚本功能(task scripts)。可设置定时发送请求,比如“天气提醒、话费查询、甚至是签到”,进一步提高了Quantumult X的可玩性。
目前该功能模块被独立出来,且仅限本地使用 [task_local]

A. 添加方法

  1. 单条使用:
;配置文件中,自己添加下面的[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的资源处,会有对应的说明,请参照具体情况使
notion image
notion image
 
 
2. task gallery 订阅
TF 版本 1.0.17 (build 433)后,Quantumult X 加入了 task-gallery,可以实现签到脚本订阅&管理。
notion image
 

B. 效果展示

notion image
notion image

C. 资源分享

  1. 自己按照作者示范写
2. 网友大佬们的分享

D. 调试方法

1.0.16版本后,task手动运行(右滑)有两种模式
  • 后台运行,不会即时跳出日志页面;
  • 日志模式,可以即时看到运行状态(运行结束前不能关闭退出)
notion image
 

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.comifconfig.co/json 的查询接口返回数据,然后脚本自定义返回的参数进行显示(如 ip,city,country 等):
第三图为 长按节点,显示详细信息
notion image
具体代码如下,根据喜好自行修改查询的 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