From 024b004938288433a1ae23b1a23f81ac7fa90a54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Henrique?= Date: Thu, 10 Sep 2026 18:24:46 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20verifica=C3=A7=C3=A3o=20do=20resultado?= =?UTF-8?q?=20do=20razor=5Fall=5Ftracks=20para=20falha=20limp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - verificação do resultado do razor_all_tracks para falha limpa em cortes e ganchos Resumo: - 2 arquivos alterados - 0 novos - 2 modificados - 0 removidos 2 files changed, 12 insertions(+), 2 deletions(-) Arquivos: - code/engine/editor/aplicador_de_plano_de_edicao.py - code/engine/testes/test_aplicador_de_plano_de_edicao.py --- code/engine/editor/aplicador_de_plano_de_edicao.py | 12 +++++++++++- .../testes/test_aplicador_de_plano_de_edicao.py | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/engine/editor/aplicador_de_plano_de_edicao.py b/code/engine/editor/aplicador_de_plano_de_edicao.py index b0e7903..6412278 100644 --- a/code/engine/editor/aplicador_de_plano_de_edicao.py +++ b/code/engine/editor/aplicador_de_plano_de_edicao.py @@ -402,8 +402,18 @@ class AplicadorDePlanoDeEdicao: pontos_para_cortar.add(self.mapeador.instante_na_timeline(clipe, acao.inicio)) if acao.fim < clipe.intervalo_na_origem.fim: pontos_para_cortar.add(self.mapeador.instante_na_timeline(clipe, acao.fim)) + razor_bem_sucedido = True for ponto in sorted(pontos_para_cortar, reverse=True): - self.escrita.dividir_todas_as_faixas(ponto) + try: + self.escrita.dividir_todas_as_faixas(ponto) + except ErroDeEdicao: + razor_bem_sucedido = False + break + if not razor_bem_sucedido: + raise ErroDeMapeamentoDeTempo( + f"O razor falhou ao isolar o trecho do gancho " + f"({acao.inicio:.3f}-{acao.fim:.3f}s); o gancho não foi aplicado." + ) faixas = self._timeline_atual().faixas faixas_afetadas = [ diff --git a/code/engine/testes/test_aplicador_de_plano_de_edicao.py b/code/engine/testes/test_aplicador_de_plano_de_edicao.py index cf64b2b..fd09f0b 100644 --- a/code/engine/testes/test_aplicador_de_plano_de_edicao.py +++ b/code/engine/testes/test_aplicador_de_plano_de_edicao.py @@ -330,7 +330,7 @@ class TesteAplicadorDePlanoDeEdicao(unittest.TestCase): mapeador=MapeadorDeTempoDeOrigemParaTimeline(), ) plano = PlanoDeEdicao("0E6A8290.mp4", ( - AcaoDeEdicao(TipoDeAcao.CORTE, inicio=0.0, fim=40.6, motivo="bastidor"), + AcaoDeEdicao(TipoDeAcao.CORTE, inicio=2.3, fim=20.0, motivo="bastidor"), AcaoDeEdicao(TipoDeAcao.MARCADOR, inicio=90.0, fim=90.5, motivo="ok", parametros={"content": "X"}), )) resultado = aplicador.aplicar(plano)