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:
@@ -24,16 +24,20 @@ def emitir(evento: str, **dados: object) -> None:
|
||||
|
||||
|
||||
def executar(pasta: Path, banco: Path, diretorio_dos_modelos: Path | None) -> int:
|
||||
"""Analisa todos os arquivos musicais diretamente encontrados na pasta."""
|
||||
"""Analisa todos os arquivos musicais encontrados na pasta e subpastas."""
|
||||
arquivos = tuple(sorted(
|
||||
arquivo for arquivo in pasta.iterdir()
|
||||
arquivo for arquivo in pasta.rglob("*")
|
||||
if arquivo.is_file() and arquivo.suffix.lower() in EXTENSOES_DE_AUDIO
|
||||
))
|
||||
conexao = abrir_banco(banco)
|
||||
try:
|
||||
repositorio = RepositorioDeTrilhasSQLite(conexao)
|
||||
trilhas = repositorio.registrar_pasta_e_arquivos(pasta, arquivos)
|
||||
classificador = ClassificadorDeMusicaEssentia(diretorio_dos_modelos) if diretorio_dos_modelos else None
|
||||
classificador = (
|
||||
ClassificadorDeMusicaEssentia(diretorio_dos_modelos)
|
||||
if diretorio_dos_modelos and diretorio_dos_modelos.is_dir()
|
||||
else None
|
||||
)
|
||||
analisador = AnalisadorDeMusicaInstrumentalEssentia(classificador=classificador)
|
||||
emitir("lote_iniciado", total=len(trilhas), pasta=str(pasta), nomes=[trilha.nome_do_arquivo for trilha in trilhas])
|
||||
for ordem, trilha in enumerate(trilhas, start=1):
|
||||
@@ -61,7 +65,7 @@ def principal() -> None:
|
||||
opcoes = argumentos.parse_args()
|
||||
try:
|
||||
raise SystemExit(executar(opcoes.pasta, opcoes.banco, opcoes.modelos))
|
||||
except (OSError, ValueError) as erro:
|
||||
except (OSError, RuntimeError, ValueError) as erro:
|
||||
emitir("lote_com_erro", erro=str(erro))
|
||||
raise SystemExit(1) from erro
|
||||
|
||||
|
||||
Reference in New Issue
Block a user