melhorando desempenho dos scripts de indexação e inserindo mais projetos
This commit is contained in:
1 parent
c8323d56cf
commit
42da68afa0
463 files changed
+1015734
-73118
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,143 @@
|
||||
import json
|
||||
import os
|
||||
import logging
|
||||
from urllib.parse import unquote
|
||||
|
||||
|
||||
def load_json(path):
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except Exception as e:
|
||||
logging.error(f"Erro ao carregar {path}: {e}")
|
||||
return {}
|
||||
|
||||
|
||||
def create_sample_index(manifest_path):
|
||||
"""
|
||||
Cria um índice onde a CHAVE é o nome do arquivo (ex: 'kick.wav')
|
||||
e o VALOR é uma lista de caminhos possíveis no servidor.
|
||||
"""
|
||||
manifest = load_json(manifest_path)
|
||||
sample_index = {}
|
||||
|
||||
def traverse(node, current_path=""):
|
||||
for key, value in node.items():
|
||||
if key == "_isFile":
|
||||
continue
|
||||
|
||||
# Constrói o caminho relativo web-friendly (usando /)
|
||||
new_path = f"{current_path}/{key}" if current_path else key
|
||||
|
||||
if isinstance(value, dict) and "_isFile" in value:
|
||||
# Normaliza o nome para minúsculo para busca insensível a caixa
|
||||
filename_key = key.lower()
|
||||
|
||||
if filename_key in sample_index:
|
||||
sample_index[filename_key].append(new_path)
|
||||
else:
|
||||
sample_index[filename_key] = [new_path]
|
||||
|
||||
elif isinstance(value, dict):
|
||||
traverse(value, new_path)
|
||||
|
||||
traverse(manifest)
|
||||
return sample_index
|
||||
|
||||
|
||||
def check_dependencies(projects_json_path, manifest_path, output_report_path):
|
||||
logging.info("=== Iniciando Análise Profunda de Dependências ===")
|
||||
|
||||
projects = load_json(projects_json_path)
|
||||
server_inventory = create_sample_index(manifest_path)
|
||||
|
||||
report = {
|
||||
"summary": {
|
||||
"total": 0,
|
||||
"healthy": 0, # Tudo certo de primeira
|
||||
"recovered": 0, # Caminhos errados, mas arquivo encontrado no servidor
|
||||
"broken": 0, # Arquivo inexistente no servidor
|
||||
},
|
||||
"projects": [],
|
||||
}
|
||||
|
||||
for project in projects:
|
||||
# Ajuste a chave 'file_name' ou 'name' conforme seu parser
|
||||
p_name = project.get("file_name", "unknown")
|
||||
# Ajuste para onde seu parser guarda os samples (ex: 'instruments' ou 'samples')
|
||||
# Supondo que seu parser extraia uma lista de dicionários com 'src'
|
||||
p_samples = project.get("samples", [])
|
||||
|
||||
project_status = {
|
||||
"name": p_name,
|
||||
"status": "HEALTHY", # HEALTHY | RECOVERED | BROKEN
|
||||
"dependencies": [],
|
||||
}
|
||||
|
||||
has_missing = False
|
||||
has_remapped = False
|
||||
|
||||
for sample in p_samples:
|
||||
# O caminho cru que vem do XML (ex: C:/Users/Jota/Desktop/kick.wav)
|
||||
raw_src = sample.get("src", "")
|
||||
if not raw_src:
|
||||
continue
|
||||
|
||||
# 1. Normalização: Pega só o nome do arquivo (kick.wav)
|
||||
# unquote resolve caracteres de URL (%20 -> espaço)
|
||||
filename = os.path.basename(unquote(raw_src))
|
||||
filename_key = filename.lower()
|
||||
|
||||
dep_info = {
|
||||
"original_path": raw_src,
|
||||
"filename": filename,
|
||||
"status": "UNKNOWN",
|
||||
"server_path": None,
|
||||
}
|
||||
|
||||
# 2. Verificação no Inventário do Servidor
|
||||
if filename_key in server_inventory:
|
||||
# Encontramos o arquivo no servidor!
|
||||
possible_paths = server_inventory[filename_key]
|
||||
|
||||
# Pega o primeiro encontrado (Heurística simples)
|
||||
# Futuramente, poderia tentar casar a pasta pai para ser mais preciso
|
||||
dep_info["server_path"] = possible_paths[0]
|
||||
|
||||
# Se o caminho original já era relativo e igual, é HEALTHY.
|
||||
# Se era absoluto (C:/...) ou diferente, é RECOVERED.
|
||||
if raw_src == possible_paths[0]:
|
||||
dep_info["status"] = "OK"
|
||||
else:
|
||||
dep_info["status"] = "REMAPPED"
|
||||
has_remapped = True
|
||||
else:
|
||||
# 3. O arquivo realmente não existe no servidor
|
||||
dep_info["status"] = "MISSING"
|
||||
has_missing = True
|
||||
|
||||
project_status["dependencies"].append(dep_info)
|
||||
|
||||
# Define o status final do projeto
|
||||
if has_missing:
|
||||
project_status["status"] = "BROKEN"
|
||||
report["summary"]["broken"] += 1
|
||||
elif has_remapped:
|
||||
project_status["status"] = "RECOVERED"
|
||||
report["summary"]["recovered"] += 1
|
||||
else:
|
||||
report["summary"]["healthy"] += 1
|
||||
|
||||
report["projects"].append(project_status)
|
||||
|
||||
report["summary"]["total"] = len(projects)
|
||||
|
||||
# Salva relatório
|
||||
os.makedirs(os.path.dirname(output_report_path), exist_ok=True)
|
||||
with open(output_report_path, "w", encoding="utf-8") as f:
|
||||
json.dump(report, f, indent=2, ensure_ascii=False)
|
||||
|
||||
logging.info(f"Relatório salvo: {output_report_path}")
|
||||
logging.info(f"Resumo: {json.dumps(report['summary'], indent=2)}")
|
||||
|
||||
return report
|
||||
@@ -0,0 +1,52 @@
|
||||
# manifest_generator.py
|
||||
|
||||
import os
|
||||
import json
|
||||
import logging
|
||||
|
||||
# Caminhos relativos baseados na raiz do projeto passada como argumento
|
||||
from utils import CONFIGS, scan_directory_list, scan_directory_tree
|
||||
|
||||
|
||||
def generate_manifests(project_root_path):
|
||||
"""
|
||||
Gera os manifestos e retorna um dicionário com estatísticas.
|
||||
"""
|
||||
logging.info("=== Iniciando Geração de Manifestos (Pós-Processamento) ===")
|
||||
|
||||
# Estrutura para o relatório
|
||||
report = {"generated": [], "failed": []}
|
||||
|
||||
for config in CONFIGS:
|
||||
source_dir_abs = os.path.join(project_root_path, config["source_dir"])
|
||||
output_file_abs = os.path.join(project_root_path, config["output_file"])
|
||||
scan_type = config["scan_type"]
|
||||
|
||||
if not os.path.isdir(source_dir_abs):
|
||||
logging.warning(f"Diretório fonte não encontrado: {source_dir_abs}")
|
||||
report["failed"].append(f"{config['output_file']} (Fonte ausente)")
|
||||
continue
|
||||
|
||||
result_data = None
|
||||
try:
|
||||
if scan_type == "tree":
|
||||
result_data = scan_directory_tree(source_dir_abs)
|
||||
elif scan_type == "list":
|
||||
extensions = config.get("extensions", [])
|
||||
result_data = scan_directory_list(source_dir_abs, extensions)
|
||||
|
||||
if result_data is not None:
|
||||
output_dir = os.path.dirname(output_file_abs)
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
with open(output_file_abs, "w", encoding="utf-8") as f:
|
||||
json.dump(result_data, f, indent=2, ensure_ascii=False)
|
||||
|
||||
logging.info(f"Manifesto salvo: {output_file_abs}")
|
||||
report["generated"].append(config["output_file"])
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Erro ao gerar {config['output_file']}: {e}")
|
||||
report["failed"].append(f"{config['output_file']} (Erro: {str(e)})")
|
||||
|
||||
return report
|
||||
@@ -0,0 +1,59 @@
|
||||
20/11/2025 11:00:40 [INFO] ==============================
|
||||
20/11/2025 11:00:40 [INFO] AUDITORIA DE AMBIENTE (HARDWARE)
|
||||
20/11/2025 11:00:40 [INFO] ==============================
|
||||
20/11/2025 11:00:40 [INFO] Sistema: Linux 6.8.0-87-generic
|
||||
20/11/2025 11:00:40 [INFO] Kernel: #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025
|
||||
20/11/2025 11:00:40 [INFO] Node: ubuntu
|
||||
20/11/2025 11:00:40 [INFO] CPU Modelo: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
|
||||
20/11/2025 11:00:40 [INFO] Núcleos (Log): 12
|
||||
20/11/2025 11:00:40 [INFO] Núcleos (Disp): 12 (Alocados para este script)
|
||||
20/11/2025 11:00:40 [INFO] Memória Total: 7.69 GB
|
||||
20/11/2025 11:00:40 [INFO] Disco (Total): 448 GB
|
||||
20/11/2025 11:00:40 [INFO] Disco (Livre): 121 GB
|
||||
20/11/2025 11:00:40 [INFO] ==============================
|
||||
20/11/2025 11:00:40 [INFO] === Iniciando Pipeline de Indexação Paralela ===
|
||||
20/11/2025 11:00:40 [INFO] Log sendo salvo em: /nethome/jotachina/projetos/mmpSearch/scripts/handler/logs/execucao_2025-11-20_11-00-40.log
|
||||
20/11/2025 11:00:40 [INFO] Iniciando processamento de 19 arquivos.
|
||||
20/11/2025 11:00:40 [INFO] Utilizando 12 núcleos de CPU.
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247003] Processando: tp1 - Luiz Filipe Almada.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247004] Processando: tp1_MarcoAntonio.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247005] Processando: FelipeFerraz.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247006] Processando: Computacao_Musical_Thiago_Rocha_de_Moraes.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247007] Processando: beatJulioCesardeSousa.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247008] Processando: Um começo.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247011] Processando: eliasMendesSong.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247009] Processando: leandro_souza_atvd1.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247012] Processando: Gustavo Castro.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247015] Processando: carlos.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247014] Processando: VitorAugusto.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247010] Processando: deprecado_wallace.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247015] Processando: teste.mmp
|
||||
20/11/2025 11:00:40 [INFO] [PID 1247015] Processando: JoãoVitorSimão-2023008380-megaMainSong.mmp
|
||||
20/11/2025 11:00:41 [INFO] [PID 1247007] Processando: Iara Rodrigues.mmp
|
||||
20/11/2025 11:00:41 [INFO] [PID 1247003] Processando: gabriel_gomes.mmp
|
||||
20/11/2025 11:00:41 [INFO] [PID 1247004] Processando: Samanta Freire.mmp
|
||||
20/11/2025 11:00:41 [INFO] [PID 1247014] Processando: SonsAlignígenas.mmp
|
||||
20/11/2025 11:00:41 [INFO] [PID 1247012] Processando: Wesley_Silva_Guimarães.mmp
|
||||
20/11/2025 11:00:44 [INFO] Arquivos 'all.json' e 'all.yml' gerados com sucesso.
|
||||
20/11/2025 11:00:44 [INFO] === Iniciando Geração de Manifestos (Pós-Processamento) ===
|
||||
20/11/2025 11:00:44 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/samples-manifest.json
|
||||
20/11/2025 11:00:44 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/mmp-manifest.json
|
||||
20/11/2025 11:00:44 [INFO] ============================================================
|
||||
20/11/2025 11:00:44 [INFO] RELATÓRIO DE EXECUÇÃO - 20/11/2025 11:00:44
|
||||
20/11/2025 11:00:44 [INFO] ============================================================
|
||||
20/11/2025 11:00:44 [INFO] Tempo Total do Pipeline: 3.37 segundos
|
||||
20/11/2025 11:00:44 [INFO] --------------------
|
||||
20/11/2025 11:00:44 [INFO] [1] Indexação Paralela (Arquivos .mmp/.mmpz)
|
||||
20/11/2025 11:00:44 [INFO] Total Encontrado: 19
|
||||
20/11/2025 11:00:44 [INFO] Sucessos: 19
|
||||
20/11/2025 11:00:44 [INFO] Falhas: 0
|
||||
20/11/2025 11:00:44 [INFO] --------------------
|
||||
20/11/2025 11:00:44 [INFO] [2] Geração de Manifestos (Frontend)
|
||||
20/11/2025 11:00:44 [INFO] [OK] metadata/samples-manifest.json
|
||||
20/11/2025 11:00:44 [INFO] [OK] metadata/mmp-manifest.json
|
||||
20/11/2025 11:00:44 [INFO] ============================================================
|
||||
20/11/2025 11:00:44 [INFO] Pipeline finalizado.
|
||||
20/11/2025 11:00:44 [INFO] === Iniciando Verificação de Dependências ===
|
||||
20/11/2025 11:00:44 [INFO] Relatório de Dependências salvo em: /nethome/jotachina/projetos/mmpSearch/metadata/dependency_report.json
|
||||
20/11/2025 11:00:44 [INFO] Projetos Saudáveis: 19
|
||||
20/11/2025 11:00:44 [INFO] Projetos Quebrados: 0
|
||||
@@ -0,0 +1,63 @@
|
||||
20/11/2025 11:05:46 [INFO] ==============================
|
||||
20/11/2025 11:05:46 [INFO] AUDITORIA DE AMBIENTE (HARDWARE)
|
||||
20/11/2025 11:05:46 [INFO] ==============================
|
||||
20/11/2025 11:05:46 [INFO] Sistema: Linux 6.8.0-87-generic
|
||||
20/11/2025 11:05:46 [INFO] Kernel: #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025
|
||||
20/11/2025 11:05:46 [INFO] Node: ubuntu
|
||||
20/11/2025 11:05:46 [INFO] CPU Modelo: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
|
||||
20/11/2025 11:05:46 [INFO] Núcleos (Log): 12
|
||||
20/11/2025 11:05:46 [INFO] Núcleos (Disp): 12 (Alocados para este script)
|
||||
20/11/2025 11:05:46 [INFO] Memória Total: 7.69 GB
|
||||
20/11/2025 11:05:46 [INFO] Disco (Total): 448 GB
|
||||
20/11/2025 11:05:46 [INFO] Disco (Livre): 121 GB
|
||||
20/11/2025 11:05:46 [INFO] ==============================
|
||||
20/11/2025 11:05:46 [INFO] === Iniciando Pipeline de Indexação Paralela ===
|
||||
20/11/2025 11:05:46 [INFO] Log sendo salvo em: /nethome/jotachina/projetos/mmpSearch/scripts/handler/logs/execucao_2025-11-20_11-05-46.log
|
||||
20/11/2025 11:05:46 [INFO] Iniciando processamento de 19 arquivos.
|
||||
20/11/2025 11:05:46 [INFO] Utilizando 12 núcleos de CPU.
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254814] Processando: tp1 - Luiz Filipe Almada.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254815] Processando: tp1_MarcoAntonio.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254816] Processando: FelipeFerraz.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254817] Processando: Computacao_Musical_Thiago_Rocha_de_Moraes.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254818] Processando: beatJulioCesardeSousa.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254819] Processando: Um começo.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254821] Processando: deprecado_wallace.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254820] Processando: leandro_souza_atvd1.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254823] Processando: Gustavo Castro.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254822] Processando: eliasMendesSong.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254824] Processando: VitorAugusto.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254825] Processando: carlos.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254815] Processando: teste.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254825] Processando: JoãoVitorSimão-2023008380-megaMainSong.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254815] Processando: Iara Rodrigues.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254814] Processando: gabriel_gomes.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254818] Processando: Samanta Freire.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254819] Processando: SonsAlignígenas.mmp
|
||||
20/11/2025 11:05:46 [INFO] [PID 1254823] Processando: Wesley_Silva_Guimarães.mmp
|
||||
20/11/2025 11:05:49 [INFO] Arquivos 'all.json' e 'all.yml' gerados com sucesso.
|
||||
20/11/2025 11:05:49 [INFO] === Iniciando Geração de Manifestos (Pós-Processamento) ===
|
||||
20/11/2025 11:05:49 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/samples-manifest.json
|
||||
20/11/2025 11:05:49 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/mmp-manifest.json
|
||||
20/11/2025 11:05:49 [INFO] ============================================================
|
||||
20/11/2025 11:05:49 [INFO] RELATÓRIO DE EXECUÇÃO - 20/11/2025 11:05:49
|
||||
20/11/2025 11:05:49 [INFO] ============================================================
|
||||
20/11/2025 11:05:49 [INFO] Tempo Total do Pipeline: 3.06 segundos
|
||||
20/11/2025 11:05:49 [INFO] --------------------
|
||||
20/11/2025 11:05:49 [INFO] [1] Indexação Paralela (Arquivos .mmp/.mmpz)
|
||||
20/11/2025 11:05:49 [INFO] Total Encontrado: 19
|
||||
20/11/2025 11:05:49 [INFO] Sucessos: 19
|
||||
20/11/2025 11:05:49 [INFO] Falhas: 0
|
||||
20/11/2025 11:05:49 [INFO] --------------------
|
||||
20/11/2025 11:05:49 [INFO] [2] Geração de Manifestos (Frontend)
|
||||
20/11/2025 11:05:49 [INFO] [OK] metadata/samples-manifest.json
|
||||
20/11/2025 11:05:49 [INFO] [OK] metadata/mmp-manifest.json
|
||||
20/11/2025 11:05:49 [INFO] ============================================================
|
||||
20/11/2025 11:05:49 [INFO] Pipeline finalizado.
|
||||
20/11/2025 11:05:49 [INFO] === Iniciando Análise Profunda de Dependências ===
|
||||
20/11/2025 11:05:49 [INFO] Relatório salvo: /nethome/jotachina/projetos/mmpSearch/metadata/dependency_report.json
|
||||
20/11/2025 11:05:49 [INFO] Resumo: {
|
||||
"total": 19,
|
||||
"healthy": 19,
|
||||
"recovered": 0,
|
||||
"broken": 0
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
20/11/2025 11:27:13 [INFO] ==============================
|
||||
20/11/2025 11:27:13 [INFO] AUDITORIA DE AMBIENTE (HARDWARE)
|
||||
20/11/2025 11:27:13 [INFO] ==============================
|
||||
20/11/2025 11:27:13 [INFO] Sistema: Linux 6.8.0-87-generic
|
||||
20/11/2025 11:27:13 [INFO] Kernel: #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025
|
||||
20/11/2025 11:27:13 [INFO] Node: ubuntu
|
||||
20/11/2025 11:27:13 [INFO] CPU Modelo: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
|
||||
20/11/2025 11:27:13 [INFO] Núcleos (Log): 12
|
||||
20/11/2025 11:27:13 [INFO] Núcleos (Disp): 12 (Alocados para este script)
|
||||
20/11/2025 11:27:13 [INFO] Memória Total: 7.69 GB
|
||||
20/11/2025 11:27:13 [INFO] Disco (Total): 448 GB
|
||||
20/11/2025 11:27:13 [INFO] Disco (Livre): 121 GB
|
||||
20/11/2025 11:27:13 [INFO] ==============================
|
||||
20/11/2025 11:27:13 [INFO] === Iniciando Pipeline de Indexação Paralela ===
|
||||
20/11/2025 11:27:13 [INFO] Log sendo salvo em: /nethome/jotachina/projetos/mmpSearch/scripts/handler/logs/execucao_2025-11-20_11-27-13.log
|
||||
20/11/2025 11:27:13 [INFO] Iniciando processamento de 19 arquivos.
|
||||
20/11/2025 11:27:13 [INFO] Utilizando 12 núcleos de CPU.
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288612] Processando: tp1 - Luiz Filipe Almada.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288613] Processando: tp1_MarcoAntonio.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288614] Processando: FelipeFerraz.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288615] Processando: Computacao_Musical_Thiago_Rocha_de_Moraes.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288616] Processando: beatJulioCesardeSousa.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288617] Processando: Um começo.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288619] Processando: deprecado_wallace.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288618] Processando: leandro_souza_atvd1.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288620] Processando: eliasMendesSong.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288621] Processando: Gustavo Castro.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288622] Processando: VitorAugusto.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288623] Processando: carlos.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288613] Processando: teste.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288623] Processando: JoãoVitorSimão-2023008380-megaMainSong.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288612] Processando: Iara Rodrigues.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288613] Processando: gabriel_gomes.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288616] Processando: Samanta Freire.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288621] Processando: SonsAlignígenas.mmp
|
||||
20/11/2025 11:27:13 [INFO] [PID 1288617] Processando: Wesley_Silva_Guimarães.mmp
|
||||
20/11/2025 11:27:16 [INFO] Arquivos 'all.json' e 'all.yml' gerados com sucesso.
|
||||
20/11/2025 11:27:16 [INFO] === Iniciando Geração de Manifestos (Pós-Processamento) ===
|
||||
20/11/2025 11:27:16 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/samples-manifest.json
|
||||
20/11/2025 11:27:16 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/mmp-manifest.json
|
||||
20/11/2025 11:27:16 [INFO] ============================================================
|
||||
20/11/2025 11:27:16 [INFO] RELATÓRIO DE EXECUÇÃO - 20/11/2025 11:27:16
|
||||
20/11/2025 11:27:16 [INFO] ============================================================
|
||||
20/11/2025 11:27:16 [INFO] Tempo Total do Pipeline: 2.92 segundos
|
||||
20/11/2025 11:27:16 [INFO] --------------------
|
||||
20/11/2025 11:27:16 [INFO] [1] Indexação Paralela (Arquivos .mmp/.mmpz)
|
||||
20/11/2025 11:27:16 [INFO] Total Encontrado: 19
|
||||
20/11/2025 11:27:16 [INFO] Sucessos: 19
|
||||
20/11/2025 11:27:16 [INFO] Falhas: 0
|
||||
20/11/2025 11:27:16 [INFO] --------------------
|
||||
20/11/2025 11:27:16 [INFO] [2] Geração de Manifestos (Frontend)
|
||||
20/11/2025 11:27:16 [INFO] [OK] metadata/samples-manifest.json
|
||||
20/11/2025 11:27:16 [INFO] [OK] metadata/mmp-manifest.json
|
||||
20/11/2025 11:27:16 [INFO] ============================================================
|
||||
20/11/2025 11:27:16 [INFO] Pipeline finalizado.
|
||||
20/11/2025 11:27:16 [INFO] === Iniciando Análise Profunda de Dependências ===
|
||||
20/11/2025 11:27:16 [INFO] Relatório salvo: /nethome/jotachina/projetos/mmpSearch/metadata/dependency_report.json
|
||||
20/11/2025 11:27:16 [INFO] Resumo: {
|
||||
"total": 19,
|
||||
"healthy": 19,
|
||||
"recovered": 0,
|
||||
"broken": 0
|
||||
}
|
||||
@@ -0,0 +1,323 @@
|
||||
20/11/2025 11:28:57 [INFO] ==============================
|
||||
20/11/2025 11:28:57 [INFO] AUDITORIA DE AMBIENTE (HARDWARE)
|
||||
20/11/2025 11:28:57 [INFO] ==============================
|
||||
20/11/2025 11:28:57 [INFO] Sistema: Linux 6.8.0-87-generic
|
||||
20/11/2025 11:28:57 [INFO] Kernel: #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025
|
||||
20/11/2025 11:28:57 [INFO] Node: ubuntu
|
||||
20/11/2025 11:28:57 [INFO] CPU Modelo: Intel(R) Xeon(R) CPU E5-2620 v2 @ 2.10GHz
|
||||
20/11/2025 11:28:57 [INFO] Núcleos (Log): 12
|
||||
20/11/2025 11:28:57 [INFO] Núcleos (Disp): 12 (Alocados para este script)
|
||||
20/11/2025 11:28:57 [INFO] Memória Total: 7.69 GB
|
||||
20/11/2025 11:28:57 [INFO] Disco (Total): 448 GB
|
||||
20/11/2025 11:28:57 [INFO] Disco (Livre): 121 GB
|
||||
20/11/2025 11:28:57 [INFO] ==============================
|
||||
20/11/2025 11:28:57 [INFO] === Iniciando Pipeline de Indexação Paralela ===
|
||||
20/11/2025 11:28:57 [INFO] Log sendo salvo em: /nethome/jotachina/projetos/mmpSearch/scripts/handler/logs/execucao_2025-11-20_11-28-57.log
|
||||
20/11/2025 11:28:57 [INFO] Iniciando processamento de 69 arquivos.
|
||||
20/11/2025 11:28:57 [INFO] Utilizando 12 núcleos de CPU.
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291663] Processando: Gustavo Castro.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291664] Processando: Samanta Freire.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291665] Processando: Living Joy - don't stop movin 1996 Loop.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291663] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Gustavo Castro.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291666] Processando: Eternal Glory.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291664] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Samanta Freire.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Living Joy - don't stop movin 1996 Loop.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291667] Processando: space-camel.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Eternal Glory.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291668] Processando: Iara Rodrigues.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291669] Processando: gabriel_gomes.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291667] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/space-camel.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291668] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Iara Rodrigues.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291670] Processando: My worst enemy.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291671] Processando: New Exploration 3.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/gabriel_gomes.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291672] Processando: Hizaki Classical.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291673] Processando: Mantronix - Got To Have Your Love 1989 Loop.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291670] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/My worst enemy.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291671] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/New Exploration 3.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Hizaki Classical.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Mantronix - Got To Have Your Love 1989 Loop.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291674] Processando: Robin S - Show Me Love 1993 Loop.mmpz
|
||||
20/11/2025 11:28:57 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Robin S - Show Me Love 1993 Loop.mmpz
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291663] Gustavo Castro.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291667] space-camel.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291670] My worst enemy.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291666] Eternal Glory.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291668] Iara Rodrigues.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291671] New Exploration 3.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291664] Samanta Freire.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291669] gabriel_gomes.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291665] Living Joy - don't stop movin 1996 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291673] Mantronix - Got To Have Your Love 1989 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291672] Hizaki Classical.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:28:59 [INFO] [PID 1291674] Robin S - Show Me Love 1993 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:29:33 [INFO] [PID 1291663] Gustavo Castro.mmpz: Convertido para .wav
|
||||
20/11/2025 11:29:33 [INFO] [PID 1291663] Processando: Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz
|
||||
20/11/2025 11:29:33 [INFO] [PID 1291663] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz
|
||||
20/11/2025 11:29:33 [INFO] [PID 1291663] Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:29:36 [INFO] [PID 1291670] My worst enemy.mmpz: Convertido para .wav
|
||||
20/11/2025 11:29:36 [INFO] [PID 1291670] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00032-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:29:36 [INFO] [PID 1291670] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00032-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:29:36 [INFO] [PID 1291670] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00032-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:29:38 [INFO] [PID 1291672] Hizaki Classical.mmpz: Convertido para .wav
|
||||
20/11/2025 11:29:38 [INFO] [PID 1291672] Processando: XpressiveTest10.mmpz
|
||||
20/11/2025 11:29:38 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/XpressiveTest10.mmpz
|
||||
20/11/2025 11:29:38 [INFO] [PID 1291672] XpressiveTest10.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:29:41 [INFO] [PID 1291664] Samanta Freire.mmpz: Convertido para .wav
|
||||
20/11/2025 11:29:41 [INFO] [PID 1291664] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00031-TRUE-IBIZA-TRANCE-READY.mmpz
|
||||
20/11/2025 11:29:41 [INFO] [PID 1291664] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00031-TRUE-IBIZA-TRANCE-READY.mmpz
|
||||
20/11/2025 11:29:41 [INFO] [PID 1291664] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00031-TRUE-IBIZA-TRANCE-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:29:55 [INFO] [PID 1291668] Iara Rodrigues.mmpz: Convertido para .wav
|
||||
20/11/2025 11:29:55 [INFO] [PID 1291668] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00034-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:29:55 [INFO] [PID 1291668] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00034-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:29:55 [INFO] [PID 1291668] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00034-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:00 [INFO] [PID 1291669] gabriel_gomes.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:00 [INFO] [PID 1291669] Processando: teste.mmpz
|
||||
20/11/2025 11:30:00 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/teste.mmpz
|
||||
20/11/2025 11:30:00 [INFO] [PID 1291669] teste.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:03 [WARNING] [PID 1291669] teste.mmpz: Falha no render WAV:
|
||||
|--------------------------- | 52% | QThread: Destroyed while thread is still running
|
||||
Aborted (core dumped)
|
||||
|
||||
20/11/2025 11:30:03 [INFO] [PID 1291669] Processando: A return from the dancing stars.mmpz
|
||||
20/11/2025 11:30:03 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/A return from the dancing stars.mmpz
|
||||
20/11/2025 11:30:04 [INFO] [PID 1291669] A return from the dancing stars.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:16 [INFO] [PID 1291667] space-camel.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:16 [INFO] [PID 1291667] Processando: Relaxing Theme 2.mmpz
|
||||
20/11/2025 11:30:16 [INFO] [PID 1291667] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Relaxing Theme 2.mmpz
|
||||
20/11/2025 11:30:16 [INFO] [PID 1291667] Relaxing Theme 2.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:27 [INFO] [PID 1291670] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00032-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:28 [INFO] [PID 1291670] Processando: deprecado_wallace.mmpz
|
||||
20/11/2025 11:30:28 [INFO] [PID 1291670] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/deprecado_wallace.mmpz
|
||||
20/11/2025 11:30:28 [INFO] [PID 1291670] deprecado_wallace.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:32 [INFO] [PID 1291674] Robin S - Show Me Love 1993 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:33 [INFO] [PID 1291674] Processando: eliasMendesSong.mmpz
|
||||
20/11/2025 11:30:33 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/eliasMendesSong.mmpz
|
||||
20/11/2025 11:30:33 [INFO] [PID 1291674] eliasMendesSong.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:36 [INFO] [PID 1291663] Computacao_Musical_Thiago_Rocha_de_Moraes.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:36 [INFO] [PID 1291663] Processando: beatJulioCesardeSousa.mmpz
|
||||
20/11/2025 11:30:36 [INFO] [PID 1291663] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/beatJulioCesardeSousa.mmpz
|
||||
20/11/2025 11:30:36 [INFO] [PID 1291663] beatJulioCesardeSousa.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:39 [INFO] [PID 1291673] Mantronix - Got To Have Your Love 1989 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:39 [INFO] [PID 1291673] Processando: Danse Le Temps.mmpz
|
||||
20/11/2025 11:30:39 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Danse Le Temps.mmpz
|
||||
20/11/2025 11:30:39 [INFO] [PID 1291673] Danse Le Temps.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:30:47 [INFO] [PID 1291665] Living Joy - don't stop movin 1996 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:30:48 [INFO] [PID 1291665] Processando: Floating.mmpz
|
||||
20/11/2025 11:30:48 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Floating.mmpz
|
||||
20/11/2025 11:30:48 [INFO] [PID 1291665] Floating.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:02 [INFO] [PID 1291674] eliasMendesSong.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291674] Processando: Tears of Tragedy Classical 2.mmpz
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Tears of Tragedy Classical 2.mmpz
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291674] Tears of Tragedy Classical 2.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291668] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00034-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291668] Processando: stairs.mmpz
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291668] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/stairs.mmpz
|
||||
20/11/2025 11:31:03 [INFO] [PID 1291668] stairs.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:08 [INFO] [PID 1291672] XpressiveTest10.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:09 [INFO] [PID 1291665] Floating.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:09 [INFO] [PID 1291665] Processando: Syu Classical.mmpz
|
||||
20/11/2025 11:31:09 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Syu Classical.mmpz
|
||||
20/11/2025 11:31:09 [INFO] [PID 1291665] Syu Classical.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:19 [INFO] [PID 1291670] deprecado_wallace.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:19 [INFO] [PID 1291670] Processando: Relaxing Theme 3.mmpz
|
||||
20/11/2025 11:31:19 [INFO] [PID 1291670] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Relaxing Theme 3.mmpz
|
||||
20/11/2025 11:31:19 [INFO] [PID 1291670] Relaxing Theme 3.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:20 [INFO] [PID 1291672] Processando: JoãoVitorSimão-2023008380-megaMainSong.mmpz
|
||||
20/11/2025 11:31:20 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/JoãoVitorSimão-2023008380-megaMainSong.mmpz
|
||||
20/11/2025 11:31:20 [INFO] [PID 1291672] JoãoVitorSimão-2023008380-megaMainSong.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:21 [INFO] [PID 1291663] beatJulioCesardeSousa.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:21 [INFO] [PID 1291663] Processando: Relaxing Theme.mmpz
|
||||
20/11/2025 11:31:21 [INFO] [PID 1291663] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Relaxing Theme.mmpz
|
||||
20/11/2025 11:31:21 [INFO] [PID 1291663] Relaxing Theme.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:25 [INFO] [PID 1291665] Syu Classical.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:25 [INFO] [PID 1291665] Processando: Nightcrawlers - Surrender Your Love 1995 Loop.mmpz
|
||||
20/11/2025 11:31:25 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Nightcrawlers - Surrender Your Love 1995 Loop.mmpz
|
||||
20/11/2025 11:31:26 [INFO] [PID 1291665] Nightcrawlers - Surrender Your Love 1995 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:32 [INFO] [PID 1291674] Tears of Tragedy Classical 2.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:32 [INFO] [PID 1291674] Processando: Solaris Deep Note.mmpz
|
||||
20/11/2025 11:31:32 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Solaris Deep Note.mmpz
|
||||
20/11/2025 11:31:32 [INFO] [PID 1291674] Solaris Deep Note.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:31:49 [INFO] [PID 1291666] Eternal Glory.mmpz: Convertido para .wav
|
||||
20/11/2025 11:31:52 [INFO] [PID 1291666] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00163-IBIZA-ACID-TRANCE-READY.mmpz
|
||||
20/11/2025 11:31:52 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00163-IBIZA-ACID-TRANCE-READY.mmpz
|
||||
20/11/2025 11:31:52 [INFO] [PID 1291666] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00163-IBIZA-ACID-TRANCE-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:05 [INFO] [PID 1291664] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00031-TRUE-IBIZA-TRANCE-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:05 [INFO] [PID 1291664] Processando: Opus III - A Fine Day 1992.mmpz
|
||||
20/11/2025 11:32:05 [INFO] [PID 1291664] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Opus III - A Fine Day 1992.mmpz
|
||||
20/11/2025 11:32:06 [INFO] [PID 1291664] Opus III - A Fine Day 1992.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:20 [INFO] [PID 1291669] A return from the dancing stars.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:20 [INFO] [PID 1291669] Processando: SonsAlignígenas.mmpz
|
||||
20/11/2025 11:32:20 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/SonsAlignígenas.mmpz
|
||||
20/11/2025 11:32:20 [INFO] [PID 1291669] SonsAlignígenas.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:42 [INFO] [PID 1291669] SonsAlignígenas.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:42 [INFO] [PID 1291669] Processando: grokihub-intro-meme.mmpz
|
||||
20/11/2025 11:32:42 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/grokihub-intro-meme.mmpz
|
||||
20/11/2025 11:32:42 [INFO] [PID 1291669] grokihub-intro-meme.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:43 [INFO] [PID 1291669] grokihub-intro-meme.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:43 [INFO] [PID 1291669] Processando: tp1 - Luiz Filipe Almada.mmpz
|
||||
20/11/2025 11:32:43 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/tp1 - Luiz Filipe Almada.mmpz
|
||||
20/11/2025 11:32:43 [INFO] [PID 1291669] tp1 - Luiz Filipe Almada.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291673] Danse Le Temps.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291673] Processando: Mighty Dub Katz - Magic Carpet Ride 1995 Loop.mmpz
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Mighty Dub Katz - Magic Carpet Ride 1995 Loop.mmpz
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291673] Mighty Dub Katz - Magic Carpet Ride 1995 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291672] JoãoVitorSimão-2023008380-megaMainSong.mmpz: Convertido para .wav
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291672] Processando: Ukifune.mmpz
|
||||
20/11/2025 11:32:54 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Ukifune.mmpz
|
||||
20/11/2025 11:32:55 [INFO] [PID 1291672] Ukifune.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:23 [INFO] [PID 1291669] tp1 - Luiz Filipe Almada.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:23 [INFO] [PID 1291669] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00165-IBIZA-ACID-TRANCE-READY.mmpz
|
||||
20/11/2025 11:33:23 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00165-IBIZA-ACID-TRANCE-READY.mmpz
|
||||
20/11/2025 11:33:23 [INFO] [PID 1291669] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00165-IBIZA-ACID-TRANCE-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:31 [INFO] [PID 1291666] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00163-IBIZA-ACID-TRANCE-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:31 [INFO] [PID 1291666] Processando: Um começo.mmpz
|
||||
20/11/2025 11:33:31 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Um começo.mmpz
|
||||
20/11/2025 11:33:31 [INFO] [PID 1291666] Um começo.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:32 [INFO] [PID 1291674] Solaris Deep Note.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:33 [INFO] [PID 1291674] Processando: Ancient GodSword.mmpz
|
||||
20/11/2025 11:33:33 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Ancient GodSword.mmpz
|
||||
20/11/2025 11:33:33 [INFO] [PID 1291674] Ancient GodSword.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:39 [INFO] [PID 1291673] Mighty Dub Katz - Magic Carpet Ride 1995 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:39 [INFO] [PID 1291673] Processando: leandro_souza_atvd1.mmpz
|
||||
20/11/2025 11:33:39 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/leandro_souza_atvd1.mmpz
|
||||
20/11/2025 11:33:40 [INFO] [PID 1291673] leandro_souza_atvd1.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:42 [INFO] [PID 1291665] Nightcrawlers - Surrender Your Love 1995 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:42 [INFO] [PID 1291665] Processando: Wesley_Silva_Guimarães.mmpz
|
||||
20/11/2025 11:33:42 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Wesley_Silva_Guimarães.mmpz
|
||||
20/11/2025 11:33:42 [INFO] [PID 1291665] Wesley_Silva_Guimarães.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:44 [INFO] [PID 1291672] Ukifune.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291668] stairs.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291668] Processando: Another Dancefloor.mmpz
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291668] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Another Dancefloor.mmpz
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291672] Processando: Provincetown.mmpz
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Provincetown.mmpz
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291672] Provincetown.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:45 [INFO] [PID 1291668] Another Dancefloor.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:52 [INFO] [PID 1291673] leandro_souza_atvd1.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:52 [INFO] [PID 1291673] Processando: On track.mmpz
|
||||
20/11/2025 11:33:52 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/On track.mmpz
|
||||
20/11/2025 11:33:52 [INFO] [PID 1291673] On track.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:55 [INFO] [PID 1291665] Wesley_Silva_Guimarães.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:55 [INFO] [PID 1291665] Processando: Nuttertools.mmpz
|
||||
20/11/2025 11:33:55 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Nuttertools.mmpz
|
||||
20/11/2025 11:33:55 [INFO] [PID 1291665] Nuttertools.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:33:57 [INFO] [PID 1291671] New Exploration 3.mmpz: Convertido para .wav
|
||||
20/11/2025 11:33:58 [INFO] [PID 1291671] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-00001-OLD-SCHOOL-6-READY.mmpz
|
||||
20/11/2025 11:33:58 [INFO] [PID 1291671] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-00001-OLD-SCHOOL-6-READY.mmpz
|
||||
20/11/2025 11:33:58 [INFO] [PID 1291671] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-00001-OLD-SCHOOL-6-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:34:22 [INFO] [PID 1291669] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0003-TEMPLATE-A-1-old-TEMPLATE-TR-00165-IBIZA-ACID-TRANCE-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:34:23 [INFO] [PID 1291669] Processando: Introduction.mmpz
|
||||
20/11/2025 11:34:23 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Introduction.mmpz
|
||||
20/11/2025 11:34:23 [INFO] [PID 1291669] Introduction.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:34:27 [INFO] [PID 1291666] Um começo.mmpz: Convertido para .wav
|
||||
20/11/2025 11:34:27 [INFO] [PID 1291666] Processando: Opus III - A Fine Day 1992 Loop.mmpz
|
||||
20/11/2025 11:34:27 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Opus III - A Fine Day 1992 Loop.mmpz
|
||||
20/11/2025 11:34:28 [INFO] [PID 1291666] Opus III - A Fine Day 1992 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:34:35 [INFO] [PID 1291665] Nuttertools.mmpz: Convertido para .wav
|
||||
20/11/2025 11:34:35 [INFO] [PID 1291665] Processando: base-traphard.mmpz
|
||||
20/11/2025 11:34:35 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/base-traphard.mmpz
|
||||
20/11/2025 11:34:36 [INFO] [PID 1291665] base-traphard.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:35:06 [INFO] [PID 1291671] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-00001-OLD-SCHOOL-6-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:35:07 [INFO] [PID 1291671] Processando: MPXVM - FUMIX 307 ( Original Mix ).mmpz
|
||||
20/11/2025 11:35:07 [INFO] [PID 1291671] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/MPXVM - FUMIX 307 ( Original Mix ).mmpz
|
||||
20/11/2025 11:35:07 [INFO] [PID 1291671] MPXVM - FUMIX 307 ( Original Mix ).mmpz: Convertido para .mmp
|
||||
20/11/2025 11:35:23 [INFO] [PID 1291665] base-traphard.mmpz: Convertido para .wav
|
||||
20/11/2025 11:35:23 [INFO] [PID 1291665] Processando: The Drum.mmpz
|
||||
20/11/2025 11:35:23 [INFO] [PID 1291665] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/The Drum.mmpz
|
||||
20/11/2025 11:35:24 [INFO] [PID 1291665] The Drum.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:35:31 [INFO] [PID 1291674] Ancient GodSword.mmpz: Convertido para .wav
|
||||
20/11/2025 11:35:32 [INFO] [PID 1291674] Processando: carlos.mmpz
|
||||
20/11/2025 11:35:32 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/carlos.mmpz
|
||||
20/11/2025 11:35:32 [INFO] [PID 1291674] carlos.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:35:44 [INFO] [PID 1291673] On track.mmpz: Convertido para .wav
|
||||
20/11/2025 11:35:44 [INFO] [PID 1291673] Processando: regarde toi.mmpz
|
||||
20/11/2025 11:35:44 [INFO] [PID 1291673] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/regarde toi.mmpz
|
||||
20/11/2025 11:35:44 [INFO] [PID 1291673] regarde toi.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:36:22 [INFO] [PID 1291666] Opus III - A Fine Day 1992 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:36:23 [INFO] [PID 1291666] Processando: VitorAugusto.mmpz
|
||||
20/11/2025 11:36:23 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/VitorAugusto.mmpz
|
||||
20/11/2025 11:36:25 [INFO] [PID 1291666] VitorAugusto.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:36:48 [INFO] [PID 1291669] Introduction.mmpz: Convertido para .wav
|
||||
20/11/2025 11:36:48 [INFO] [PID 1291669] Processando: Galneryus Classical.mmpz
|
||||
20/11/2025 11:36:48 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Galneryus Classical.mmpz
|
||||
20/11/2025 11:36:48 [INFO] [PID 1291669] Galneryus Classical.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:06 [INFO] [PID 1291669] Galneryus Classical.mmpz: Convertido para .wav
|
||||
20/11/2025 11:37:06 [INFO] [PID 1291669] Processando: PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00035-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:37:06 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00035-HAPPY-HARDCORE-ACID-READY.mmpz
|
||||
20/11/2025 11:37:06 [INFO] [PID 1291669] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00035-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:14 [INFO] [PID 1291666] VitorAugusto.mmpz: Convertido para .wav
|
||||
20/11/2025 11:37:15 [INFO] [PID 1291666] Processando: Psychedelic storm.mmpz
|
||||
20/11/2025 11:37:15 [INFO] [PID 1291666] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Psychedelic storm.mmpz
|
||||
20/11/2025 11:37:15 [INFO] [PID 1291666] Psychedelic storm.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:44 [INFO] [PID 1291667] Relaxing Theme 2.mmpz: Convertido para .wav
|
||||
20/11/2025 11:37:47 [INFO] [PID 1291667] Processando: Shade of separation EXTENDED.mmpz
|
||||
20/11/2025 11:37:47 [INFO] [PID 1291667] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Shade of separation EXTENDED.mmpz
|
||||
20/11/2025 11:37:47 [INFO] [PID 1291667] Shade of separation EXTENDED.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:50 [INFO] [PID 1291674] carlos.mmpz: Convertido para .wav
|
||||
20/11/2025 11:37:50 [INFO] [PID 1291674] Processando: Back to Earth EXTENDED.mmpz
|
||||
20/11/2025 11:37:50 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Back to Earth EXTENDED.mmpz
|
||||
20/11/2025 11:37:50 [INFO] [PID 1291674] Back to Earth EXTENDED.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:52 [INFO] [PID 1291669] PRICE-SINGLE-1-USD-FULL-COLLECTION-15-USD-0001-TEMPLATE-A-1-old-TEMPLATE-HH-00035-HAPPY-HARDCORE-ACID-READY.mmpz: Convertido para .wav
|
||||
20/11/2025 11:37:52 [INFO] [PID 1291669] Processando: tp1_MarcoAntonio.mmpz
|
||||
20/11/2025 11:37:52 [INFO] [PID 1291669] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/tp1_MarcoAntonio.mmpz
|
||||
20/11/2025 11:37:52 [INFO] [PID 1291669] tp1_MarcoAntonio.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:37:56 [INFO] [PID 1291666] Psychedelic storm.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:03 [INFO] [PID 1291668] Another Dancefloor.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:25 [INFO] [PID 1291671] MPXVM - FUMIX 307 ( Original Mix ).mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:26 [INFO] [PID 1291671] Processando: Orbital - Halcyon On and On 1993 Loop.mmpz
|
||||
20/11/2025 11:38:26 [INFO] [PID 1291671] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Orbital - Halcyon On and On 1993 Loop.mmpz
|
||||
20/11/2025 11:38:26 [INFO] [PID 1291671] Orbital - Halcyon On and On 1993 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:38:29 [INFO] [PID 1291673] regarde toi.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:30 [INFO] [PID 1291669] tp1_MarcoAntonio.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:35 [INFO] [PID 1291670] Relaxing Theme 3.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:42 [INFO] [PID 1291663] Relaxing Theme.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:46 [INFO] [PID 1291667] Shade of separation EXTENDED.mmpz: Convertido para .wav
|
||||
20/11/2025 11:38:46 [INFO] [PID 1291667] Processando: winddown.mmpz
|
||||
20/11/2025 11:38:46 [INFO] [PID 1291667] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/winddown.mmpz
|
||||
20/11/2025 11:38:46 [INFO] [PID 1291667] winddown.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:38:56 [INFO] [PID 1291667] winddown.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:05 [INFO] [PID 1291674] Back to Earth EXTENDED.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:05 [INFO] [PID 1291674] Processando: Against your desire.mmpz
|
||||
20/11/2025 11:39:05 [INFO] [PID 1291674] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Against your desire.mmpz
|
||||
20/11/2025 11:39:05 [INFO] [PID 1291674] Against your desire.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:39:18 [INFO] [PID 1291672] Provincetown.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:19 [INFO] [PID 1291672] Processando: Red Carpet - Alright 2004 Loop.mmpz
|
||||
20/11/2025 11:39:19 [INFO] [PID 1291672] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/Red Carpet - Alright 2004 Loop.mmpz
|
||||
20/11/2025 11:39:19 [INFO] [PID 1291672] Red Carpet - Alright 2004 Loop.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:39:26 [INFO] [PID 1291664] Opus III - A Fine Day 1992.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:26 [INFO] [PID 1291664] Processando: FelipeFerraz.mmpz
|
||||
20/11/2025 11:39:26 [INFO] [PID 1291664] Movido para: /nethome/jotachina/projetos/mmpSearch/mmp/mmpz/FelipeFerraz.mmpz
|
||||
20/11/2025 11:39:26 [INFO] [PID 1291664] FelipeFerraz.mmpz: Convertido para .mmp
|
||||
20/11/2025 11:39:30 [INFO] [PID 1291671] Orbital - Halcyon On and On 1993 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:33 [INFO] [PID 1291665] The Drum.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:44 [INFO] [PID 1291672] Red Carpet - Alright 2004 Loop.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:47 [INFO] [PID 1291664] FelipeFerraz.mmpz: Convertido para .wav
|
||||
20/11/2025 11:39:53 [INFO] [PID 1291674] Against your desire.mmpz: Convertido para .wav
|
||||
20/11/2025 11:40:38 [INFO] Arquivos 'all.json' e 'all.yml' gerados com sucesso.
|
||||
20/11/2025 11:40:38 [INFO] === Iniciando Geração de Manifestos (Pós-Processamento) ===
|
||||
20/11/2025 11:40:38 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/samples-manifest.json
|
||||
20/11/2025 11:40:38 [INFO] Manifesto salvo: /nethome/jotachina/projetos/mmpSearch/metadata/mmp-manifest.json
|
||||
20/11/2025 11:40:38 [INFO] ============================================================
|
||||
20/11/2025 11:40:38 [INFO] RELATÓRIO DE EXECUÇÃO - 20/11/2025 11:40:38
|
||||
20/11/2025 11:40:38 [INFO] ============================================================
|
||||
20/11/2025 11:40:38 [INFO] Tempo Total do Pipeline: 700.44 segundos
|
||||
20/11/2025 11:40:38 [INFO] --------------------
|
||||
20/11/2025 11:40:38 [INFO] [1] Indexação Paralela (Arquivos .mmp/.mmpz)
|
||||
20/11/2025 11:40:38 [INFO] Total Encontrado: 69
|
||||
20/11/2025 11:40:38 [INFO] Sucessos: 69
|
||||
20/11/2025 11:40:38 [INFO] Falhas: 0
|
||||
20/11/2025 11:40:38 [INFO] --------------------
|
||||
20/11/2025 11:40:38 [INFO] [2] Geração de Manifestos (Frontend)
|
||||
20/11/2025 11:40:38 [INFO] [OK] metadata/samples-manifest.json
|
||||
20/11/2025 11:40:38 [INFO] [OK] metadata/mmp-manifest.json
|
||||
20/11/2025 11:40:38 [INFO] ============================================================
|
||||
20/11/2025 11:40:38 [INFO] Pipeline finalizado.
|
||||
20/11/2025 11:40:38 [INFO] === Iniciando Análise Profunda de Dependências ===
|
||||
20/11/2025 11:40:38 [INFO] Relatório salvo: /nethome/jotachina/projetos/mmpSearch/metadata/dependency_report.json
|
||||
20/11/2025 11:40:38 [INFO] Resumo: {
|
||||
"total": 69,
|
||||
"healthy": 69,
|
||||
"recovered": 0,
|
||||
"broken": 0
|
||||
}
|
||||
+341
-44
@@ -3,71 +3,368 @@
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import multiprocessing
|
||||
import logging
|
||||
import time
|
||||
import platform
|
||||
from datetime import datetime
|
||||
|
||||
# Importando seus módulos
|
||||
from generate_manifest import generate_manifests
|
||||
from file_parser import parse_mmp_file
|
||||
from file_saver import save_to_json, save_to_yaml
|
||||
from utils import create_folders_if_not_exist
|
||||
from dependency_checker import check_dependencies
|
||||
from utils import (
|
||||
create_folders_if_not_exist,
|
||||
BASE_PATH,
|
||||
DATA_FOLDER,
|
||||
METADATA_FOLDER,
|
||||
WAV_FOLDER,
|
||||
MMPZ_FOLDER,
|
||||
MMP_FOLDER,
|
||||
)
|
||||
|
||||
def process_mmps_in_folder(folder_path):
|
||||
mmp_files = [f for f in os.listdir(folder_path) if f.endswith('.mmp') or f.endswith('.mmpz')]
|
||||
all_data = []
|
||||
|
||||
mmpz_folder = os.path.join(folder_path, '/nethome/jotachina/projetos/mmpSearch/mmp/mmpz')
|
||||
wav_folder = os.path.join(folder_path, '/nethome/jotachina/projetos/mmpSearch/mmp/wav')
|
||||
metadata_folder = os.path.join(folder_path, '/nethome/jotachina/projetos/mmpSearch/metadata')
|
||||
data_folder = os.path.join(folder_path, '/nethome/jotachina/projetos/mmpSearch/_data')
|
||||
# Caminho para os Logs
|
||||
# Assumindo que este script roda dentro de scripts/handler/
|
||||
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
LOG_FOLDER = os.path.join(CURRENT_DIR, "logs")
|
||||
|
||||
create_folders_if_not_exist([mmpz_folder, wav_folder, metadata_folder, data_folder])
|
||||
|
||||
for file in mmp_files:
|
||||
file_path = os.path.join(folder_path, file)
|
||||
print(f'Processando arquivo: {file_path}')
|
||||
def get_linux_mem_info():
|
||||
"""Lê /proc/meminfo para obter memória total de forma nativa no Linux."""
|
||||
try:
|
||||
with open("/proc/meminfo", "r") as f:
|
||||
for line in f:
|
||||
if "MemTotal" in line:
|
||||
# Ex: MemTotal: 16303032 kB
|
||||
kb_value = int(line.split()[1])
|
||||
return kb_value / (1024 * 1024) # Retorna em GB
|
||||
except:
|
||||
return 0
|
||||
|
||||
if file.endswith('.mmpz'):
|
||||
destination_path = os.path.join(mmpz_folder, file)
|
||||
shutil.move(file_path, destination_path)
|
||||
print(f'Movido para: {destination_path}')
|
||||
|
||||
mmp_name = os.path.splitext(file)[0] + ".mmp"
|
||||
output_mmp_path = os.path.join(folder_path, mmp_name)
|
||||
def get_cpu_model_name():
|
||||
"""Lê /proc/cpuinfo para pegar o nome real do processador."""
|
||||
try:
|
||||
with open("/proc/cpuinfo", "r") as f:
|
||||
for line in f:
|
||||
if "model name" in line:
|
||||
return line.split(":")[1].strip()
|
||||
except:
|
||||
return platform.processor()
|
||||
|
||||
|
||||
def log_system_info():
|
||||
"""
|
||||
Registra informações do hardware usando apenas bibliotecas nativas do Python.
|
||||
"""
|
||||
try:
|
||||
logging.info("=" * 30)
|
||||
logging.info("AUDITORIA DE AMBIENTE (HARDWARE)")
|
||||
logging.info("=" * 30)
|
||||
|
||||
# 1. Sistema Operacional
|
||||
uname = platform.uname()
|
||||
logging.info(f"Sistema: {uname.system} {uname.release}")
|
||||
logging.info(f"Kernel: {uname.version}")
|
||||
logging.info(
|
||||
f"Node: {uname.node}"
|
||||
) # Nome do servidor (provavelmente 'alice')
|
||||
|
||||
# 2. CPU (Processamento)
|
||||
cpu_model = get_cpu_model_name()
|
||||
cores_logical = multiprocessing.cpu_count()
|
||||
# os.sched_getaffinity pega os cores que o processo PODE usar (útil em cluster compartilhado)
|
||||
try:
|
||||
cores_available = len(os.sched_getaffinity(0))
|
||||
except AttributeError:
|
||||
cores_available = cores_logical
|
||||
|
||||
logging.info(f"CPU Modelo: {cpu_model}")
|
||||
logging.info(f"Núcleos (Log): {cores_logical}")
|
||||
logging.info(f"Núcleos (Disp): {cores_available} (Alocados para este script)")
|
||||
|
||||
# 3. Memória RAM
|
||||
mem_total_gb = get_linux_mem_info()
|
||||
logging.info(f"Memória Total: {mem_total_gb:.2f} GB")
|
||||
|
||||
# 4. Armazenamento (Disco onde o script está rodando)
|
||||
# Pega o uso do disco no diretório atual (.)
|
||||
total, used, free = shutil.disk_usage(".")
|
||||
logging.info(f"Disco (Total): {total // (2**30)} GB")
|
||||
logging.info(f"Disco (Livre): {free // (2**30)} GB")
|
||||
|
||||
logging.info("=" * 30)
|
||||
|
||||
except Exception as e:
|
||||
logging.warning(f"Falha ao coletar info do sistema: {e}")
|
||||
|
||||
|
||||
def setup_logger():
|
||||
"""
|
||||
Configura o logger para escrever no terminal e em arquivo simultaneamente.
|
||||
"""
|
||||
# Cria pasta de logs se não existir
|
||||
os.makedirs(LOG_FOLDER, exist_ok=True)
|
||||
|
||||
# Nome do arquivo com Timestamp
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
||||
log_filename = os.path.join(LOG_FOLDER, f"execucao_{timestamp}.log")
|
||||
|
||||
# Configuração do Logger
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
# Formato da mensagem
|
||||
formatter = logging.Formatter(
|
||||
"%(asctime)s [%(levelname)s] %(message)s", datefmt="%d/%m/%Y %H:%M:%S"
|
||||
)
|
||||
|
||||
# Handler Arquivo
|
||||
file_handler = logging.FileHandler(log_filename, encoding="utf-8")
|
||||
file_handler.setFormatter(formatter)
|
||||
logger.addHandler(file_handler)
|
||||
|
||||
# Handler Terminal (Console)
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setFormatter(formatter)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
return logger, log_filename
|
||||
|
||||
|
||||
def process_single_file(file_name):
|
||||
"""
|
||||
Worker: Processa um arquivo. Retorna um dict com status de sucesso/erro.
|
||||
"""
|
||||
file_path = os.path.join(MMP_FOLDER, file_name)
|
||||
pid = os.getpid()
|
||||
|
||||
# Resultado padrão
|
||||
result = {"success": False, "file": file_name, "data": None, "error": None}
|
||||
|
||||
try:
|
||||
logging.info(f"[PID {pid}] Processando: {file_name}")
|
||||
|
||||
mmp_data = None
|
||||
|
||||
if file_name.endswith(".mmpz"):
|
||||
destination_path = os.path.join(MMPZ_FOLDER, file_name)
|
||||
|
||||
# Movimentação de arquivo
|
||||
if not os.path.exists(destination_path):
|
||||
shutil.move(file_path, destination_path)
|
||||
logging.info(f"[PID {pid}] Movido para: {destination_path}")
|
||||
else:
|
||||
logging.info(
|
||||
f"[PID {pid}] Arquivo já existe em {destination_path}, usando existente."
|
||||
)
|
||||
if os.path.exists(file_path):
|
||||
os.remove(file_path)
|
||||
|
||||
mmp_name = os.path.splitext(file_name)[0] + ".mmp"
|
||||
output_mmp_path = os.path.join(MMP_FOLDER, mmp_name)
|
||||
|
||||
# Ambiente para LMMS Headless
|
||||
env = os.environ.copy()
|
||||
env["QT_QPA_PLATFORM"] = "offscreen"
|
||||
|
||||
# Conversão MMPZ -> MMP
|
||||
convert_cmd = f'lmms --dump "{destination_path}" > "{output_mmp_path}"'
|
||||
try:
|
||||
# capture_output=True permite jogar o log do LMMS para o nosso arquivo de log
|
||||
subprocess.run(
|
||||
convert_cmd,
|
||||
shell=True,
|
||||
check=True,
|
||||
env=env,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
logging.info(f"[PID {pid}] {file_name}: Convertido para .mmp")
|
||||
except subprocess.CalledProcessError as e:
|
||||
error_msg = f"Erro conversão .mmp (LMMS): {e.stderr}"
|
||||
logging.error(f"[PID {pid}] {file_name}: {error_msg}")
|
||||
result["error"] = error_msg
|
||||
return result
|
||||
|
||||
# Conversão -> WAV
|
||||
wav_output_path = os.path.join(WAV_FOLDER, os.path.splitext(file_name)[0])
|
||||
wav_convert_cmd = (
|
||||
f'lmms -r "{destination_path}" -o "{wav_output_path}" -f wav'
|
||||
)
|
||||
|
||||
try:
|
||||
os.environ['QT_QPA_PLATFORM'] = 'offscreen'
|
||||
subprocess.run(convert_cmd, shell=True, check=True)
|
||||
print("Convertido para .mmp com sucesso!")
|
||||
subprocess.run(
|
||||
wav_convert_cmd,
|
||||
shell=True,
|
||||
check=True,
|
||||
env=env,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
logging.info(f"[PID {pid}] {file_name}: Convertido para .wav")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Erro ao converter .mmpz para .mmp: {e}")
|
||||
# Erro no WAV não para o processo de indexação, apenas loga
|
||||
logging.warning(
|
||||
f"[PID {pid}] {file_name}: Falha no render WAV: {e.stderr}"
|
||||
)
|
||||
|
||||
wav_output_path = os.path.join(wav_folder, os.path.splitext(file)[0])
|
||||
wav_convert_cmd = f'lmms -r "{destination_path}" -o "{wav_output_path}" -f wav'
|
||||
if os.path.exists(output_mmp_path):
|
||||
mmp_data = parse_mmp_file(output_mmp_path)
|
||||
else:
|
||||
result["error"] = "Arquivo .mmp não foi gerado após dump."
|
||||
return result
|
||||
|
||||
try:
|
||||
subprocess.run(wav_convert_cmd, shell=True, check=True)
|
||||
print("Convertido para .wav com sucesso!")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Erro ao converter .wav: {e}")
|
||||
|
||||
mmp_data = parse_mmp_file(output_mmp_path)
|
||||
|
||||
elif file.endswith('.mmp'):
|
||||
elif file_name.endswith(".mmp"):
|
||||
mmp_data = parse_mmp_file(file_path)
|
||||
|
||||
# Salvamento Individual
|
||||
if mmp_data:
|
||||
all_data.append(mmp_data)
|
||||
|
||||
json_file_path = os.path.join(metadata_folder, os.path.splitext(file)[0] + ".json")
|
||||
yaml_file_path = os.path.join(data_folder, os.path.splitext(file)[0] + ".yml")
|
||||
json_file_path = os.path.join(
|
||||
METADATA_FOLDER, os.path.splitext(file_name)[0] + ".json"
|
||||
)
|
||||
yaml_file_path = os.path.join(
|
||||
DATA_FOLDER, os.path.splitext(file_name)[0] + ".yml"
|
||||
)
|
||||
|
||||
save_to_yaml(mmp_data, yaml_file_path)
|
||||
save_to_json(mmp_data, json_file_path)
|
||||
|
||||
print(f"Dados salvos: {json_file_path}, {yaml_file_path}")
|
||||
result["success"] = True
|
||||
result["data"] = mmp_data
|
||||
return result
|
||||
else:
|
||||
result["error"] = "Parser retornou dados vazios."
|
||||
return result
|
||||
|
||||
return all_data
|
||||
except Exception as e:
|
||||
error_msg = f"Exceção não tratada: {str(e)}"
|
||||
logging.error(f"[PID {pid}] {file_name}: {error_msg}")
|
||||
result["error"] = error_msg
|
||||
return result
|
||||
|
||||
mmp_folder_path = '/nethome/jotachina/projetos/mmpSearch/mmp'
|
||||
processed_data = process_mmps_in_folder(mmp_folder_path)
|
||||
save_to_json(processed_data, '/nethome/jotachina/projetos/mmpSearch/metadata/all.json')
|
||||
save_to_yaml(processed_data, '/nethome/jotachina/projetos/mmpSearch/_data/all.yml')
|
||||
|
||||
print("Processamento concluído.")
|
||||
def main_parallel():
|
||||
# 1. Configura Logger e Timer
|
||||
logger, log_file_path = setup_logger()
|
||||
start_time = time.time()
|
||||
|
||||
# Informações do PC/S.O
|
||||
log_system_info()
|
||||
|
||||
logging.info("=== Iniciando Pipeline de Indexação Paralela ===")
|
||||
logging.info(f"Log sendo salvo em: {log_file_path}")
|
||||
|
||||
# 2. Criação de Pastas
|
||||
create_folders_if_not_exist([MMPZ_FOLDER, WAV_FOLDER, METADATA_FOLDER, DATA_FOLDER])
|
||||
|
||||
# 3. Listagem
|
||||
if not os.path.exists(MMP_FOLDER):
|
||||
logging.critical(f"Pasta {MMP_FOLDER} não encontrada.")
|
||||
return
|
||||
|
||||
all_files = [
|
||||
f for f in os.listdir(MMP_FOLDER) if f.endswith(".mmp") or f.endswith(".mmpz")
|
||||
]
|
||||
total_files = len(all_files)
|
||||
|
||||
if total_files == 0:
|
||||
logging.warning("Nenhum arquivo .mmp ou .mmpz encontrado para processar.")
|
||||
return
|
||||
|
||||
logging.info(f"Iniciando processamento de {total_files} arquivos.")
|
||||
|
||||
# 4. Pool Paralelo (ETAPA 1: Processamento Pesado)
|
||||
num_cores = multiprocessing.cpu_count()
|
||||
logging.info(f"Utilizando {num_cores} núcleos de CPU.")
|
||||
|
||||
with multiprocessing.Pool(processes=num_cores) as pool:
|
||||
results = pool.map(process_single_file, all_files)
|
||||
|
||||
# 5. Processamento dos Resultados
|
||||
successful_data = []
|
||||
failed_files = []
|
||||
|
||||
for res in results:
|
||||
if res["success"]:
|
||||
successful_data.append(res["data"])
|
||||
else:
|
||||
failed_files.append(res)
|
||||
|
||||
# 6. Salvamento Consolidado
|
||||
if successful_data:
|
||||
save_to_json(successful_data, os.path.join(METADATA_FOLDER, "all.json"))
|
||||
save_to_yaml(successful_data, os.path.join(DATA_FOLDER, "all.yml"))
|
||||
logging.info("Arquivos 'all.json' e 'all.yml' gerados com sucesso.")
|
||||
|
||||
# >>> ETAPA 2: Geração de Manifestos <<<
|
||||
manifest_report = {"generated": [], "failed": []}
|
||||
try:
|
||||
# Capturamos o relatório retornado pela função
|
||||
manifest_report = generate_manifests(BASE_PATH)
|
||||
except Exception as e:
|
||||
logging.error(f"Falha crítica no gerador de manifestos: {e}")
|
||||
|
||||
# 7. Relatório Final Completo
|
||||
end_time = time.time()
|
||||
duration = end_time - start_time
|
||||
|
||||
logging.info("=" * 60)
|
||||
logging.info(
|
||||
f"RELATÓRIO DE EXECUÇÃO - {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}"
|
||||
)
|
||||
logging.info("=" * 60)
|
||||
|
||||
logging.info(f"Tempo Total do Pipeline: {duration:.2f} segundos")
|
||||
|
||||
# Seção 1: Processamento Paralelo (Arquivos MMP)
|
||||
logging.info("-" * 20)
|
||||
logging.info("[1] Indexação Paralela (Arquivos .mmp/.mmpz)")
|
||||
logging.info(f" Total Encontrado: {total_files}")
|
||||
logging.info(f" Sucessos: {len(successful_data)}")
|
||||
logging.info(f" Falhas: {len(failed_files)}")
|
||||
|
||||
if failed_files:
|
||||
for fail in failed_files:
|
||||
logging.error(f" -> FALHA: {fail['file']} | Erro: {fail['error']}")
|
||||
|
||||
# Seção 2: Geração de Manifestos
|
||||
logging.info("-" * 20)
|
||||
logging.info("[2] Geração de Manifestos (Frontend)")
|
||||
|
||||
if manifest_report["generated"]:
|
||||
for item in manifest_report["generated"]:
|
||||
logging.info(f" [OK] {item}")
|
||||
|
||||
if manifest_report["failed"]:
|
||||
for item in manifest_report["failed"]:
|
||||
logging.error(f" [X] {item}")
|
||||
|
||||
if not manifest_report["generated"] and not manifest_report["failed"]:
|
||||
logging.warning(" [!] Nenhum manifesto foi processado.")
|
||||
|
||||
logging.info("=" * 60)
|
||||
logging.info("Pipeline finalizado.")
|
||||
|
||||
# >>> ETAPA 3: Análise de Integridade (NOVO) <<<
|
||||
try:
|
||||
# Caminhos (ajuste conforme sua estrutura real)
|
||||
PROJECTS_DB = os.path.join(METADATA_FOLDER, "all.json")
|
||||
SAMPLES_MANIFEST = os.path.join(METADATA_FOLDER, "samples-manifest.json")
|
||||
REPORT_FILE = os.path.join(METADATA_FOLDER, "dependency_report.json")
|
||||
|
||||
if os.path.exists(PROJECTS_DB) and os.path.exists(SAMPLES_MANIFEST):
|
||||
check_dependencies(PROJECTS_DB, SAMPLES_MANIFEST, REPORT_FILE)
|
||||
else:
|
||||
logging.warning(
|
||||
"Arquivos necessários para verificação de dependência não encontrados."
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
logging.error(f"Erro na verificação de dependências: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main_parallel()
|
||||
@@ -2,18 +2,85 @@
|
||||
|
||||
import os
|
||||
|
||||
# --- Configurações de Caminhos ---
|
||||
BASE_PATH = "/nethome/jotachina/projetos/mmpSearch"
|
||||
MMP_FOLDER = os.path.join(BASE_PATH, "mmp")
|
||||
MMPZ_FOLDER = os.path.join(BASE_PATH, "mmp/mmpz")
|
||||
WAV_FOLDER = os.path.join(BASE_PATH, "mmp/wav")
|
||||
METADATA_FOLDER = os.path.join(BASE_PATH, "metadata")
|
||||
DATA_FOLDER = os.path.join(BASE_PATH, "_data")
|
||||
|
||||
CONFIGS = [
|
||||
{
|
||||
"source_dir": "src/samples",
|
||||
"output_file": "metadata/samples-manifest.json",
|
||||
"scan_type": "tree",
|
||||
},
|
||||
{
|
||||
"source_dir": "mmp",
|
||||
"output_file": "metadata/mmp-manifest.json",
|
||||
"scan_type": "list",
|
||||
"extensions": [".mmp", ".mmpz"],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def scan_directory_tree(path):
|
||||
tree = {}
|
||||
if not os.path.isdir(path):
|
||||
return tree
|
||||
for item in os.listdir(path):
|
||||
full_path = os.path.join(path, item)
|
||||
if os.path.isdir(full_path):
|
||||
tree[item] = scan_directory_tree(full_path)
|
||||
else:
|
||||
tree[item] = {"_isFile": True}
|
||||
return tree
|
||||
|
||||
|
||||
def scan_directory_list(path, allowed_extensions):
|
||||
file_list = []
|
||||
if not os.path.isdir(path):
|
||||
return file_list
|
||||
for item in os.listdir(path):
|
||||
full_path = os.path.join(path, item)
|
||||
if os.path.isfile(full_path) and any(
|
||||
item.lower().endswith(ext) for ext in allowed_extensions
|
||||
):
|
||||
file_list.append(item)
|
||||
return sorted(file_list)
|
||||
|
||||
|
||||
SUPPORTED_PLUGINS = [
|
||||
'audiofileprocessor', 'bitinvader', 'freeboy', 'papu', 'gigplayer', 'kicker', 'lb302', 'malletsstk',
|
||||
'monstro', 'nes', 'opl2', 'organic', 'patman', 'sf2player', 'sfxr', 'sid',
|
||||
'tripleoscillator', 'vibedstrings', 'watsyn', 'zynaddsubfx'
|
||||
"audiofileprocessor",
|
||||
"bitinvader",
|
||||
"freeboy",
|
||||
"papu",
|
||||
"gigplayer",
|
||||
"kicker",
|
||||
"lb302",
|
||||
"malletsstk",
|
||||
"monstro",
|
||||
"nes",
|
||||
"opl2",
|
||||
"organic",
|
||||
"patman",
|
||||
"sf2player",
|
||||
"sfxr",
|
||||
"sid",
|
||||
"tripleoscillator",
|
||||
"vibedstrings",
|
||||
"watsyn",
|
||||
"zynaddsubfx",
|
||||
]
|
||||
|
||||
tags = {}
|
||||
tags['TAG'] = []
|
||||
tags['plugin'] = []
|
||||
tags['sample'] = []
|
||||
tags['bassline'] = []
|
||||
tags['automation'] = []
|
||||
tags["TAG"] = []
|
||||
tags["plugin"] = []
|
||||
tags["sample"] = []
|
||||
tags["bassline"] = []
|
||||
tags["automation"] = []
|
||||
|
||||
|
||||
def create_folders_if_not_exist(folders):
|
||||
for folder in folders:
|
||||
|
||||
Reference in new issue
Block a user