feat: corrigida a reprodução do trecho de áudio do falante na tela

- corrigida a reprodução do trecho de áudio do falante na tela Refinar usando os tempos da origem do WAV.
- alterado o passo de geração de JSON para concluir a edição e salvar a configuração editorial no banco.

Resumo:
- 9 arquivos alterados
- 3 novos
- 6 modificados
- 0 removidos

 6 files changed, 136 insertions(+), 109 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/engine/persistencia/__init__.py
  - code/engine/persistencia/esquema.py
  - code/engine/testes/test_persistencia_sqlite.py
  - code/engine/persistencia/repositorio_de_edicoes.py
  - code/engine/registrar_edicao.py
  - code/tests/cep-refinar-preview.test.ts
This commit is contained in:
João Henrique
2026-09-10 10:28:41 -04:00
parent 25800b2427
commit b01482d0e7
9 changed files with 278 additions and 109 deletions
@@ -8,7 +8,9 @@ from pathlib import Path
from engine.dominio import Clipe, Faixa, IntervaloDeTempo, Timeline
from engine.integracoes.midia.extracao_de_metadados import MetadadosDoArquivo
from engine.persistencia import (
EdicaoDeVideo,
RepositorioDeAnalisesSQLite,
RepositorioDeEdicoes,
RepositorioDeRetakesSQLite,
RepositorioDeTimelineSQLite,
abrir_banco,
@@ -23,6 +25,7 @@ TABELAS_ESPERADAS = {
"segmentos_de_transcricao", "palavras_de_transcricao",
"evidencias_visuais", "cenas", "grupos_de_retake",
"tomadas_de_retake", "evidencias_de_retake",
"edicoes_de_video",
}
@@ -129,6 +132,27 @@ class TesteRepositorioDeAnalisesSQLite(unittest.TestCase):
self.assertEqual(linha["largura"], 1920)
self.assertEqual(linha["hash_do_conteudo"], "hash123")
class TesteRepositorioDeEdicoes(unittest.TestCase):
def test_registrar_configuracao_editorial_preserva_dados(self):
with tempfile.TemporaryDirectory() as pasta:
conexao = abrir_banco(Path(pasta) / "analises.db")
repositorio = RepositorioDeEdicoes(conexao)
identificador = repositorio.registrar(EdicaoDeVideo(
video_id="sequencia-1",
sequencia="Depoimento",
origem="/videos/depoimento.mp4",
tipo_de_video="depoimento",
configuracao={"legendas": {"habilitadas": True}},
))
linha = conexao.execute(
"SELECT * FROM edicoes_de_video WHERE id = ?", (identificador,),
).fetchone()
self.assertEqual(linha["video_id"], "sequencia-1")
self.assertEqual(linha["tipo_de_video"], "depoimento")
self.assertIn("habilitadas", linha["configuracao"])
def test_registrar_e_carregar_transcricoes_com_palavras(self):
with tempfile.TemporaryDirectory() as pasta:
repositorio = RepositorioDeAnalisesSQLite(Path(pasta) / "analises.db")