--- title: "配置指南" description: "AutoLibrary 完整配置参考 - 用户信息、预约参数、浏览器设置、运行模式" icon: "sliders" --- ## 启动工具 双击运行 `AutoLibrary.exe` 文件,工具将启动主界面。 软件首次启动时,未初始化配置文件,直接运行脚本会提示失败。请先完成下方配置。 ![运行主界面](/images/v1.2.1/运行主界面.png) ## 界面配置 点击主界面窗口右上角的配置按钮,打开配置窗口。 ![配置窗口-用户配置](/images/v1.2.1/配置窗口-用户配置.png) 初次运行软件时,用户配置默认为空,需要手动添加。 ### 用户列表 | 功能 | 说明 | 备注 | | --- | --- | --- | | 用户列表 | 显示当前配置文件中的所有用户 | 支持添加、删除用户操作,选中用户项进行详细配置 | ### 用户信息 | 参数 | 说明 | 默认值/可选值 | | --- | --- | --- | | 学号 | 用户的学号 | 必填项,用于登录图书馆系统 | | 密码 | 用户的密码 | 默认值为 `000000`,请根据实际情况修改 | ### 预约信息 | 参数 | 说明 | 默认值/可选值 | | --- | --- | --- | | 日期 | 座位预约日期 | 格式 `yyyy-MM-dd`,18:00-23:00可预约次日 | | 地点 | 预约座位的地点 | 默认值:`图书馆` | | 楼层 | 预约座位的楼层 | `二层` `三层` `四层` `五层` | | 区域 | 预约座位的区域 | 默认值:`二层内环`,可选随楼层变化 | | 座位号 | 预约座位的座位号 | 例如:`12A` `012a` | | 开始时间 | 预约开始时间 | 格式 `HH:mm`,可选范围 7:30-23:30 | | 结束时间 | 预约结束时间 | 格式 `HH:mm`,默认当前时间+2小时 | | 最大时间偏差 | 时间不可用时的偏差范围 | 0-120分钟,0 表示严格按选择时间 | | 优先最早/晚 | 多可选时间时的优先选择 | 开始时间优先最早,结束/续约时间优先最晚 | | 期望预约时长 | 预约期望时长 | 0-8 小时,默认 2 小时 | | 期望续约时长 | 续约期望时长 | 0-4 小时,默认 1 小时 | | 优先满足期望时长 | 是否优先满足时长限制 | 勾选后尽量满足,但可能因座位紧张导致预约失败 | ![配置窗口-运行配置](/images/v1.2.1/配置窗口-运行配置.png) ### 图书馆设置 | 参数 | 说明 | 默认值 | | --- | --- | --- | | 访问网址 | 图书馆系统的主机URL | `http://10.1.20.7`(无需更改) | | 登录页面 | 登录页面的URL路径 | `/login`(无需更改) | ### 浏览器设置 | 参数 | 说明 | 默认值/可选值 | | --- | --- | --- | | 浏览器类别 | 使用的浏览器类型 | Microsoft Edge / Google Chrome / Mozilla Firefox | | 浏览器驱动路径 | 驱动程序路径 | 通过浏览按钮选择 | | 无头模式 | 是否隐藏浏览器窗口 | `false`(显示窗口),`true` 为隐藏运行 | ### 登录设置 | 参数 | 说明 | 默认值 | | --- | --- | --- | | 自动识别验证码 | 是否自动处理验证码 | 勾选(推荐) | | 登录尝试次数 | 登录失败后最大重试次数 | 3 次 | ### 运行模式 | 功能 | 说明 | 触发条件 | | --- | --- | --- | | 自动预约 | 按配置进行座位预约 | 用户当天无有效预约时执行 | | 自动签到 | 自动完成图书馆签到 | 满足条件时执行,否则跳过 | | 自动续约 | 自动延长座位使用时间 | 满足条件时执行,否则跳过 | ![配置窗口-其它](/images/v1.2.1/配置窗口-其它.png) ### 配置文件的保存与读取 | 参数 | 说明 | | --- | --- | | 运行配置文件路径 | 可通过浏览按钮选择新的配置文件 | | 用户配置文件路径 | 可通过浏览按钮选择新的配置文件 | ### 导出配置 支持将当前配置导出为文件,选择目标路径和文件名后点击导出按钮。 ## 手动运行任务 配置完成后,点击主界面窗口底部左侧的 **"开始运行脚本"** 按钮,工具将按配置自动执行预约、签到、续约等操作。 任务将同时处理所有启用的用户及任务组。 ## 配置文件方式 软件启动时,将自动在用户主目录下创建运行配置文件 `run.json` 和用户配置文件 `user.json`。 配置文件统一存放于用户主目录下的 `AutoLibrary/config` 文件夹中。以 Windows 系统为例: ```text C:\Users\<用户名>\AppData\Roaming\AutoLibrary\config ``` 此项调整使得无论通过安装器还是便携版,软件均能正确读取同一套配置。 任何情况下都不建议在该目录下修改除运行配置文件和用户配置文件以外的任何文件。修改配置文件时请务必保持 JSON 格式正确,否则可能导致软件无法正常启动或运行。 ### run.json 控制工具的基本运行参数: ```json { "library": { "host_url": "http://10.1.20.7", "login_url": "/login" }, "mode": { "run_mode": 1 }, "login": { "auto_captcha": true, "max_attempt": 3 }, "web_driver": { "driver_type": "edge", "driver_path": "", "headless": false } } ``` **参数说明:** | 参数路径 | 类型 | 说明 | | --- | --- | --- | | `library.host_url` | string | 图书馆主机URL,无需更改 | | `library.login_url` | string | 登录页面URL,无需更改 | | `mode.run_mode` | number | 运行模式组合(+1 预约, +2 签到, +4 续约) | | `login.auto_captcha` | boolean | 自动验证码识别,建议保持 `true` | | `login.max_attempt` | number | 登录尝试次数,默认 3 次 | | `web_driver.driver_type` | string | 浏览器类型:`edge` / `chrome` / `firefox` | | `web_driver.driver_path` | string | 驱动文件路径,为空则运行失败 | | `web_driver.headless` | boolean | 无头模式,默认 `false` | ### user.json 控制用户的预约和签到参数: ```json { "groups": [ { "name": "分组名", "enable": true, "users": [ { "username": "您的学号", "password": "您的密码", "enable": true, "reserve_info": { "date": "2025-10-30", "place": "1", "floor": "4", "room": "5", "begin_time": { "time": "09:30", "max_diff": 30, "prefer_early": true }, "end_time": { "time": "21:23", "max_diff": 30, "prefer_early": false }, "renew_time": { "expect_duration": 1.0, "max_diff": 30, "prefer_early": false }, "seat_id": "31A", "expect_duration": 6, "satisfy_duration": true } } ] } ] } ``` 可以添加多个用户和分组,工具会按顺序处理每个用户的预约请求。如果只添加用户而不添加分组,AutoLibrary 会自动创建默认兼容分组。 **用户参数说明:** | 参数路径 | 类型 | 说明 | | --- | --- | --- | | `username` | string | 学号 | | `password` | string | 密码 | | `enable` | bool | 是否启用该用户,`false` 时跳过 | | `reserve_info.date` | string | 预约日期(格式 `yyyy-MM-dd`) | | `reserve_info.place` | string | `"图书馆"` 或 `"1"` | | `reserve_info.floor` | string | 楼层:`2`=二层 `3`=三层 `4`=四层 `5`=五层 | | `reserve_info.room` | string | 区域:`1`=二层内环 `2`=二层西区 `3`=三层内环 `4`=三层外环 `5`=四层内环 `6`=四层外环 `7`=期刊区 `8`=五层考研 | | `reserve_info.seat_id` | string | 座位编号,如 `12A` `012a` | | `reserve_info.expect_duration` | number | 期望预约时长(分钟) | | `reserve_info.satisfy_duration` | bool | 是否满足期望时长 | | `reserve_info.begin_time.time` | string | 开始时间(格式 `HH:mm`) | | `reserve_info.begin_time.max_diff` | number | 最大时间差(分钟) | | `reserve_info.begin_time.prefer_early` | bool | 是否优先较早时间 | | `reserve_info.end_time.time` | string | 结束时间(格式 `HH:mm`) | | `reserve_info.end_time.max_diff` | number | 最大时间差(分钟) | | `reserve_info.end_time.prefer_early` | bool | 结束时间优先较晚 | | `reserve_info.renew_time.expect_duration` | number | 期望续约时长(小时) | | `reserve_info.renew_time.max_diff` | number | 最大时间差(分钟) | | `reserve_info.renew_time.prefer_early` | bool | 续约时间优先较晚 |