refactor(download): 重构下载进度跟踪和多线程下载逻辑 - 提取 ProgressTracker 结构体统一管理进度更新,避免重复代码 - 简化多线程下载实现,使用 futures_util 替代手动任务管理 - 改进文件大小探测逻辑,增强 Range 请求处理 - 优化元数据写入函数,提取标签获取逻辑 by kazukokawagawa · Pull Request #823 · imsyy/SPlayer

added 8 commits

February 4, 2026 15:21
- 提取 ProgressTracker 结构体统一管理进度更新,避免重复代码
- 简化多线程下载实现,使用 futures_util 替代手动任务管理
- 改进文件大小探测逻辑,增强 Range 请求处理
- 优化元数据写入函数,提取标签获取逻辑
将下载进度回调从 JSON 字符串改为直接传递 NAPI 结构体,提升性能并简化代码
移除 serde 依赖,将进度字段类型从 u64 改为 f64 以兼容 NAPI
改进错误信息,使其更具描述性
统一进度回调参数处理,支持从Rust返回的snake_case对象和JSON字符串两种格式。移除重复的类型定义,将DownloadProgress接口移至类型声明文件。

gemini-code-assist[bot]

- 新增下载设置选项:启用HTTPS升级和HTTP/2下载
- 升级reqwest到0.13.1并使用rustls-native-certs特性
- 自动将HTTP链接升级为HTTPS以支持HTTP/2协议
- 在下载配置中新增enableDownloadHttps和enableDownloadHttp2参数
- 更新所有相关调用链以传递新的下载参数
- 将 Rust 原生下载器从函数式 API 重构为面向对象的 DownloadTask 类
- 移除独立的 enableDownloadHttps 设置,HTTP/2 启用时自动升级 HTTP 到 HTTPS
- 改进下载进度报告机制,优化性能并减少不必要的回调
- 统一下载任务管理,使用 Map 跟踪活动下载以便取消操作
- 清理相关类型定义和配置界面中已移除的选项