QuantumultX在访问指定网站时,运行指定脚本

本文不会对QuantumultX的基本使用进行介绍,只讲解如何在访问某网站时执行某个脚本,使用场景如抓取某网站Cookie并存储,以供定时脚本使用(如签到,状态监控等)

前置要求

  • 请保证你已熟悉QuantumultX的基本使用,如果不熟悉请参考Quantumult-X不完全教程
  • 有一定的js基础(脚本是基于js编写的,当然要有基础了😝)

创建脚本文件

创建脚本文件入口如下,该入口可创建定时脚本,重写脚本,创建的脚本文件会存储在文件-iCloud云盘-QuantumultX-Scripts文件夹下,并填入示例脚本内容

创建脚本文件入口

编写脚本

以下脚本由NewBing生成,来进行举例,作用是抓取某网站的cookie

1
2
3
4
5
6
7
8
9
10
11
12
console.log('脚本开始运行');
// 获取请求中的Cookie
let cookie = $request.headers.Cookie;
if (cookie) {
let key = "cookie";
let result = $prefs.setValueForKey(cookie, key);
if (result) {
$notify("成功获取cookie", "", "请在Quantumult-X中禁用该脚本");
}
}
$done({});

脚本介绍

开头的变量是QuantumultX中的一些内置对象,可以用于编写脚本或重写规则。以下是一些常用的开头的变量的介绍:

  • $request:表示一个HTTP请求对象,包含了请求的方法、URL、头部和正文等信息。可以通过$request.method,$request.url,$request.headers和$request.body等属性来访问这些信息。例如,$request.headers.Cookie可以获取请求中的Cookie字段。
  • $prefs:表示一个偏好设置对象,可以用于存储或读取一些键值对。可以通过$prefs.setValueForKey(value, key)和$prefs.valueForKey(key)等方法来设置或获取键值对。例如,$prefs.setValueForKey(cookie, “cookie”)可以将Cookie存储到偏好设置中,$prefs.valueForKey(“cookie”)可以从偏好设置中读取Cookie。
  • $notify:表示一个通知对象,可以用于发送一条通知到设备的通知中心。可以通过$notify(title, subtitle, message)等方法来发送通知。例如,$notify(“成功获取cookie”, “”, “请在Quantumult-X中禁用该脚本”)可以发送一条标题为“成功获取cookie”的通知,副标题为空,消息为“请在Quantumult-X中禁用该脚本”。

添加重写规则

添加重写脚本,用以匹配的URL请改为目标网站的地址,以本站地址举例,则填写:^https://blog.goku.top

添加重写脚本

添加主机名

目标网站的域名,还是以本站地址举例,则填写blog.goku.top

添加主机名

最后

最后就可以去访问目标网站试一下了,如果有收到通知则说明脚本成功运行。

如果想在定时脚本使用抓取的Cookie,可以使用$prefs.valueForKey(key)来获取。

通知