feat: criado repositório jhonny-editor no Gitea

criado repositório jhonny-editor no Gitea
adicionado script admin/deploy.command com commit automático
atualizado admin/DEV-NOTES.md com template limpo

Resumo:
- 48 arquivos alterados
- 26 novos
- 19 modificados
- 3 removidos

 22 files changed, 658 insertions(+), 568 deletions(-)

Arquivos:
  - AGENTS.md
  - admin/DEV-NOTES.md
  - admin/OpenCut.command
  - admin/commit.command
  - admin/deploy.command
  - admin/update.command
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/cep-plugin/styles.css
  - code/engine/ARQUITETURA.md
  - code/engine/arquitetura/README.md
  - code/engine/gerar_relatorio_timeline.py
  - code/engine/integracoes/apple_speech/apple_speech_transcriber.swift
  - code/engine/integracoes/apple_speech/provider_de_transcricao_apple.py
  - code/engine/integracoes/midia/__init__.py
  - code/engine/integracoes/whisper/provider_de_transcricao_local.py
  - code/engine/scanner/__init__.py
  - code/engine/scanner/coordenacao/__init__.py
  - code/engine/scanner/descoberta/__init__.py
  - code/engine/scanner/modelos.py
  - code/engine/scanner/transcricao_da_timeline.py
  - code/src/tools/discovery.ts
  - :memory:.ses
  - admin/Jhonny.command
  - admin/inativos/OpenCut.command
  - admin/inativos/update.command
  - code/docs/glossario-analise-emocional.md
  - code/docs/levantamento-apple-vision-e-apple-intelligence.md
  - code/docs/levantamento-ferramentas-analise-visual-local.md
  - code/engine/arquitetura/biblioteca-inteligente-de-videos.md
  - code/engine/executar_scanner.py
  - code/engine/integracoes/huggingface/
  - code/engine/integracoes/midia/extracao_de_metadados.py
  - code/engine/integracoes/visual/
  - code/engine/requirements-visual.txt
  - code/engine/scanner/configuracao_visual.py
  - code/engine/scanner/descoberta/descoberta_de_arquivos.py
  - code/engine/scanner/metadados.py
  - code/engine/scanner/relatorio_visual.py
  - code/engine/scanner/retakes/
  - code/engine/scanner/visual.py
  - code/engine/testes/test_analise_visual_local.py
  - code/engine/testes/test_arquivos_e_metadados.py
  - code/engine/testes/test_provider_de_transcricao_apple.py
  - code/relatorios/analise-brools/
  - code/relatorios/analise-visual/
  - code/relatorios/audio/arquivos/
  - code/relatorios/transcricao-timeline.md
This commit is contained in:
João Henrique
2026-09-08 16:13:27 -04:00
parent b541f502ba
commit b9bf3b2863
76 changed files with 16147 additions and 322 deletions
+40
View File
@@ -0,0 +1,40 @@
from typing import Protocol
from ..integracoes.midia.extracao_de_metadados import (
ExtracaoDeMetadados as ExtratorDeMetadados,
MetadadosDoArquivo,
)
from .coordenacao import ContextoDeAnalise
class ExtratorDeMetadadosProtocol(Protocol):
def extrair(self, arquivo: str) -> MetadadosDoArquivo: ...
class ExtracaoDeMetadados:
"""Enriquece cada clipe com os metadados técnicos do seu arquivo."""
nome = "extracao_de_metadados"
def __init__(self, extrator: ExtratorDeMetadadosProtocol | None = None) -> None:
self.extrator = extrator or ExtratorDeMetadados()
def executar(self, contexto: ContextoDeAnalise) -> ContextoDeAnalise:
for identificador, arquivo in contexto.arquivos.items():
if arquivo.offline:
continue
try:
metadados = self.extrator.extrair(str(arquivo.caminho))
contexto.metadados_dos_arquivos[identificador] = metadados
for faixa in contexto.timeline.faixas if contexto.timeline else []:
for clipe in faixa.clipes:
if clipe.identificador == identificador:
clipe.metadados["arquivo"] = metadados
break
except Exception as exc:
# Uma mídia inválida não deve descartar os resultados dos demais clipes.
contexto.erros.append(f"metadados_indisponiveis: {arquivo.caminho}: {exc}")
return contexto
__all__ = ["ExtracaoDeMetadados", "MetadadosDoArquivo"]