diff --git a/code/engine/aplicar_montagem_incremental_prototipo.py b/code/engine/aplicar_montagem_incremental_prototipo.py index ef30c1f..4ee2836 100644 --- a/code/engine/aplicar_montagem_incremental_prototipo.py +++ b/code/engine/aplicar_montagem_incremental_prototipo.py @@ -52,6 +52,13 @@ def preparar_intervalos( for acao in plano["actions"] if isinstance(acao, dict) and acao.get("kind") in {"cut", "hook"} ] + if not acoes: + return [{ + "in_seconds": 0.0, + "out_seconds": duracao_da_midia, + "destination_seconds": 0.0, + "label": "mídia completa", + }] insercoes = PlanejadorDeMontagemIncremental(duracao_da_midia).planejar(acoes) return [ { @@ -86,20 +93,25 @@ def executar(caminho_do_plano: Path) -> dict[str, object]: }, ) if plano.get("test_adjustment_layer") is True: - gancho = next( + alvo = next( ( acao for acao in plano["actions"] - if isinstance(acao, dict) and acao.get("kind") == "hook" + if isinstance(acao, dict) and acao.get("kind") in {"hook", "zoom"} ), None, ) - if gancho is None: + if alvo is None: raise ErroDeMontagemIncremental( - "O teste da adjustment layer exige uma ação hook no plano." + "O teste da adjustment layer exige uma ação hook ou zoom no plano." ) - inicio_do_gancho = 0.0 - fim_do_gancho = float(gancho["end"]) - float(gancho["start"]) + eh_gancho = alvo.get("kind") == "hook" + inicio_do_gancho = 0.0 if eh_gancho else float(alvo["start"]) + fim_do_gancho = ( + float(alvo["end"]) - float(alvo["start"]) + if eh_gancho + else float(alvo["end"]) + ) camada = cliente.chamar( "insert_adjustment_layer_range", {