- Alinhado o aplicador Python de plano de edição (aplicador_de_plano_de_edicao.py) com o script apply-editorial-actions.mjs de referência: no-op de split restrito aos padrões reais do bridge, pausa entre chamadas ao MCP, tolerância de borda de corte usa a posição real em vez de rejeitar desvio; adicionado backup automático da sequência (duplicate_sequence) e documentado o comando python code/engine/aplicar_plano_de_edicao.py como via alternativa ao painel CEP. Resumo: - 18 arquivos alterados - 5 novos - 13 modificados - 0 removidos 13 files changed, 704 insertions(+), 133 deletions(-) Arquivos: - .jhonny/analises.db - CLAUDE.md - code/engine/aplicar_plano_de_edicao.py - code/engine/editor/__init__.py - code/engine/editor/aplicador_de_plano_de_edicao.py - code/engine/editor/escrita/escrita_no_editor.py - code/engine/integracoes/premiere/__init__.py - code/engine/integracoes/premiere/cliente_mcp.py - code/engine/testes/duplos_de_premiere.py - code/engine/testes/test_aplicador_de_plano_de_edicao.py - code/scripts/apply-editorial-actions.mjs - code/src/tools/discovery.ts - code/src/tools/timeline.ts - code/engine/editor/backup_de_sequencia.py - code/engine/integracoes/premiere/cliente_mcp_com_pausa.py - code/engine/testes/test_backup_de_sequencia.py - code/engine/testes/test_cliente_mcp_com_pausa.py - code/engine/testes/test_escrita_no_editor.py
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
"""Backup automático da sequência antes de aplicar um plano de edição."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from ..integracoes.premiere.cliente_mcp import ClienteMCP
|
|
from ..integracoes.premiere.erros_mcp import ErroDeFerramentaMCP
|
|
|
|
|
|
class BackupDaSequencia:
|
|
"""Duplica a sequência ativa do Premiere antes de uma edição destrutiva.
|
|
|
|
Espelha o passo de segurança do painel CEP
|
|
(``app.project.activeSequence.clone()`` em ``applyEditorialActions()``,
|
|
``cep-plugin/main.js``): sem undo por script nesta versão do Premiere,
|
|
duplicar a sequência antes de cortar é a única forma de recuperar o
|
|
estado anterior se algo sair errado.
|
|
"""
|
|
|
|
def __init__(self, cliente_mcp: ClienteMCP) -> None:
|
|
self.cliente_mcp = cliente_mcp
|
|
|
|
def criar_backup(self, identificador_da_sequencia: str) -> bool:
|
|
"""Duplica a sequência. Devolve ``True`` se conseguiu, ``False`` se o Premiere recusou.
|
|
|
|
Não levanta exceção numa recusa: o painel CEP também segue aplicando
|
|
o plano mesmo se o backup falhar (loga e avisa, não bloqueia) — a
|
|
falta de backup não deve impedir a edição que o usuário pediu, só
|
|
precisa ficar visível para quem chama decidir o que fazer.
|
|
"""
|
|
try:
|
|
self.cliente_mcp.chamar("duplicate_sequence", {"sequence_id": identificador_da_sequencia})
|
|
return True
|
|
except ErroDeFerramentaMCP:
|
|
return False
|