Skip to content

[Script] 脚本 ​

本节定义 HTTP 请求、HTTP 响应、定时和网络事件脚本。

语法 ​

ini
[Script]
名称 = type=类型, script-path=来源, 选项=值

只接受键值参数。名称必须非空且唯一,不得为 .、..,也不得包含 /、反斜杠或 NUL。未知参数被忽略。

公共字段 ​

字段取值与单位默认值行为与约束
typehttp-request、http-response、cron、event无,必填决定触发类型
script-path本地路径或 HTTP/HTTPS URL无,必填脚本来源
script-update-interval无符号整数,秒未设置仅 HTTP 来源接受;未设置时不启用定时刷新
debugtrue/yes/1、false/no/0false布尔值不区分大小写
timeout1–86400,秒5执行超时;0 和超出一天均解析失败
argument字符串未设置传入脚本的参数
engineauto、quickjs、webviewauto不区分大小写;未知值按 auto;auto 对 HTTP 脚本使用 WebView,对 cron/event 使用 QuickJS

触发字段 ​

字段适用类型取值与单位默认值与约束
patternhttp-request、http-responseURL 正则表达式必填
requires-bodyhttp-request、http-response同 debug 的布尔取值false;是否读取并提供 HTTP body
max-sizehttp-request、http-response整数,字节131072;任何负数表示不限,0 非法,正溢出饱和到 usize::MAX
binary-body-modehttp-request、http-response同 debug 的布尔取值false;以二进制形式提供 body
cronexpcron五段或六段表达式必填;解析器检查段数,接受成对单引号或双引号
event-nameeventnetwork-changed必填;其他值解析失败

HTTP 脚本能否处理 HTTPS 取决于流量是否进入解密后的 HTTP 管道,相关配置见 MITM。

示例 ​

ini
[Script]
Request = type=http-request, pattern=^http://example\.com/, script-path=./request.js
Timer = type=cron, cronexp="0 * * * *", script-path=./timer.js
Network = type=event, event-name=network-changed, script-path=./network.js