KenanZhu
|
2c90008fcd
|
refactor(WebDriverManager, ALWebDriverDownloadDialog): 重命名驱动状态枚举并完善对话框状态感知
|
2026-03-21 17:22:25 +08:00 |
|
KenanZhu
|
5c393595d7
|
fix(ALWebDriverDownloadDialog): 重命名信号避免与 QThread 内置信号冲突并改进线程生命周期管理
|
2026-03-21 01:53:22 +08:00 |
|
KenanZhu
|
4924f4b031
|
fix(WebDriverDownloader): 优化下载速度计算逻辑并改用时间间隔触发回调
- 将回调触发条件由进度变化量改为固定时间间隔(0.5s), 避免突发数据导致速度虚高
- 修正 total_size == 0 为 total_size <= 0, 完善边界判断
- 重命名变量提升可读性(last_time/last_size -> last_callback_time/last_callback_size)
|
2026-03-21 01:52:20 +08:00 |
|
KenanZhu
|
62c1ecdb07
|
fix(LogManager): 修复 CallerInfoFormatter 中 lineno 类型转换异常
|
2026-03-21 00:55:17 +08:00 |
|
KenanZhu
|
aef28b6d5e
|
feat(ALConfigWidget): 集成浏览器驱动自动下载功能到配置界面
|
2026-03-21 00:55:09 +08:00 |
|
KenanZhu
|
afa1d39051
|
feat(gui): 新增 ALStatusLabel 状态标签组件和浏览器驱动下载对话框
|
2026-03-21 00:55:02 +08:00 |
|
KenanZhu
|
84cff6acc3
|
feat(WebDriverManager): 支持下载取消操作并完善异常处理
|
2026-03-21 00:54:49 +08:00 |
|
KenanZhu
|
95aa2bb518
|
feat(WebDriverManager): 新增浏览器管理类 WebDriverManager
- 新增浏览器管理类,支持下载和管理浏览器驱动
|
2026-03-20 19:20:43 +08:00 |
|
KenanZhu
|
571af554d2
|
chore(Main.py): 使用 exec() 替换 exec_() 方法
- chore(Main.py): 使用 exec() 替换 exec_() 方法
|
2026-03-20 19:20:01 +08:00 |
|
KenanZhu
|
706fc889f9
|
chore(*): 重构项目结构
- 新增 src/boot 目录,用于存放启动时需要初始化的模块
- 新增 src/managers 目录,用于存放项目中的管理模块
- 新增 src/managers/config 目录,用于存放配置管理模块
- 新增 src/managers/log 目录,用于存放日志管理模块
- 新增 src/managers/driver 目录,用于存放浏览器驱动管理模块
- 修改对应文件中 import 导入路径
|
2026-03-20 19:19:34 +08:00 |
|
KenanZhu
|
bf93cc2cbc
|
style(*): 将中文逗号替换为英文逗号
|
2026-03-20 08:59:09 +08:00 |
|
KenanZhu
|
1cfe261324
|
style(ALTimerTaskManageWidget): 优化详细信息的上下文语义
- 使用 “已记录次数” 替代 “已执行次数”,更符合实际含义
|
2026-03-19 12:23:36 +08:00 |
|
KenanZhu
|
e5dea7bcc5
|
refactor(gui): 统一定时任务字段命名
- 将 task_uuid 字段重命名为 uuid,添加时间字段 add_time 重命名为 added_time
|
2026-03-19 12:22:32 +08:00 |
|
KenanZhu
|
30b36b68dd
|
refactor(ALTimerTaskManageWidget): 修复重复任务历史记录逻辑
- 修复 onRepeatTimerTaskIs 方法中日期循环索引错误,使用 %7 正确处理跨周星期计算
- 新增 OUTDATED 状态的专属处理逻辑,补全过期任务的历史记录
- 添加函数返回值并统一枚举比较方式为 ==,提高代码一致性
|
2026-03-19 11:56:44 +08:00 |
|
KenanZhu
|
595f43d852
|
optimize(ALTimerTaskHistoryDialog): 优化任务历史对话框标题字体样式
|
2026-03-18 17:52:02 +08:00 |
|
KenanZhu
|
02463f087e
|
feat(MsgBase, gui, operators): 增强日志输出功能
- 为 _showTrace 方法添加 no_log 参数,支持控制日志写入
- 在主窗口各关键操作点添加日志输出
- 优化错误信息输出策略,分离 trace 和 log 输出
- 改进配置目录初始化过程的日志记录
|
2026-03-18 12:46:37 +08:00 |
|
KenanZhu
|
e481824344
|
refactor(AppInitializer): 初始化应用程序时,先初始化日志管理器,再初始化配置管理器
|
2026-03-18 11:03:44 +08:00 |
|
KenanZhu
|
160d6a2428
|
refactor(operators): 为 _showTrace 方法添加合适的 TraceLevel 参数
|
2026-03-18 11:02:52 +08:00 |
|
KenanZhu
|
2d0782c368
|
refactor(AppInitializer): 将初始化逻辑提取到 AppInitializer 模块中
- 本次提交将 Main.py 中的 ConfigManager, LogManager 等初始化逻辑提取到 AppInitializer 模块中
- 更改默认的配置文件路径从 config 目录变为 configs 目录,并考虑兼容性问题
|
2026-03-18 10:17:09 +08:00 |
|
KenanZhu
|
824b9b8869
|
fix(ALMainWindow): 修复 ALMainWindow 的配置路径同步问题
- 先前的实现并未考虑到配置窗口更改时的同步问题,本次提交在
每次配置窗口更改并关闭保存时,同步更新 ALMainWindow 中的配置路径
|
2026-03-18 10:14:27 +08:00 |
|
KenanZhu
|
c26f19b6b3
|
feat(LogManager): 新增日志持久化功能
- 新增 LogManager 单例类,支持日志文件按日期滚动
- 创建 CallerInfoFormatter 自定义格式化器,提取真实调用位置
- 为 MsgBase._showTrace 方法添加日志级别参数,集成日志系统
- 新增 initializeLogManager 初始化函数,日志存储于 AppDataLocation/logs/
- 日志输出格式对齐:[时间] - [类名(15)|级别(8)] - [文件:行号(20:4)] - 消息
- 控制台/INFO级别,全量日志 / DEBUG 级别,错误日志 / ERROR级别
- 全量日志保留7天,错误日志保留14天
|
2026-03-17 21:37:24 +08:00 |
|
KenanZhu
|
1d99ca92f2
|
fix(LibReserve): 修复日期比较逻辑错误并优化时间处理代码
- 修复使用字符串直接比较日期导致的逻辑错误,改用时间戳比较
- 优化时间验证逻辑,支持 satisfy_duration 模式下的开始晚于结束时间时的交换时间处理
- 添加必要的注释说明 place 参数检查的跳过原因和边界情况处理
- 重构变量命名,提高代码可读性(cur_date -> cur_date_str)
- 修正字符串引号风格,统一使用单引号
|
2026-03-17 20:46:00 +08:00 |
|
KenanZhu
|
50ebeb0fab
|
style(LibReserve): 修复 __selectSeatTime 参数的拼写错误
- expct_duration -> expect_duration
|
2026-03-17 20:43:00 +08:00 |
|
KenanZhu
|
faa26b489a
|
fix(LibReserve): 修复冗余的链式赋值
|
2026-03-17 20:42:42 +08:00 |
|
KenanZhu
|
c03eed1d51
|
fix(LibReserve): 修复错误使用的海象运算符条件判断
|
2026-03-17 20:42:31 +08:00 |
|
KenanZhu
|
2f5680c547
|
fix(LibTimeSelector) style(LibReserve): 修复时间转换方法 _timeToMins 并重命名为 _timeStrToMins
- 之前的实现未严格限制传入参数为整形,导致在转换时间字符串时可能出现类型错误。
- 重命名为 _timeStrToMins 以明确表示该方法仅用于时间字符串转换。并更新相关调用。
- 重命名 __selectSeatTime 中的冗长局部变量,便于理解和维护。
- 删除多余的时间格式转换嗲用
|
2026-03-17 20:00:57 +08:00 |
|
KenanZhu
|
0a94c344d5
|
ci(workflows): 修复 Release 工作流的触发条件
- 当创建 'release/v*' 分支时,自动进行 Release 构建
/! Release 流程必须手动创建分支,工作流结束后会将对应分支提交合并
/! 到 main 分支上,且对应分支会被删除
|
2026-03-17 15:46:32 +08:00 |
|
KenanZhu
|
7df6a9157d
|
refactor(LibReserve, LibRenew): 提取时间选择公共逻辑到 LibTimeSelector 基类
将 LibReserve 和 LibRenew 中重复的时间转换和选择逻辑提取到
LibTimeSelector 基类,消除代码重复,提升可维护性。
主要变更:
- 新增 LibTimeSelector 基类,提供时间转换和最佳时间选择算法
- LibReserve 和 LibRenew 继承 LibTimeSelector,移除重复代码
- 拆分过长方法,提升代码可读性
- 修正方法命名 __selectNearstTime -> __selectNearestTime
同时修复续约功能业务逻辑漏洞:
- 新增续约时间上限校验,防止续约时间超过图书馆闭馆时间(23:30)
|
2026-03-14 14:48:35 +08:00 |
|
KenanZhu
|
ebe3910df5
|
fix(AutoLib): 修复自动预约,签到和续约功能的顺序处理逻辑问题
边缘情况下,即用户当前的预约时间满足签到或者续约的时间范围要求时,预期的处理顺序是先进行预约,再进行签到或者续约。
该提交修复了对这种情况的处理逻辑,确保先进行预约,再进行签到或者续约。
|
2026-03-10 11:00:01 +08:00 |
|
KenanZhu
|
84367e4abe
|
chore(*): 更新网站地址为 www.autolibrary.kenanzhu.com
|
2026-03-10 10:59:13 +08:00 |
|
KenanZhu
|
3a50991860
|
fix(ALMainWindow): 修复程序最小化到托盘图标后,退出菜单异常处理问题
|
2026-03-10 10:58:27 +08:00 |
|
KenanZhu
|
e4482b01da
|
fix(ALMainWindow): 修复托盘图标初始化问题
1. 修复托盘图标初始化上下文菜单的重复调用问题
2. 修复托盘图标初始化忘记更改消息方法的问题
|
2026-03-05 07:55:36 +08:00 |
|
KenanZhu
|
c06e0e05da
|
fix(ALMainWindow): 修复定时任务的消息通知图标与运行状态不一致的问题
|
2026-03-05 07:54:18 +08:00 |
|
KenanZhu
|
ff083884b6
|
style(utils.ConfigManager): 添加一些注释,并为 getBaseConfigDir 添加文档字符串。
|
2026-03-04 23:53:31 +08:00 |
|
KenanZhu
|
9ae89b61a4
|
chore(utils.ConfigManager): 将 ConfigManager 类的 appDir 重命名为 configDir
|
2026-03-04 23:52:28 +08:00 |
|
KenanZhu
|
2152cc46a3
|
style(*): 修改 ConfigManager 模块的 import 方式,并移除未使用的 import 语句
|
2026-03-04 23:52:01 +08:00 |
|
github-actions[bot]
|
95a3ae2a24
|
chore(release): v1.1.0 [auto release commit]
|
2026-02-26 15:04:42 +00:00 |
|
KenanZhu
|
896242a1e3
|
fix(Main, ALConfigWidget): 修复配置文件初始化问题
|
2026-02-26 22:59:26 +08:00 |
|
KenanZhu
|
25aab588a8
|
feat(utils): 添加 ConfigManager 与 JSON 配置读写,替换旧实现
add:
- src/utils/ConfigManager.py
- src/utils/JSONReader.py
- src/utils/JSONWriter.py
remove:
- src/utils/ConfigReader.py
- src/utils/ConfigWriter.py
refactor:
- 更新调用方以使用 ConfigManager / JSONReader / JSONWriter(见 ALConfigWidget.py、ALMainWindow.py、ALTimerTaskManageWidget.py、ALMainWorkers.py 等)
- 统一方法命名(initlize* -> initialize*)、改进错误提示与配置路径管理
BREAKING CHANGE: 删除 ConfigReader/ConfigWriter,外部调用需改为 JSONReader/JSONWriter 或通过 ConfigManager 访问配置
|
2026-02-26 21:18:18 +08:00 |
|
KenanZhu
|
5f2327cf61
|
style(gui.*): 修改一些 import 顺序和格式
|
2026-02-23 22:26:52 +08:00 |
|
KenanZhu
|
4aeca08ce8
|
chore(ALMainWindow, ALMainWorkers): 修改统一部分函数和变量的命名
|
2026-02-21 23:18:17 +08:00 |
|
KenanZhu
|
a1ff85256a
|
refactor(ALConfigWidget, ALTimerTaskManageWidget): 优化界面的错误异常处理
|
2026-02-21 15:38:56 +08:00 |
|
KenanZhu
|
169de92d5b
|
chore(ALConfigWidget): 删除了未使用的方法 def defaultGroup() 和 def defaultUsers()
|
2026-02-21 15:10:36 +08:00 |
|
KenanZhu
|
5ca4a14a14
|
chore(*): 更改一些界面类方法,局部变量和信号的命名:
(ALConfigWidget):
def initlizeDefaultConfigPaths() 中 script_path 和 script_dir 分别改为 executable_path 和 executable_dir
def fillUserTree() 更改为 def setUsersToTreeWidget()
def collectUserFromUserInfoWidget() 更改为 def collectUserFromWidget()
def collectUserConfigFromUserTreeWidget 更改为 def collectUsersFromTreeWidget()
交换了一些方法的位置
(ALSeatMapSelectDialog):
信号 seatMapSelectDialogClosed 改为 seatMapSelectDialogIsClosed
(ALTimerTaskManageWidget):
信号 timerTaskManageWidgetClosed 改为 timerTaskManageWidgetIsClosed
(ALMainWindow):
def __init__() 中 script_path 和 script_dir 分别改为 executable_path 和 executable_dir
更改 ALSeatMapSelectDialog 和 ALTimerTaskManageWidget 中相关的信号命名
|
2026-02-21 14:26:54 +08:00 |
|
KenanZhu
|
155b3fe3ca
|
style(LibRenew): 删除多余注释,修改部分注释的格式
|
2026-02-19 17:09:15 +08:00 |
|
KenanZhu
|
99d454a566
|
refactor(LibChecker, AutoLib): 重构 LibChecker 类中 canRenew 方法的返回值类型:
将 canRenew 方法的返回值类型指定为 tuple(bool, dict),并随之修改返回值以及调用
模块的调用逻辑。
|
2026-02-19 17:05:42 +08:00 |
|
github-actions[bot]
|
3963b3f2e6
|
chore(release): v1.0.5 [auto release commit]
|
2026-02-16 07:04:57 +00:00 |
|
KenanZhu
|
b55a0c06a5
|
refactor(ALConfigWidget, ALTimerTaskManageWidget): 重构配置和定时器任务管理窗口的配置显式初始化
修改后配置文件的初始化将不再通过 QMessageBox 提示用户,界面将只在初始化失败时显示错误信息。
|
2026-02-16 14:17:58 +08:00 |
|
KenanZhu
|
2496c4e367
|
fix(ALMainWindow): 修复配置按钮状态问题
|
2026-02-16 13:02:40 +08:00 |
|
KenanZhu
|
de30559af1
|
chore(ALTimerTaskManageWidget): 更改信号函数命名
|
2026-02-16 13:02:01 +08:00 |
|