feat: carregamento automático da análise do Scanner ao abrir a aba

- carregamento automático da análise do Scanner ao abrir a aba Refinar
- simplificada a aba Editar vídeo para exibir análises disponíveis sem carregamento manual
- movida a visualização do tipo de vídeo para a guia Projeto com leitura do banco

Resumo:
- 10 arquivos alterados
- 2 novos
- 8 modificados
- 0 removidos

 8 files changed, 114 insertions(+), 11 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - code/cep-plugin/abas/projeto/projeto.js
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/engine/integracoes/audio/__init__.py
  - code/engine/integracoes/audio/modelos_de_analise_musical.py
  - code/engine/integracoes/audio/provider_de_analise_musical_essentia.py
  - code/engine/testes/test_analisador_de_musica_essentia.py
  - code/engine/consultar_edicao_concluida.py
  - code/engine/integracoes/audio/classificador_de_musica_essentia.py
This commit is contained in:
João Henrique
2026-09-10 13:30:10 -04:00
parent a4286bbd8a
commit 5644b42722
10 changed files with 305 additions and 11 deletions
+42
View File
@@ -71,9 +71,51 @@ function projetoSelecionarSequencia() {
});
document.getElementById("btnProjetoContinuar").disabled = false;
document.getElementById("btnProjetoSalvar").disabled = false;
projetoCarregarTipoDeVideo();
document.getElementById("projetoInfo").textContent = "A sequência foi carregada. Selecione as faixas e clipes que participarão do plano.";
}
function projetoCarregarTipoDeVideo() {
var select = document.getElementById("projetoTipoVideoSelect");
var info = document.getElementById("projetoTipoVideoInfo");
select.disabled = true;
runStreamed(SCANNER_PYTHON_BIN, [CONSULTAR_EDICAO_SCRIPT, projetoAtual.id, "--banco", ANALISES_DB_PATH],
function () {},
function (codigo, ultimoErro, ultimaSaida) {
if (codigo !== 0) { info.textContent = ultimoErro || "Nenhum tipo de vídeo salvo para esta sequência."; return; }
try {
var edicao = JSON.parse(ultimaSaida).edicao;
var tipos = tiposVideoLer().filter(function (item) { return item.ativo !== false; });
var tipo = tipos.filter(function (item) { return item.id === edicao.tipo_de_video; })[0];
select.innerHTML = "";
tipos.forEach(function (item) {
var opcao = document.createElement("option");
opcao.value = item.id;
opcao.textContent = item.nome;
select.appendChild(opcao);
});
if (!tipo) {
var tipoDesconhecido = document.createElement("option");
tipoDesconhecido.value = edicao.tipo_de_video;
tipoDesconhecido.textContent = edicao.tipo_de_video;
select.appendChild(tipoDesconhecido);
}
select.value = edicao.tipo_de_video;
select.disabled = false;
silenceState.tipoVideoId = edicao.tipo_de_video;
silenceState.tipoVideo = tipo || null;
info.textContent = "Tipo carregado da edição concluída mais recente.";
} catch (erro) { info.textContent = "Não foi possível interpretar o tipo salvo: " + erro.message; }
});
}
function projetoSelecionarTipoVideo() {
var tipo = tiposVideoLer().filter(function (item) { return item.id === document.getElementById("projetoTipoVideoSelect").value; })[0] || null;
silenceState.tipoVideoId = tipo ? tipo.id : null;
silenceState.tipoVideo = tipo;
document.getElementById("projetoTipoVideoInfo").textContent = tipo ? tipo.nome + " · disponível para a edição." : "Nenhum tipo selecionado.";
}
function projetoSalvar() {
if (!projetoAtual) return;
var faixas = Array.prototype.slice.call(document.querySelectorAll("[data-projeto-faixa]:checked")).map(function (item) { return item.getAttribute("data-projeto-faixa"); });