From 440f481599afbc0e2d2b11ae6e21fbec84c54652 Mon Sep 17 00:00:00 2001 From: hmo Date: Mon, 4 May 2026 00:21:15 +0800 Subject: [PATCH] feat: add Pipeline.delete_clip --- src/core/pipeline.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/core/pipeline.py b/src/core/pipeline.py index b0c34fe..c5328f2 100644 --- a/src/core/pipeline.py +++ b/src/core/pipeline.py @@ -559,6 +559,31 @@ class Pipeline: self._save_config() return True + def delete_clip(self, clip_index): + """ + 删除指定 clip。 + + Args: + clip_index: clip 在 self.clips 中的索引 + """ + if clip_index < 0 or clip_index >= len(self.clips): + return + + # 从 self.clips 删除 + self.clips.pop(clip_index) + + # 删除对应的中间文件(文件名是 clip{index+1} 因为是 1-based) + clip_num = clip_index + 1 + for ext in ['.json', '.mp4', '_fade.mp4']: + path = os.path.join(self.inter_dir, f'clip{clip_num}{ext}') + if os.path.exists(path): + os.remove(path) + + # 不重编号后续 clip 文件,GUI 加载时按顺序读取所有 clip*.* 文件即可 + + # 保存更新后的 config + self._save_config() + # ==================== 主流程 ==================== def run(self) -> str: