docs: optimize repeat cycle note wording in timer page

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude committed 2026-06-22 09:26:16 +08:00
1 parent beab1c3959
commit ea5f7e89b0
6 files changed
+26 -171

No files matched your search

-7
View File
@@ -150,13 +150,6 @@
"zh/autoscript/editor",
"zh/autoscript/orchestrator"
]
},
{
"group": "集成",
"icon": "link",
"pages": [
"zh/autoscript/integration"
]
}
]
}
+10 -14
View File
@@ -3,14 +3,16 @@ title: "AutoScript 概述"
description: "AutoScript 自动化脚本引擎 - 在**重复性**定时任务执行前动态调整预约参数"
---
## 什么是 AutoScript
AutoScript 是基于 Lua 语言的自动化脚本引擎,支持基础的条件判断和算术表达式语法,
可在**重复性**定时任务运行前对预约参数进行动态调整,
## 什么是 AutoScript
在之前的版本中,定时任务只能按照固定的预约参数执行。如果需要在不同日期预约不同时间,
或根据当前时间动态调整预约时长,只能手动修改配置。
在之前的版本中,定时任务只能按照固定的预约参数执行。如果需要在不同日期预约不同座位,或根据时间动态调整预约时长,只能手动修改配置。
AutoScript 解决了这一问题。它允许你编写简单的脚本,在定时任务执行前自动修改用户变量(如预约日期、开始时间、结束时间等),实现灵活的自动化预约策略。
AutoScript 解决了这一问题。它允许你编写简单的脚本,在定时任务执行前自动修改用户变量
(如预约日期、开始时间、结束时间等),实现灵活的自动化预约策略。
## 核心概念
@@ -21,12 +23,13 @@ AutoScript 的核心工作流程如下:
3. **输出数据**:将脚本修改后的参数传递给自动化引擎执行
<Note>
AutoScript 脚本修改的参数仅影响当次执行,不会回写到用户配置文件。下次任务运行时将重新从配置文件读取原始值。
AutoScript 脚本修改的参数仅影响当次执行,不会回写到用户配置文件。
下次任务运行时将重新从配置文件读取原始值。
</Note>
## 典型应用场景
- **每日动态日期**:始终预约"明天"的座位,无需每天手动修改日期
- **动态日期**:始终预约"明天"的座位,无需每天手动修改日期
- **条件切换**:根据是否启用标志决定不同的预约策略
- **时间偏移**:在特定时间段自动调整预约开始时间
- **批量处理**:配合用户分组,为不同用户设置不同的预约参数
@@ -62,7 +65,7 @@ AutoLibrary 提供两种方式编写 AutoScript:
</Card>
<Card
title="函数参考"
icon="function-square"
icon="function"
href="/zh/autoscript/functions"
>
查看所有可用的日期、时间工具函数及其用法。
@@ -74,11 +77,4 @@ AutoLibrary 提供两种方式编写 AutoScript:
>
了解可操作的目标变量、数据类型与约束规则。
</Card>
<Card
title="集成指南"
icon="link"
href="/zh/autoscript/integration"
>
了解如何将 AutoScript 集成到定时任务中。
</Card>
</CardGroup>
-137
View File
@@ -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`
- **下次执行重置**:下次定时任务触发时,从配置文件重新读取原始值
## 配置方式
### 在定时任务中指定脚本
<Steps>
<Step title="打开定时任务管理">
点击主界面底部的 [<Icon icon="clock" />] 按钮。
</Step>
<Step title="添加或编辑任务">
点击 [**添加任务**] 创建新任务,或右键现有任务选择 [**编辑**]。
</Step>
<Step title="配置 AutoScript">
在编辑对话框中找到 [**AutoScript**] 区域,点击 [**编辑**] 按钮打开内置代码编辑器编写脚本。
脚本编写完成后直接内嵌保存至定时任务配置,无需管理外部文件。
</Step>
<Step title="保存配置">
点击 [**确认**] 保存任务配置。
</Step>
</Steps>
{/* 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
```
+1 -1
View File
@@ -112,7 +112,7 @@ if USER_ENABLE then
...
end
-- 等价但不推荐
-- 等价
if USER_ENABLE == true then
...
end
+11 -8
View File
@@ -47,26 +47,29 @@ description: "AutoLibrary 定时任务管理 - 添加、编辑、删除定时任
### 重复执行
勾选 [**启用重复执行**] 后,可以按周循环执行任务:
勾选 [**启用重复执行**] 后,可以按周循环执行此任务:
- 选择需要运行的天(如:每周一、周三、周五)
- 需要每天运行则勾选全部(周一至周日)
- 全选和全不选均视为每日执行
- 需要每天运行则勾选全部
<Note>
重复周期选项中,全选和全不选均等同于每天重复执行。
</Note>
## AutoScript 自动化脚本
AutoScript 是基于 Lua 语言的自动化脚本引擎,支持基础的条件判断和算术表达式语法,
可在**重复性**定时任务运行前对预约参数进行动态调整,比如能够实现以下场景:
- 根据当前日期动态调整预约时间
- 根据当前星期判断是否需要预约
- 根据用户状态自动切换预约参数
<Note>
AutoScript 自动化脚本仅支持在**重复性**定时任务中配置,请务必
勾选 [**启用重复执行**] 以使用 AutoScript 脚本。
</Note>
- 根据当前日期动态调整预约时间
- 根据用户状态自动切换预约参数
- 多个用户配置的批量自动化处理
<Card
title="AutoScript 手册"
icon="code"
@@ -80,7 +83,7 @@ AutoScript 是基于 Lua 语言的自动化脚本引擎,支持基础的条件
在添加或编辑定时任务对话框中,点击 [**AutoScript 指令**] 区域
的 [**编辑**] 按钮,打开代码编辑器编写脚本。
例如,以下脚本将预约日期设为明天,开始时间设为上午 9:00:
例如,以下脚本将每次任务的预约日期设为明天,开始时间设为上午 9:00:
```lua
RESERVE_DATE = dateadd(datenow(), 1)
+4 -4
View File
@@ -56,18 +56,18 @@ AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具
![macOS DMG 安装界面](/images/v1.4.0/macos-dmg-install.png)
</Step>
<Step title="首次启动(需绕过门禁)">
由于应用未经过 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)