diff --git a/docs.json b/docs.json index 15a3cab..432f4bd 100644 --- a/docs.json +++ b/docs.json @@ -150,13 +150,6 @@ "zh/autoscript/editor", "zh/autoscript/orchestrator" ] - }, - { - "group": "集成", - "icon": "link", - "pages": [ - "zh/autoscript/integration" - ] } ] } diff --git a/zh/autoscript/index.mdx b/zh/autoscript/index.mdx index a21f8bb..ac4f5ca 100644 --- a/zh/autoscript/index.mdx +++ b/zh/autoscript/index.mdx @@ -3,14 +3,16 @@ title: "AutoScript 概述" description: "AutoScript 自动化脚本引擎 - 在**重复性**定时任务执行前动态调整预约参数" --- +## 什么是 AutoScript + AutoScript 是基于 Lua 语言的自动化脚本引擎,支持基础的条件判断和算术表达式语法, 可在**重复性**定时任务运行前对预约参数进行动态调整, -## 什么是 AutoScript +在之前的版本中,定时任务只能按照固定的预约参数执行。如果需要在不同日期预约不同时间, +或根据当前时间动态调整预约时长,只能手动修改配置。 -在之前的版本中,定时任务只能按照固定的预约参数执行。如果需要在不同日期预约不同座位,或根据时间动态调整预约时长,只能手动修改配置。 - -AutoScript 解决了这一问题。它允许你编写简单的脚本,在定时任务执行前自动修改用户变量(如预约日期、开始时间、结束时间等),实现灵活的自动化预约策略。 +AutoScript 解决了这一问题。它允许你编写简单的脚本,在定时任务执行前自动修改用户变量 +(如预约日期、开始时间、结束时间等),实现灵活的自动化预约策略。 ## 核心概念 @@ -21,12 +23,13 @@ AutoScript 的核心工作流程如下: 3. **输出数据**:将脚本修改后的参数传递给自动化引擎执行 - AutoScript 脚本修改的参数仅影响当次执行,不会回写到用户配置文件。下次任务运行时将重新从配置文件读取原始值。 + AutoScript 脚本修改的参数仅影响当次执行,不会回写到用户配置文件。 + 下次任务运行时将重新从配置文件读取原始值。 ## 典型应用场景 -- **每日动态日期**:始终预约"明天"的座位,无需每天手动修改日期 +- **动态日期**:始终预约"明天"的座位,无需每天手动修改日期 - **条件切换**:根据是否启用标志决定不同的预约策略 - **时间偏移**:在特定时间段自动调整预约开始时间 - **批量处理**:配合用户分组,为不同用户设置不同的预约参数 @@ -62,7 +65,7 @@ AutoLibrary 提供两种方式编写 AutoScript: 查看所有可用的日期、时间工具函数及其用法。 @@ -74,11 +77,4 @@ AutoLibrary 提供两种方式编写 AutoScript: > 了解可操作的目标变量、数据类型与约束规则。 - - 了解如何将 AutoScript 集成到定时任务中。 - diff --git a/zh/autoscript/integration.mdx b/zh/autoscript/integration.mdx deleted file mode 100644 index 1330870..0000000 --- a/zh/autoscript/integration.mdx +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: "集成指南" -description: "AutoScript 与定时任务集成 - 执行流程、作用域与最佳实践" ---- - -了解如何将 AutoScript 脚本集成到定时任务中,以及脚本的执行时机、作用范围和注意事项。 - -## 执行流程 - -当定时任务触发时,AutoLibrary 按以下顺序执行: - -1. **读取配置**:从用户配置文件中读取所有用户分组的预约参数 -2. **遍历用户组**:对每个启用的用户组,遍历其中的每个启用用户 -3. **执行 AutoScript**:对每个用户运行 AutoScript 脚本,动态调整变量值 -4. **执行定时任务**:使用调整后的参数运行预约/签到/续约操作 - -```text -定时任务触发 - │ - ├─ 用户组 A - │ ├─ 用户 1 → 执行 AutoScript → 预约/签到/续约 - │ └─ 用户 2 → 执行 AutoScript → 预约/签到/续约 - │ - └─ 用户组 B - ├─ 用户 3 → 执行 AutoScript → 预约/签到/续约 - └─ 用户 4 → 执行 AutoScript → 预约/签到/续约 -``` - -## 作用域 - -AutoScript 脚本的作用域限定为单个用户的单次执行: - -- **每次执行独立**:脚本对每个用户独立运行,不同用户之间互不影响 -- **不修改配置文件**:脚本对变量的修改仅存在于内存中,不会回写到 `user.json` -- **下次执行重置**:下次定时任务触发时,从配置文件重新读取原始值 - -## 配置方式 - -### 在定时任务中指定脚本 - - - - 点击主界面底部的 [] 按钮。 - - - 点击 [**添加任务**] 创建新任务,或右键现有任务选择 [**编辑**]。 - - - 在编辑对话框中找到 [**AutoScript**] 区域,点击 [**编辑**] 按钮打开内置代码编辑器编写脚本。 - 脚本编写完成后直接内嵌保存至定时任务配置,无需管理外部文件。 - - - 点击 [**确认**] 保存任务配置。 - - - -{/* TODO: 添加定时任务 AutoScript 配置截图 */} -![定时任务 AutoScript 配置](/images/v1.4.0/timer-autoscript-config.png) - -## 典型示例 - -### 示例 1:始终预约明天的座位 - -```lua --- 将预约日期设为明天 -RESERVE_DATE = dateadd(datenow(), 1) - --- 设置固定时间段 -RESERVE_BEGIN_TIME = time(9, 0) -RESERVE_END_TIME = time(21, 0) -``` - -### 示例 2:根据星期调整预约策略 - -配合定时任务的重复执行功能,可以为不同日子设置不同的预约参数。如果你需要基于实际星期进行判断,可以在脚本中根据日期特性调整: - -```lua --- 始终预约明天 -RESERVE_DATE = dateadd(datenow(), 1) - --- 默认时间段 -RESERVE_BEGIN_TIME = time(9, 0) -RESERVE_END_TIME = time(21, 0) -``` - -### 示例 3:条件性跳过用户 - -```lua --- 如果当前时间已经超过上午 10 点,跳过该用户 -if timenow() > time(10, 0) then - USER_ENABLE = false -end -``` - -### 示例 4:根据用户名差异化配置 - -```lua -if USERNAME == "20250101001" then - -- 用户 A 的预约策略 - RESERVE_BEGIN_TIME = time(8, 0) - RESERVE_END_TIME = time(20, 0) -end -``` - -## 最佳实践 - -### 先调试,后配置 - -在将脚本关联到定时任务之前,使用编辑器的调试运行功能在模拟数据上验证脚本逻辑。 - -### 保持脚本简洁 - -每个脚本只关注一个明确的目标,避免在一个脚本中处理过多复杂逻辑。如果需要针对不同用户组执行不同逻辑,建议为每个用户组创建独立的定时任务。 - -### 注意沙箱限制 - -AutoScript 运行在受限的沙箱环境中,不能访问文件系统或执行系统命令。如果脚本需要外部数据(如个人日程表),请使用条件判断和工具函数实现。 - -### 验证类型兼容性 - -确保所有赋值操作的类型与目标变量声明的类型一致。类型错误会导致脚本执行失败并跳过该用户。 - -### 处理边缘情况 - -编写脚本时考虑边缘情况: - -```lua --- 确保开始时间不早于 7:30 -if RESERVE_BEGIN_TIME < time(7, 30) then - RESERVE_BEGIN_TIME = time(7, 30) -end - --- 确保结束时间不晚于 22:30 -if RESERVE_END_TIME > time(22, 30) then - RESERVE_END_TIME = time(22, 30) -end -``` diff --git a/zh/autoscript/syntax.mdx b/zh/autoscript/syntax.mdx index 9a7fc61..e4a0f39 100644 --- a/zh/autoscript/syntax.mdx +++ b/zh/autoscript/syntax.mdx @@ -112,7 +112,7 @@ if USER_ENABLE then ... end --- 等价但不推荐 +-- 等价 if USER_ENABLE == true then ... end diff --git a/zh/autoscript/variables.mdx b/zh/autoscript/variables.mdx index 324348e..5a15a9f 100644 --- a/zh/autoscript/variables.mdx +++ b/zh/autoscript/variables.mdx @@ -55,9 +55,9 @@ end ```lua -- 使用工具函数创建日期 RESERVE_DATE = date(2025, 10, 30) -- 绝对日期 -RESERVE_DATE = datenow() -- 今天 -RESERVE_DATE = dateadd(datenow(), 1) -- 明天 -RESERVE_DATE = strtodate("2025-12-31") -- 从字符串解析 +RESERVE_DATE = datenow() -- 今天 +RESERVE_DATE = dateadd(datenow(), 1) -- 明天 +RESERVE_DATE = strtodate("2025-12-31") -- 从字符串解析 ``` @@ -108,11 +108,11 @@ AutoScript 引擎会在脚本执行前后验证变量类型。以下情况会导 ```lua -- 正确:类型匹配 RESERVE_DATE = dateadd(datenow(), 1) -- Date = Date -USER_ENABLE = true -- Boolean = Boolean +USER_ENABLE = true -- Boolean = Boolean -- 错误:类型不匹配 RESERVE_DATE = "2025-10-30" -- Error: Date ≠ String -USER_ENABLE = 1 -- Error: Boolean ≠ Int +USER_ENABLE = 1 -- Error: Boolean ≠ Int ``` diff --git a/zh/manual/v1.4.0/features/timer.mdx b/zh/manual/v1.4.0/features/timer.mdx index af90a97..f88cc78 100644 --- a/zh/manual/v1.4.0/features/timer.mdx +++ b/zh/manual/v1.4.0/features/timer.mdx @@ -47,26 +47,29 @@ description: "AutoLibrary 定时任务管理 - 添加、编辑、删除定时任 ### 重复执行 -勾选 [**启用重复执行**] 后,可以按周循环执行任务: +勾选 [**启用重复执行**] 后,可以按周循环执行此任务: - 选择需要运行的天(如:每周一、周三、周五) -- 需要每天运行则勾选全部(周一至周日) -- 全选和全不选均视为每日执行 +- 需要每天运行则勾选全部 + + + 重复周期选项中,全选和全不选均等同于每天重复执行。 + ## AutoScript 自动化脚本 AutoScript 是基于 Lua 语言的自动化脚本引擎,支持基础的条件判断和算术表达式语法, 可在**重复性**定时任务运行前对预约参数进行动态调整,比如能够实现以下场景: +- 根据当前日期动态调整预约时间 +- 根据当前星期判断是否需要预约 +- 根据用户状态自动切换预约参数 + AutoScript 自动化脚本仅支持在**重复性**定时任务中配置,请务必 勾选 [**启用重复执行**] 以使用 AutoScript 脚本。 -- 根据当前日期动态调整预约时间 -- 根据用户状态自动切换预约参数 -- 多个用户配置的批量自动化处理 - [**GitHub Releases**](https://github.com/KenanZhu/AutoLibrary/releases):更新较为及时,但网络连接不稳定,速度较慢。 @@ -56,18 +56,18 @@ AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具 ![macOS DMG 安装界面](/images/v1.4.0/macos-dmg-install.png) - 由于应用未经过 Apple 官方代码签名,首次启动时 macOS 可能会阻止运行。请按以下步骤操作: + 由于应用未经过 Apple 官方代码签名认证,首次启动时 macOS 可能会阻止运行。请按以下步骤操作: - 1. 双击 `AutoLibrary.app`,系统弹出 "**无法验证开发者**" 提示后点击 [**取消**] + 1. 双击 `AutoLibrary.app`,系统弹出 "**未打开 "AutoLibrary"**" 提示后点击 [**完成**] ![macOS GateKeeper 无法验证开发者](/images/v1.4.0/macos-gatekeeper-unauth.png) 2. 打开系统 [**设置**] → [**隐私与安全性**] - 3. 在页面底部找到关于 AutoLibrary 的拦截提示,点击右侧的 [**仍要打开**] + 3. 在页面底部 [**安全性**] 找到关于 AutoLibrary 的拦截提示,点击右侧的 [**仍要打开**] ![macOS 隐私与安全性 仍要打开](/images/v1.4.0/macos-privacy-security-still-open.png) - 4. 在弹出的对话框中再次确认 [**打开**] + 4. 在弹出的对话框中再次确认 [**仍要打开**] ![macOS 再次确认打开](/images/v1.4.0/macos-reconfirm-open.png)