feat: criada a guia Trilhas com processamento em lote e progresso

- criada a guia Trilhas com processamento em lote e progresso por música
- simplificada a guia Trilhas para ocultar a configuração interna dos modelos

Resumo:
- 12 arquivos alterados
- 1 novos
- 11 modificados
- 0 removidos

 11 files changed, 173 insertions(+), 41 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/cep-plugin/styles.css
  - code/engine/analisar_trilhas.py
  - code/engine/carregar_plano_de_edicao.py
  - code/engine/executar_scanner.py
  - code/engine/persistencia/__init__.py
  - code/engine/persistencia/repositorio_de_trilhas.py
  - code/engine/testes/test_carregar_plano_de_edicao.py
  - code/engine/testes/test_executar_scanner.py
  - code/engine/testes/test_repositorio_de_trilhas.py
This commit is contained in:
João Henrique
2026-09-10 13:59:25 -04:00
parent b1272a5e6e
commit 4c04365934
12 changed files with 236 additions and 41 deletions
@@ -5,6 +5,9 @@ import sys
from pathlib import Path
import unittest
from engine.dominio import Clipe, IntervaloDeTempo
from engine.executar_scanner import serializar_clipe_para_relatorio
class TesteDoPontoDeEntradaDoScanner(unittest.TestCase):
"""Garante que o Scanner possa ser iniciado pelo caminho usado no painel."""
@@ -41,6 +44,22 @@ class TesteDoPontoDeEntradaDoScanner(unittest.TestCase):
self.assertEqual(resultado.returncode, 0, resultado.stderr)
def test_relatorio_de_audio_preserva_caminho_e_intervalo_da_origem(self):
"""Mantém no artefato os dados necessários para aplicar o plano depois."""
clipe = Clipe(
identificador="clipe-1",
nome="0E6A8829.MP4",
intervalo_na_timeline=IntervaloDeTempo(0.0, 100.0),
intervalo_na_origem=IntervaloDeTempo(20.0, 120.0),
arquivo="/Volumes/Midia/0E6A8829.MP4",
)
dados = serializar_clipe_para_relatorio(clipe)
self.assertEqual(dados["sourceFile"], "/Volumes/Midia/0E6A8829.MP4")
self.assertEqual(dados["inPoint"], 20.0)
self.assertEqual(dados["outPoint"], 120.0)
if __name__ == "__main__":
unittest.main()