晨叶梦春
|
eb7833db3d
|
fix: update bug report template to remove render type
Remove render type for error message field in bug report template.
|
2026-08-27 05:40:32 +08:00 |
|
晨叶梦春
|
91a9e63183
|
feat: add CONTRIBUTING.md, improve AGENTS.md
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-27 05:33:03 +08:00 |
|
肥宅水水呀
|
56b5a91bb3
|
chore: 补充 Agent 开发约定并忽略 .tmp 目录
|
2026-08-21 10:00:17 +08:00 |
|
肥宅水水呀
|
f9bcd76baf
|
chore: 将版本号从 4.1 升级到 4.2
v4.2
|
2026-08-18 11:39:45 +08:00 |
|
肥宅水水呀
|
e87c6a193e
|
feat(auth): 强制登录凭据为三项 JSON,并兼容旧版回填
保存时必须提供 access_token、mac_key、diff,格式错误会提示失败;留空仍可清除。
旧版只存 Access Token 时,设置窗口回填为三项 JSON。
|
2026-08-17 17:48:01 +08:00 |
|
肥宅水水呀
|
cd4b6a070a
|
fix: 按官网 MAC 签名私有下载,并避免 400 时连打镜像 (#81, #76)
2efcd89 无条件拼接 accessToken,Token 无效时会触发 #81。
现对每个 URL 现算 X-ND-AUTH;400 只在同地址退避重试,不再立刻切换 r2/r3。
|
2026-08-17 17:34:43 +08:00 |
|
肥宅水水呀
|
4d634bc4d4
|
fix(network): 禁止读取系统及环境代理配置
|
2026-08-17 11:09:34 +08:00 |
|
肥宅水水呀
|
bb55628250
|
fix: 避免下载文件名过长及同名资源冲突 (#80)
* fix: 避免重复拼接资源标题 (#76)
* fix: 为同名下载任务分配唯一路径
v4.1
|
2026-08-16 12:36:44 +08:00 |
|
肥宅水水呀
|
5ed6c7b3cb
|
fix(ui): 补充控制台粘贴拦截提示
- 说明 Chrome 和 Edge 的控制台防误粘贴机制
- 引导用户手动输入控制台要求的允许粘贴短语
- 优化脚本复制成功后的操作提示
- 适配深色与浅色主题下的警告文字颜色
|
2026-08-16 12:36:07 +08:00 |
|
肥宅水水呀
|
ae0fad2406
|
feat(ui): 优化 Access Token 获取引导界面 UI
- 分区展示操作步骤、控制台脚本和 Token 复制说明
- 新增登录页面跳转及脚本一键复制功能
- 增加复制成功状态反馈
- 修复嵌套卡片产生的多余细线
- 优先使用 Cascadia Mono 展示代码并保留字体回退
|
2026-08-16 12:27:13 +08:00 |
|
肥宅水水呀
|
2efcd89fed
|
fix: 修复私有资源下载鉴权与镜像重试 (#79)
* fix: 为私有资源请求附加访问令牌
* feat: 支持私有下载镜像自动重试
* fix: 完善私有资源鉴权错误提示
|
2026-08-16 11:54:25 +08:00 |
|
晨叶梦春
|
3aafb9793d
|
Merge pull request #77 from iamzhz/main
fix: 未检验 config.access_token 是否为 None
|
2026-08-15 01:07:50 +08:00 |
|
iamzhz
|
349cf65527
|
fix: handle None access_token in ASCII validation check
|
2026-08-15 00:45:03 +08:00 |
|
晨叶梦春
|
91a4082ddc
|
Merge branch 'main' of https://github.com/happycola233/tchMaterial-parser
|
2026-08-13 17:42:15 +08:00 |
|
晨叶梦春
|
317364fcb6
|
feat: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-13 17:41:18 +08:00 |
|
晨叶梦春
|
931700ee06
|
Merge pull request #75 from iamzhz/main
feat: 在下载之前检测 Access Token 是否包含非 ASCII 字符
|
2026-08-13 12:56:19 +08:00 |
|
iamzhz
|
db3b15dd17
|
feat: check Access Token contains ASCII only before downloading
|
2026-08-13 12:05:43 +08:00 |
|
晨叶梦春
|
e51c9f9f3d
|
fix(menu): duplicate event binding & position when using keyboard
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-05 15:44:34 +08:00 |
|
晨叶梦春
|
1e73902560
|
fix: clipboard not work in macOS
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-05 15:10:15 +08:00 |
|
晨叶梦春
|
adb9fac563
|
build: move icons from assets/ to src/tchmaterial-parser/assets/
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
v4.0
|
2026-08-04 23:08:15 +08:00 |
|
晨叶梦春
|
0daae32296
|
deps: update
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 21:16:28 +08:00 |
|
晨叶梦春
|
8b70fb11a6
|
feat: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 13:19:44 +08:00 |
|
晨叶梦春
|
88f18d6ac1
|
feat: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 13:00:21 +08:00 |
|
晨叶梦春
|
c7ebf2a443
|
feat(about_window): update declaration
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 12:32:36 +08:00 |
|
晨叶梦春
|
4ec6750ef6
|
Merge pull request #73 from Mr-Neutr0n/agent/issue-43-建议添加音频下载
fix: 建议添加音频下载
|
2026-08-04 02:58:36 +08:00 |
|
晨叶梦春
|
f15531c1fe
|
Merge pull request #72 from Mr-Neutr0n/agent/issue-45-支持下载导学案
fix: 支持下载导学案
|
2026-08-04 02:58:23 +08:00 |
|
晨叶梦春
|
2c5dd1c942
|
feat(ui): add about window
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 02:53:09 +08:00 |
|
晨叶梦春
|
f57a81d678
|
docs(license): add Microsoft Fluent Emoji License
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-04 01:05:54 +08:00 |
|
Mr-Neutr0n
|
b4e26651e4
|
Fix #43: 建议添加音频下载
Signed-off-by: Mr-Neutr0n <64578610+Mr-Neutr0n@users.noreply.github.com>
|
2026-08-03 08:47:12 +00:00 |
|
Mr-Neutr0n
|
3dc48cbadc
|
Fix #45: 支持下载导学案
Signed-off-by: Mr-Neutr0n <64578610+Mr-Neutr0n@users.noreply.github.com>
|
2026-08-03 08:38:54 +00:00 |
|
晨叶梦春
|
f70137b552
|
feat(ui): replace theme icon fallback with image
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-03 01:26:03 +08:00 |
|
晨叶梦春
|
7bdd2030da
|
feat: 添加对课程资源、精品课的下载支持
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-03 00:58:26 +08:00 |
|
晨叶梦春
|
1bf83d4bba
|
feat: add headers, optimize download logic
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-01 23:45:54 +08:00 |
|
晨叶梦春
|
c574ce283c
|
feat: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-01 15:40:24 +08:00 |
|
晨叶梦春
|
600ba5cfa7
|
feat: improve types & menus
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-08-01 01:08:04 +08:00 |
|
晨叶梦春
|
95a9fc68cd
|
feat(ui): improve fallback emoji icon
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-07-31 18:40:06 +08:00 |
|
晨叶梦春
|
267869eb74
|
docs: improve
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-07-31 18:39:23 +08:00 |
|
晨叶梦春
|
aa8510fe9f
|
feat: add pyproject.toml, replace VERSION with __version__
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-07-31 17:33:49 +08:00 |
|
晨叶梦春
|
dc1dd67047
|
feat(ui): add system theme option
Signed-off-by: 晨叶梦春 <wuziqian211@126.com>
|
2026-07-31 02:41:07 +08:00 |
|
 肥宅水水呀andClaude Opus 5
|
4a5060dbeb
|
docs(readme): 重排版式、更新截图并补充项目成就
原 README 首屏只有三个静态徽章,没有项目标识与状态信息;内容增长后也缺少
导航入口。本次改动只涉及呈现方式,正文措辞、警告框、致谢与 issue 编号均
保持原样,未删减任何信息。
- 新增居中头部:Logo、一句话简介,以及版本、下载量、Star 数、Python 版本、
支持平台、许可证徽章,并加入 Trendshift 徽章与快捷导航
- 新增目录。锚点按 GitHub 的生成规则处理:🛠️、⚖️ 这类带变体选择符的 emoji
会被剥离图形部分但保留 U+FE0F,因此对应锚点为 #️-使用方法、#️-免责声明
- 新增「项目成就」章节:2025 年 5 月 GitHub Trending 总榜第 3 名、Trendshift
Python 日榜第 3 名
- 浅色/深色截图由表格改为并排 <img width="48%">:GitHub 会强制为 markdown
表格渲染单元格边框,border="0" 亦无效,只有脱离表格才能去掉边框
- 同步更新浅色/深色界面截图
- 常见问题改为 <details> 折叠块,首条默认展开
- 下载与安装方法新增速查表,集中列出各平台的安装命令
- 更新 Star History 的 sealed_token:GitHub 已将 stargazers 数据限制为仓库
管理员与协作者可读,图表 URL 需随附凭证
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 16:49:20 +08:00 |
|
肥宅水水呀
|
82416e8b35
|
fix(download): 修正失败原因的运算符优先级,避免非 401/403 错误被静默吞掉
条件表达式的优先级低于 +,原写法把「服务器返回 HTTP 状态码 N」也一起裹进了
if 分支,导致 401/403 之外的状态码得到空字符串。而完成时的失败汇总用
`if state["failed_reason"]` 过滤,空字符串是 falsy,于是 404、500 等失败被
整条丢弃:这条分支既不会创建 .tmp 文件,也不会提示,用户只看到「下载完成」,
去目标目录却找不到文件。
改为只把 Token 提示放进条件分支,并顺带把重复的 == 比较收敛为 in。
新增 tests/test_download.py 覆盖两种状态码(该测试在修复前会失败)。
|
2026-07-30 16:06:32 +08:00 |
|
 肥宅水水呀andClaude Opus 5
|
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 |
|
肥宅水水呀
|
af01f72b58
|
fix(ui): 加宽 Access Token 帮助窗口
|
2026-07-30 15:15:43 +08:00 |
|
肥宅水水呀
|
717be19763
|
feat(ui): 优化教材封面展示
|
2026-07-30 15:13:22 +08:00 |
|
肥宅水水呀
|
04aa7472b5
|
fix(ui): 加快资源列表横向滚动
|
2026-07-30 15:03:15 +08:00 |
|
肥宅水水呀
|
5de8c9221a
|
feat(ui): 添加资源搜索并优化教材名称展示
|
2026-07-30 15:01:18 +08:00 |
|
肥宅水水呀
|
4d12189dcc
|
feat(ui): 重构界面并支持深浅主题
引入 sv-ttk,优化 Win11 风格布局与系统 Emoji 显示。
统一跨平台配置存储,外置窗口图标并同步打包规则、截图和文档。
|
2026-07-30 14:42:43 +08:00 |
|
 肥宅水水呀andClaude Opus 5
|
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 |
|
 肥宅水水呀andClaude Opus 5
|
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 |
|
 肥宅水水呀andClaude Opus 5
|
be119194b9
|
chore: 添加 Issue 模板并补齐 .gitignore 结尾换行
「下载失败」类问题多数需要系统版本、获取方式、是否已设置 Access Token
等信息才能定位,此前需逐一追问。现添加问题报告与功能建议两个表单,
在提交时即收集这些信息,并提醒用户切勿粘贴自己的 Access Token。
保留空白 Issue 入口,以免挡住只想随手提问的用户,
另附指向常见问题的引导链接。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 12:10:30 +08:00 |
|