晨叶梦春
|
79e16dd1a2
|
fix(auth): incorrect auth key name
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-09-06 13:21:57 +08:00 |
|
晨叶梦春
|
adb9fac563
|
build: move icons from assets/ to src/tchmaterial-parser/assets/
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 23:08:15 +08:00 |
|
晨叶梦春
|
8b70fb11a6
|
feat: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 13:19:44 +08:00 |
|
晨叶梦春
|
2c5dd1c942
|
feat(ui): add about window
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 02:53:09 +08:00 |
|
晨叶梦春
|
f70137b552
|
feat(ui): replace theme icon fallback with image
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-03 01:26:03 +08:00 |
|
晨叶梦春
|
600ba5cfa7
|
feat: improve types & menus
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-01 01:08:04 +08:00 |
|
肥宅水水呀
|
ac0a83e8ad
|
refactor: 将单文件拆分为模块化包
原 src/tchmaterial_parser.py 已增长到 1608 行,其中 main() 占 541 行并声明
8 个 global,导致前面的函数反向依赖 main() 运行时才创建的对象;资源树部分
的 12 个闭包共享 8 个 nonlocal 变量;测试为取 3 个纯函数被迫拉起整个 GUI 栈。
现拆分为 15 个模块,最大 311 行,并保持原有的全局状态模型不变:每个全局
变量归属到拥有它的模块,由 app.py 在创建控件后通过 bind_* 函数写入。函数名、
参数、逻辑与注释均未改动,未启用的 fetch_lesson_list() 亦原样保留。
- 非 GUI 层:platform_utils、network、config、api、catalog、bookmarks、images
- 界面层:ui/runtime、theme、widgets、download_panel、token_window、resource_tree
- app.py 收容 main() 剩余部分,从 541 行降至 278 行且不再使用 global
- 资源树整体搬入 build_resource_tree(),闭包与 nonlocal 链保持原样
- 新增 runtime.scaled(),收敛全项目约 60 处 round(n * ui_scale)
- 入口改为包外的 src/main.py,spec 增加 pathex=['src']:PyInstaller 会把入口
当作 __main__ 分析,包内脚本的相对导入在此情形下不成立
- resource_path() 上溯层级 +1;测试改为直接导入 catalog 与 images,不再连带
拉起 tkinter/sv_ttk,headless CI 现在可以跑测试
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 16:00:45 +08:00 |
|
肥宅水水呀
|
4d12189dcc
|
feat(ui): 重构界面并支持深浅主题
引入 sv-ttk,优化 Win11 风格布局与系统 Emoji 显示。
统一跨平台配置存储,外置窗口图标并同步打包规则、截图和文档。
|
2026-07-30 14:42:43 +08:00 |
|
肥宅水水呀
|
365eb3eee0
|
refactor: 将顶层界面代码收进 main() 函数
此前 GUI 在模块顶层直接创建并调用 mainloop(),导致该文件一经导入就会
弹出窗口并阻塞,无法被 import,因而也无法为其中的任何函数编写测试。
同时文件名中的连字符不是合法的 Python 模块名,即使补上入口函数仍无法导入。
- 将 tchMaterial-parser.py 更名为 tchmaterial_parser.py
- 把原第 777 行起的顶层代码移入 main(),并补充 if __name__ == "__main__" 保护
- 界面说明文字提为模块级常量 DESCRIPTION,避免其作为三引号字符串
随缩进变动而在界面上多出空格
需要注意的是,download、download_file、parse_and_copy 等函数定义在前,
却依赖后面创建的控件,这些名字移入 main() 后会变为局部变量,导致点击按钮时
抛出 NameError(启动阶段不报错,仅在触发时暴露)。为此在 main() 中为
root、ui_font_family、url_text、bookmark_var、download_btn、
download_progress_bar、progress_label 共 7 个名字声明 global。
其余控件由随之成为嵌套函数的 build_tree_items、on_tree_select 通过闭包访问,
无需声明。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 12:12:04 +08:00 |
|
肥宅水水呀
|
5f03944343
|
build: 图标资源移入 assets/ 并重新生成多尺寸 icon.ico
src/ 目录此前混放了 5 个图标文件,与代码难以区分;且 favicon_* 的命名
源自网页图标的概念,与其实际用途(可执行文件图标、窗口图标)不符。
现统一移入 assets/ 并改用能说明用途的名称:
- favicon_48x48.ico -> icon.ico (Windows 可执行文件图标)
- favicon_223x223.png -> window_icon.png(运行时窗口图标,源码中以 base64 内嵌)
原 icon.ico 仅含单张 48x48 的图,Windows 在标题栏(16x16)、桌面(32x32)
与超大图标视图(256x256)下只能拉伸缩放,显示模糊。现由 1024x1024 母版
重新生成,包含 16/24/32/48/64/128/256 共 7 个尺寸。
另将 version.txt 更名为 version_info.txt,与其内容(PyInstaller 的
版本信息资源)相符,并新增 assets/README.md 说明各文件的用途、
使用者及更换图标时的重新生成步骤。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 12:11:07 +08:00 |
|
肥宅水水呀
|
9dbe4161d2
|
build: 将主脚本扩展名由 .pyw 改为 .py
flake8 默认仅收集 *.py 文件,此前 CI 中的 `flake8 .` 匹配不到任何文件,
Lint 工作流实际从未生效。改名后静态检查方可真正覆盖主脚本。
同步更新 PyInstaller spec 中的入口路径。
|
2026-07-30 10:06:00 +08:00 |
|
Mister-Hope
|
b38a746e67
|
ci: update workflow and readme
|
2026-01-12 12:06:09 +08:00 |
|
Mister-Hope
|
6923180c45
|
feat: add support for mac gui app
|
2025-11-20 14:24:08 +08:00 |
|
晨叶梦春
|
01babb2531
|
fix(spec): support non-Windows platform
|
2025-05-18 20:58:19 +08:00 |
|
晨叶梦春
|
9e72cdfe1f
|
feat: fix icon & add build info
|
2025-05-18 20:52:18 +08:00 |
|