--- title: "v1.0.5 用户手册" description: "AutoLibrary v1.0.5 版本用户手册 - 运行模式组合优化,界面与配置文件双配置方式" icon: "book" --- ## 工具简介 AutoLibrary 是一款专为北京建筑大学图书馆设计的自动化工具,旨在帮助学生简化图书馆座位操作流程,节省宝贵时间。 本工具模拟人工操作,通过简单的界面配置并交互使用。 ### 工具特点 ## 功能介绍 **自动预约** — 如果用户当前没有有效预约时,工具会自动为您预约指定座位。 > **适用场景:** 提前预约第二天的座位 **自动签到** — 如果用户当前已有预约,且在可签到时间范围(开始时间的前后30分钟)内,工具会自动完成签到。 > **适用场景:** 因忘记签到而导致失约,影响正常使用 **自动续约** — 如果用户当前正在使用座位,且到达可续约时间(结束时间前的120分钟),工具会自动延长使用时间。 > **适用场景:** 需要长时间使用座位 ### 模式组合使用 运行模式可以组合使用,只需在配置窗口中勾选对应模式即可: **定时任务** — 使用内置定时任务管理,添加定时任务,指定时间后按当前预约信息自动运行。 ![功能介绍-定时任务](/assets/images/v1.0.2/功能介绍-定时任务.png) > **适用场景:** 定时执行预约、签到、续约操作 ## 准备工作 ### 下载浏览器驱动 工具需要通过浏览器驱动来控制浏览器,请根据您使用的浏览器下载对应版本的驱动: - **Microsoft Edge** — 适用于Windows 10/11系统 [下载驱动](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) - **Google Chrome** — 最常用的浏览器 [下载驱动](https://developer.chrome.google.cn/docs/chromedriver/downloads) - **Mozilla Firefox** — 开源浏览器 [下载驱动](https://github.com/mozilla/geckodriver/releases) ## 使用步骤 ### 启动工具 双击运行AutoLibrary.exe文件,工具将启动主界面。 > **提示:**软件首次启动,未初始化配置文件,直接运行脚本会提示失败。 ![运行主界面](/assets/images/v1.0.0/运行主界面.png) ### 配置工具 对于不同用户的需求,你可以使用两种不同的方式来配置工具 1. 使用界面配置:点击主界面窗口右上角的配置按钮,打开配置窗口。 ![配置窗口-用户配置](/assets/images/v1.0.2/配置窗口-用户配置.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小时 | | 优先满足期望时长 | 是否优先满足时长限制 | 勾选后可能因座位紧张导致预约失败 | ![配置窗口-运行配置](/assets/images/v1.0.2/配置窗口-运行配置.png) #### 图书馆设置 | 参数 | 说明 | 默认值/备注 | | --- | --- | --- | | 访问网址 | 图书馆系统的主机URL | 默认值:http://10.1.20.7,无需更改 | | 登录页面 | 登录页面的URL路径 | 默认值:/login,无需更改 | #### 浏览器设置 | 参数 | 说明 | 默认值/可选值 | | --- | --- | --- | | 浏览器类别 | 选择使用的浏览器类型 | 支持:Microsoft Edge、Google Chrome、Mozilla Firefox | | 浏览器驱动路径 | 浏览器驱动程序路径 | 通过浏览按钮选择对应版本的浏览器驱动 | | 无头模式 | 是否隐藏浏览器窗口 | 默认:false(显示窗口),true为隐藏窗口运行 | #### 登录设置 | 参数 | 说明 | 默认值/可选值 | | --- | --- | --- | | 自动识别验证码 | 是否自动处理验证码 | 默认:勾选(推荐) | | 登录尝试次数 | 登录失败后的最大重试次数 | 默认:3次 | #### 运行模式 | 功能 | 说明 | 备注 | | --- | --- | --- | | 自动预约 | 按配置进行座位预约 | 用户当天无有效预约时执行 | | 自动签到 | 自动完成图书馆签到 | 满足条件时执行,否则跳过 | | 自动续约 | 自动延长座位使用时间 | 满足条件时执行,否则跳过 | ![配置窗口-其它](/assets/images/v1.0.2/配置窗口-其它.png) #### 当前配置: | 参数 | 说明 | 操作 | | --- | --- | --- | | 运行配置文件路径 | 当前使用的运行配置文件路径 | 可通过浏览按钮选择新的配置文件 | | 用户配置文件路径 | 当前使用的用户配置文件路径 | 可通过浏览按钮选择新的配置文件 | #### 导出配置: | 功能 | 说明 | 操作 | | --- | --- | --- | | 导出配置文件 | 将当前配置导出为文件 | 选择目标路径和文件名后点击导出按钮 | 2. 使用配置文件:在脚本可执行文件的根目录创建运行配置文件run.json和用户配置文件user.json。 用户配置文件 run.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": "msedgedriver.exe", "headless": false } } ``` #### 参数说明 | 参数 | 类型 | 说明 | | --- | --- | --- | | library/ | | | | ./host_url | string | 图书馆主机URL,无需更改 | | ./login_url | string | 登录页面URL,无需更改 | | mode/ | | | | ./run_mode | number | 运行模式,可组合使用(+1:自动预约,+2:自动签到, +4:自动续约) | | login/ | | | | ./auto_captcha | boolean | 自动验证码识别,建议保持true | | ./max_attempt | number | 登录尝试次数,默认3次 | | web_driver/ | | | | ./driver_type | string | 浏览器类型(edge/chrome/firefox) | | ./driver_path | string | 驱动文件路径 | | ./headless | boolean | 无头模式,默认false(显示浏览器窗口) | user.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 | 是否启用该用户的预约,默认值为true,若设置为false,则该用户的预约时将被跳过。 | | reserve_info/ | | | | ./date | string | 预约日期(格式:yyyy-MM-dd) | | ./place | string | 图书馆或字符"1"(预约图书馆) | | ./floor | string | 预约楼层 **点击查看** "2": "二层" "3": "三层" "4": "四层" "5": "五层" | | ./room | string | 预约区域 **点击查看** "1": "二层内环" "2": "二层西区" "3": "三层内环" "4": "三层外环" "5": "四层内环" "6": "四层外环" "7": "四层期刊区" "8": "五层考研" | | ./seat_id | string | 座位编号(例如:"12A/12a/012A/012a") | | ./expect_duration | number | 期望预约时长(分钟) | | ./satisfy_duration | bool | 是否满足期望预约时长 | | /begin_time/ ././time | string | 预约开始时间(格式:HH:mm) | | ././max_diff | number | 最大时间差(分钟) | | ././prefer_early | bool | 是否优先预约较早的时间 | | ./end_time/ ././time | string | 预约结束时间(格式:HH:mm) | | ././max_diff | number | 最大时间差(分钟) | | ././prefer_early | bool | 是否优先预约较早的时间 | | ./renew_time/ ././expect_duration | number | 期望预约时长(小时) | | ././max_diff | number | 最大时间差(分钟) | | ././prefer_early | bool | 是否优先预约较早的时间 | ### 定时任务设置 #### 定时任务设置 你可以在软件中设置定时任务,让软件在指定时间自动运行。 ![定时任务管理](/assets/images/v1.0.0/定时任务管理.png) #### 定时任务管理 你可以在定时任务管理界面添加、删除、修改定时任务。 > **提示:**在队列中的任务,即已就绪和运行中任务无法删除,只能等待运行结束。 ![定时任务添加](/assets/images/v1.0.0/定时任务添加.png) 定时时间分为特定时间和相对时间两种 | 定时选项 | 描述 | | --- | --- | | 特定时间 | 指定定时任务开始时间(格式:yyyy-MM-dd HH:mm:ss) | | 相对时间 | 预约开始时间相对当前时间的偏移量(天,小时,分钟,秒) | 执行方式分为静默执行和运行前提示两种 | 执行方式 | 描述 | | --- | --- | | 静默执行 | 定时任务开始后,自动运行,执行结束后会在右下角显示系统通知 | | 运行前提示 | 定时任务开始时,会显示主界面并显示系统通知 | ![定时任务](/assets/images/v1.0.0/定时任务.png) #### 监控运行状态 你可以在软件中监控定时任务的运行状态,包括是否当前待运行,队列中,运行中,已执行任务数量。 ![监控运行状态](/assets/images/v1.0.0/定时任务开始运行.png) #### 运行结束 如果选择了静默执行,定时任务运行结束后,会在右下角显示系统通知。 如果选择了运行前提示,定时任务运行结束后,会在主界面显示系统通知。 ![运行结束](/assets/images/v1.0.0/定时任务运行结束.png) ![运行结束提示](/assets/images/v1.0.0/定时任务运行结束提示.png) ### 监控运行状态 如果运行设置中没有勾选浏览器无头模式运行,工具会在运行过程中打开浏览器窗口,显示自动运行过程。 除此之外,你还可以通过软件的运行日志输出区域查看详细的运行状态和错误信息。 ![监控运行状态](/assets/images/v1.0.0/监控运行状态-运行图.png) ### 查看运行结果 软件运行结束后日志会显示本次运行结果:"处理完成, 共计 n 个用户, 成功 n 个用户, 失败 m 个用户, 跳过 s 个用户"。 经计算,图片中示例中共计划预约 5 个用户,1 个用户被预先设置为跳过,剩余 4 个用户中,3 个预约操作成功,另外一个由于时长超过最晚可预约时间,判定失败。人均预约时长在 3-4 秒左右,满足正常使用需求。 ![查看运行结果](/assets/images/v1.0.0/监控运行状态-运行结果.png) ## 故障排除 ### 常见问题及解决方法 ### 工具启动时报错"无法找到驱动/Unable to obtain driver"等类似报错信息 这是大概率是因为浏览器驱动未正确安装或版本不匹配。