Skip to content

feat(BsScriptHub): 支持目录类型脚本下载,修复中文路径问题#27

Merged
AniBullet merged 1 commit intoAniBullet:devfrom
xiaoyun7298:Dev
Feb 24, 2026
Merged

feat(BsScriptHub): 支持目录类型脚本下载,修复中文路径问题#27
AniBullet merged 1 commit intoAniBullet:devfrom
xiaoyun7298:Dev

Conversation

@xiaoyun7298
Copy link
Contributor

变更内容

新增功能

  • 目录类型脚本支持:BsScriptHub 现在可以下载包含多文件的脚本目录(如 final_auto_animator),自动递归下载所有子目录和文件
  • 新增 DirectoryDownloadWorker:通过 GitHub API 递归获取目录结构并批量下载

Bug 修复

  • 修复中文路径问题:使用 Windows GetShortPathNameW API 将中文路径转换为 8.3 短路径格式,解决 MaxScript 无法处理 Unicode 路径的问题
  • 修复 UnicodeEncodeError:新增 _safe_exception_str() 方法,安全处理包含中文的异常消息

技术细节

  • 新增辅助函数:_is_directory_script()_get_directory_name()_get_directory_local_path()
  • 新增 get_short_path() 函数将中文路径转换为 Windows 8.3 短路径
  • _execute_script() 中调用 get_short_path() 转换路径后再执行

文档

  • 新增 docs/BsScriptHub_vs_BulletScripts_对比.md 文档

版本

1.3 → 1.4

测试

  • 目录类型脚本 final_auto_animator 正常下载和运行
  • 中文缓存路径 04_动画工具 正常处理
  • 在 3ds Max 2020 中测试通过

Pull Request opened by Augment Code with guidance from the PR author

- 新增 DirectoryDownloadWorker 类,递归下载整个目录结构
- 新增 get_short_path() 函数,将中文路径转换为 Windows 8.3 短路径
- 新增 _safe_exception_str() 方法,安全处理 Unicode 异常消息
- 新增目录类型脚本识别和处理函数
- 修复 MaxScript 无法处理 Unicode 路径的问题
- 修复 UnicodeEncodeError 异常显示问题
- 版本升级 1.3 -> 1.4
- 新增文档 BsScriptHub_vs_BulletScripts_对比.md
@AniBullet AniBullet merged commit 60b02d6 into AniBullet:dev Feb 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants