refactor(download): 重构下载管理器以支持自定义下载类型 将自定义下载相关字段从 SongType 中分离,新增独立的 CustomDownloadType 类型。重构下载管理器实现策略模式,将歌曲下载和自定义下载分别封装为 SongDownloadStrategy 和 CustomDownloadStrategy 类,统一通过 DownloadStrategy 接口处理。同时提取歌词处理逻辑到 LyricHelper 辅助类,优化代码结构和可维护性。 by kazukokawagawa · Pull Request #829 · imsyy/SPlayer
added 7 commits
February 6, 2026 11:38将自定义下载相关字段从 SongType 中分离,新增独立的 CustomDownloadType 类型。重构下载管理器实现策略模式,将歌曲下载和自定义下载分别封装为 SongDownloadStrategy 和 CustomDownloadStrategy 类,统一通过 DownloadStrategy 接口处理。同时提取歌词处理逻辑到 LyricHelper 辅助类,优化代码结构和可维护性。
- 将 LyricHelper 类重构为纯函数式的 LyricProcessor 模块,减少对 Store 的直接依赖 - 为 CustomDownloadType 添加 type 字段以支持 discriminated union - 在下载管理器启动时迁移旧的自定义下载任务数据 - 统一歌词处理选项传递方式,提高代码可测试性和可维护性
- 将逐字歌词获取逻辑从 LyricProcessor 移至 DownloadManager - 引入 generateVerbatimContent 和 generateAssContent 纯函数生成文件内容 - 统一处理旧数据迁移中的 type 字段推断逻辑 - 保持原有功能不变,提高代码可测试性和模块化
- 保存文件时自动创建父目录,避免因目录不存在导致的失败 - 歌词处理增加罗马音支持,当启用下载罗马音选项时生成对应歌词轨道 - 修复自定义歌曲类型识别逻辑,迁移旧字段并确保ID一致性 - 统一路径分隔符为斜杠,提高跨平台兼容性 - 改进艺术家信息拼接方式,支持多位艺术家显示
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters