feat: corrigido o carregamento do extrator de áudio no complemento
- corrigido o carregamento do extrator de áudio no complemento de identificação de locutores do Scanner. - corrigida a descoberta da timeline ativa no painel CEP com fallback compatível entre versões do Premiere Resumo: - 5 arquivos alterados - 0 novos - 3 modificados - 2 removidos 5 files changed, 23 insertions(+), 2 deletions(-) Arquivos: - .jhonny/analises.db-shm - .jhonny/analises.db-wal - code/cep-plugin/main.js - code/engine/executar_scanner.py - code/engine/testes/test_executar_scanner.py
This commit is contained in:
@@ -2152,12 +2152,15 @@ function silenceListSequences() {
|
||||
"try{" +
|
||||
"if(!app.project) return JSON.stringify({ok:false,error:'Nenhum projeto aberto.'});" +
|
||||
"var sequences=[];" +
|
||||
"for(var i=0;i<app.project.sequences.numSequences;i++){" +
|
||||
"var colecao=null;try{colecao=app.project.sequences;}catch(ignorarColecao){colecao=null;}" +
|
||||
"var quantidade=colecao&&typeof colecao.numSequences!=='undefined'?Number(colecao.numSequences):0;" +
|
||||
"for(var i=0;i<quantidade;i++){" +
|
||||
"var seq=app.project.sequences[i];" +
|
||||
"sequences.push({id:String(seq.sequenceID),name:String(seq.name),duration:Number(seq.end.seconds)||0," +
|
||||
"sequences.push({id:String(seq.sequenceID),name:String(seq.name||''),duration:seq.end&&typeof seq.end.seconds!=='undefined'?Number(seq.end.seconds):0," +
|
||||
"videoTracks:seq.videoTracks.numTracks||0,audioTracks:seq.audioTracks.numTracks||0," +
|
||||
"active:app.project.activeSequence&&seq.sequenceID===app.project.activeSequence.sequenceID});" +
|
||||
"}" +
|
||||
"if(!sequences.length&&app.project.activeSequence){var ativa=app.project.activeSequence;sequences.push({id:String(ativa.sequenceID),name:String(ativa.name||''),duration:ativa.end&&typeof ativa.end.seconds!=='undefined'?Number(ativa.end.seconds):0,videoTracks:ativa.videoTracks.numTracks||0,audioTracks:ativa.audioTracks.numTracks||0,active:true});}" +
|
||||
"return JSON.stringify({ok:true,sequences:sequences});" +
|
||||
"}catch(e){return JSON.stringify({ok:false,error:String(e)});}" +
|
||||
"}())",
|
||||
|
||||
@@ -39,6 +39,7 @@ if CAMINHO_DA_MIDIA:
|
||||
os.environ["PATH"] = CAMINHO_DA_MIDIA + os.pathsep + os.environ.get("PATH", "")
|
||||
|
||||
from engine.integracoes.premiere.conversores import ConversorDeTimeline
|
||||
from engine.integracoes.midia import ExtracaoDeAudio
|
||||
from engine.scanner import ConfiguracaoVisualDoScanner, criar_detector_apple_vision, gerar_relatorio_visual
|
||||
from engine.scanner.transcricao_da_timeline import TranscricaoDaTimeline
|
||||
from engine.persistencia import RepositorioDeAnalisesSQLite, RepositorioDeTimelineSQLite
|
||||
|
||||
@@ -24,6 +24,23 @@ class TesteDoPontoDeEntradaDoScanner(unittest.TestCase):
|
||||
self.assertIn("usage:", resultado.stdout)
|
||||
self.assertNotIn("No module named 'engine'", resultado.stderr)
|
||||
|
||||
def test_ponto_de_entrada_disponibiliza_extracao_de_audio_para_complementos(self):
|
||||
"""Garante que o complemento de locutores encontre o extrator de áudio."""
|
||||
caminho_do_script = Path(__file__).resolve().parents[1] / "executar_scanner.py"
|
||||
resultado = subprocess.run(
|
||||
[
|
||||
sys.executable,
|
||||
"-c",
|
||||
"import executar_scanner; assert executar_scanner.ExtracaoDeAudio",
|
||||
],
|
||||
cwd=caminho_do_script.parent,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
check=False,
|
||||
)
|
||||
|
||||
self.assertEqual(resultado.returncode, 0, resultado.stderr)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user