Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 2.93 KB

File metadata and controls

26 lines (20 loc) · 2.93 KB

重构后架构与功能图谱

📁 模块架构 (apps/desktop/src/main/)

模块名 (文件) 新职责 (Role) 核心功能 (Functions)
index.cjs 入口/IPC网关 1. 启动Electron应用
2. 注册 IPC 监听 (generator:run, generator:reload)
3. 将请求转发给 GeneratorService
services/generator-service.cjs 业务外观 (Facade) 1. 统一入口:接收前端请求参数
2. 参数校验:检查输入视频、输出路径
3. 流程控制:根据模式决定调用 PipelineManager (新) 或 SimpleGenerator (旧)
4. 进度反馈:统一向前端发送进度事件
services/pipeline-manager.cjs 流水线调度器 1. 任务切分:将大列表拆分为 Group (每组3个)
2. 并发控制:限制同时运行的组数 (Max 2)
3. 错误重试:组失败时自动重试
4. 生命周期管理:初始化 -> 预处理 -> 渲染 -> 拼接 -> 清理
services/map-reduce-executor.cjs 算法执行器 1. 热重载核心:动态加载 scripts/mapreduce-refactor.js
2. Task 执行:调用脚本生成 FFmpeg 命令并执行
3. Reduce 执行:调用脚本生成 Concat 命令并执行
services/video-processor.cjs 视频/音频处理 1. 元数据获取:封装 ffprobe,智能获取时长/分辨率
2. 预处理:标准化视频 (统一编码/分辨率)
3. 下载:调用 yt-dlp 下载视频
utils/path-manager.cjs 路径管家 1. 安全临时目录:解决中文路径乱码,统一管理 C:\rdg-temp
2. 输出路径修复:自动补全 .mp4 后缀
3. 清理策略:提供安全的临时文件清理方法 (支持调试模式保留)
utils/ffmpeg-helper.cjs FFmpeg工具箱 1. 环境配置:统一获取 ffmpeg-static 路径
2. 命令执行:封装 spawn,统一日志输出和错误处理
3. 进程管理:记录 PID,支持强制终止所有进程

📂 外部依赖 (scripts/)

文件 职责 说明
scripts/mapreduce-refactor.js 纯算法核心 1. CalculateTasks:根据 clips 计算切片时间点 (Head/Body/Tail)
2. GenerateCommand:生成具体的 FFmpeg 滤镜链
3. 纯函数不涉及任何 IO 操作,只返回字符串/对象,确保热重载绝对安全

✨ 核心改进点

  1. 彻底解耦pipeline 不再反向调用 generator,而是调用下层服务 (executor, processor)。
  2. 路径安全:所有临时文件操作收敛到 path-manager.cjs,从根本上杜绝中文路径乱码。
  3. 算法热重载executor 专门负责加载 scripts/,修改算法脚本只需保存即可生效,无需重启软件。
  4. 清晰的调试:中间文件保留逻辑在 path-manager 中统一控制,不再散落在各处。