优化 ipc-lyric by kazukokawagawa · Pull Request #854 · imsyy/SPlayer
added 2 commits
February 9, 2026 21:33- 将文件操作、下载和音乐元数据处理逻辑提取到独立的服务类中 - 重构 ipc-file.ts 以使用新服务,减少代码重复并提高可维护性 - 在 SongCard 组件中使用 formatFileSize 格式化文件大小显示 - 公开 LocalMusicService 的 paths getter 和错误常量
- 将音乐库同步的扫描、封面处理与分块发送逻辑封装到 LocalMusicService.syncLibrary 方法 - 重构 MusicFileService 的元数据解析为分批处理以避免内存压力 - 将 DownloadService 的下载流程拆分为准备、执行、后处理等独立方法 - 简化 IPC 处理程序,移除重复的封面处理与分块逻辑
- 将 DownloadService 改为 EventEmitter 以支持进度事件 - 在 IPC 层添加下载映射,将进度事件转发给对应的渲染进程 - 重构下载流程,分离原始下载与元数据处理逻辑 - 使用 Electron net 模块下载专辑封面并临时存储 - 提供默认下载选项,增强代码健壮性
- 提取网络下载功能到独立的 network.ts 工具模块 - 提取艺术家格式化功能到独立的 artist.ts 工具模块 - 重构 DownloadService,分离下载逻辑与后处理逻辑 - 简化 ipc-file.ts 中的下载进度广播逻辑,移除 WebContents 映射 - 统一下载入口为 downloadMusic 方法,增强参数处理
使用展开运算符合并默认值时,如果传入的选项包含显式的 undefined,会错误地覆盖默认值。改为使用空值合并运算符(??)确保默认值只在选项为 null 或 undefined 时生效。 同时优化封面下载的文件名生成,通过 URL 解析去除查询参数,避免生成非法文件名。
imsyy
changed the title
refactor(lyric): 重构桌面歌词管理器为类结构以提升可维护性 - 将过程式代码重构为 DesktopLyricManager 类,封装状态与逻辑 - 提取通用方法如窗口状态检查、事件绑定与消息发送 - 优化主窗口交互时的鼠标穿透防抖逻辑 - 统一配置存储操作,减少重复代码
优化 ipc-lyric
refactor: 提取文件、下载和音乐文件服务以重构 IPC 模块 - 将文件操作、下载和音乐元数据处理逻辑提取到独立的服务类中 - 重构 ipc-file.ts 以使用新服务,减少代码重复并提高可维护性 - 在 SongCard 组件中使用 formatFileSize 格式化文件大小显示 - 公开 LocalMusicService 的 paths getter 和错误常量ipc 01
imsyy
marked this pull request as draft
imsyy
marked this pull request as ready for review
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