Selecione o idioma / Select language / Seleccione el idioma / Sélectionnez la langue / Seleziona la lingua / Sprache wählen
🇧🇷 Português (BR) |
🇺🇸 English (US) |
🇪🇸 Español (ES) |
🇫🇷 Français (FR) |
🇮🇹 Italiano (IT) |
🇩🇪 Deutsch (DE)
Observação: Este repositório refere-se à versão v0.1.3.0 do Projeto Linceu Lighthouse. Apoie o projeto e adquira a versão paga através do link: Instalar via Microsoft Store
Clique para expandir o README em português
Projeto: LINCEU LIGHTHOUSE
Versão: v0.1.3.0
Autores: Fernando Nillsson Cidade
Descrição: Visibilidade e Controle sobre Seus Arquivos
Linceu Lighthouse é uma ferramenta de monitoramento que aplica os princípios de Integridade de Arquivos (File Integrity Monitoring - FIM) para fornecer um registro detalhado e transparente de todas as atividades em seus diretórios mais importantes.
Em vez de interpretar a intenção por trás de uma mudança, seu foco é registrar factualmente cada operação—criação, modificação, exclusão e renomeação — dando a você controle e conhecimento total sobre o que acontece.
Principais Casos de Uso
O Linceu Lighthouse oferece a visibilidade necessária para diversos cenários práticos:
- Auditoria de Atividades em Pastas: Ideal para ambientes onde múltiplos usuários ou processos acessam os mesmos diretórios. Saiba exatamente quando um arquivo foi modificado, quem o renomeou ou por que um documento foi excluído.
- Controle de Versões e Projetos: Monitore pastas de projetos para entender o fluxo de trabalho. Veja o histórico de alterações em códigos-fonte, documentos de design ou outros materiais, ajudando a evitar perdas acidentais ou alterações não autorizadas.
- Organização e Limpeza de Arquivos: Identifique arquivos temporários, duplicados ou que não são modificados há muito tempo. Use os relatórios para tomar decisões informadas sobre o que arquivar, mover ou excluir, mantendo seus diretórios enxutos e organizados.
- Investigação de Eventos Específicos: Se um arquivo importante desaparece ou um projeto para de funcionar, o Linceu Lighthouse fornece o histórico cronológico de eventos para ajudar você a rastrear a causa raiz do problema.
Como o Linceu Lighthouse Funciona?
O processo é direto e focado em fornecer dados claros para sua análise:
- Estabelecimento da Linha de Base (Baseline): Ao iniciar o monitoramento de um diretório, o Linceu Lighthouse realiza um escaneamento completo para criar um "snapshot" inicial do estado de todos os arquivos e pastas.
- Monitoramento Contínuo: A partir da linha de base, a ferramenta monitora em tempo real e registra cada evento de criação, modificação, exclusão, movimentação ou renomeação que ocorre no diretório.
- Análise e Relatório: Qualquer desvio da linha de base é imediatamente listado na interface gráfica. A partir daí, você tem total poder para analisar o que aconteceu, utilizando as ferramentas que o software oferece.
Ferramentas de Análise à sua Disposição
Para transformar o grande volume de dados de monitoramento em informação útil, o Linceu Lighthouse oferece:
- Filtros Avançados: Não se perca em meio a milhares de eventos. Isole rapidamente o que importa, filtrando por tipo de operação (ex: ver apenas arquivos excluídos), por data, por extensão (.docx, .jpg), ou por usuário.
- Visualização de Estatísticas: Transforme dados brutos em insights visuais. Com gráficos intuitivos, você pode entender padrões de atividade, como os horários de pico de modificações, os tipos de arquivos mais alterados, e muito mais.
- Exportação Flexível de Dados: Crie um registro permanente e auditável. Exporte os logs de monitoramento para diversos formatos (Excel, CSV, JSON, XML), seja para arquivamento, para compartilhar com sua equipe, ou para importar em outros sistemas.
MANUAL DE UTILIZAÇÃO RÁPIDO:
Como usar:
- Execute o aplicativo para iniciar a interface gráfica.
- Selecione um diretório para monitorar.
- Utilize os botões e menus para iniciar/parar o monitoramento, aplicar filtros, exportar dados e visualizar estatísticas.
MANUAL DE UTILIZAÇÃO DETALHADO:
Requisitos do Sistema: - Sistema Operacional: Windows 10 ou superior.
Instalação: - Instale o arquivo executável do programa, siga as instruções do instalador e execute o programa.
Configuração Inicial: - A interface será exibida com a tabela de monitoramento vazia. - O idioma padrão será selecionado de acordo com a configuração do sistema. - Observe a barra lateral esquerda para acessar as funções principais.
Monitoramento de Diretórios: 1. Selecionar um Diretório: - Clique no botão "Selecionar Diretório" ou selecione "Arquivo → Selecionar Diretório" - O caminho do diretório selecionado será exibido acima da tabela
2. Iniciar/Parar Monitoramento:
- Clique no botão "Iniciar/Parar" ou selecione "Arquivo → Iniciar/Parar"
- Um escaneamento inicial do diretório será realizado com barra de progresso
- Para interromper o monitoramento, clique novamente no mesmo botão
Interface Principal: - Barra de Menu: Acesso a todas as funções do programa - Barra Lateral: Botões de ações rápidas - Rótulo de Diretório: Exibe o diretório monitorado - Rótulo de Resultado: Mostra o status atual da operação - Tabela de Dados: Exibe todos os eventos de monitoramento - Barra de Progresso: Visível durante operações de longa duração
Campos padrão da tabela:
- Tipo de Operação: Adicionado, Excluído, Modificado, Renomeado ou Movido
- Nome: Nome do arquivo
- Diretório Anterior: Local original do arquivo (quando aplicável)
- Diretório Atual: Local atual do arquivo
- Data de Criação: Data em que o arquivo foi criado
- Data de Modificação: Data da última modificação
- Tipo: Tipo/extensão do arquivo
Filtros e Pesquisa: 1. Filtros Rápidos: - No menu "Configurações → Filtros", marque/desmarque tipos de operações (Movido, Renomeado, Adicionado, Excluído, Modificado)
2. Filtros Avançados:
- Acesse "Configurações → Filtros → Filtros Avançados"
- Filtro de Operação: Selecione tipos de operações a visualizar
- Pesquisa: Busca por texto em nome e diretórios
- Filtro por Extensão: Filtre por tipos específicos de arquivo
- Filtro de Data: Defina o período para os eventos
- Use o botão de calendário para seleção de datas
- "Limpar Filtros" reseta todas as configurações
Visualização de Estatísticas: - Acesse pelo botão "Estatísticas" ou "Arquivo → Estatísticas" - Gráficos disponíveis: * Distribuição de Operações: Proporção de cada tipo de operação * Top 10 Tipos de Arquivo: Tipos de arquivo mais comuns * Timeline de Operações: Linha do tempo de eventos * Mapa de Árvore: Visualização de tamanho por tipos * Distribuição por Hora: Horários com mais operações * Análise de Pareto: Frequência e percentual acumulado * Operações por Dia: Operações agrupadas por data - Salvar gráficos: Clique em "Salvar Todos" e selecione destino
Exportação de Dados: - Clique em "Salvar Como" ou "Arquivo → Salvar Como" - Formatos disponíveis: * Excel (.xlsx) * CSV (.csv) * Texto (.txt) * JSON (.json) * XML (.xml) * Banco de Dados (.db) - Para exportações futuras do mesmo conjunto, use "Arquivo → Salvar"
Configuração de Colunas: - Acesse "Configurações → Configurar Colunas" - Marque/desmarque colunas desejadas na tabela: (Tipo de Operação, Nome, Diretório Anterior, Diretório Atual, etc.) - Alterações são aplicadas imediatamente - Restauração padrão: "Configurações → Configurar Colunas → Resetar Colunas"
Alteração de Idioma: - Acesse "Opções → Idioma" e selecione o idioma desejado - O programa será reiniciado com o novo idioma após confirmação
Resolução de Problemas: 1. Monitoramento não inicia: - Verifique permissões de acesso ao diretório - Certifique-se que não há outro programa monitorando o mesmo diretório - Reinicie o aplicativo
2. Eventos não aparecem:
- Verifique se o monitoramento está ativo
- Confira se os filtros não estão ocultando eventos
- Teste modificando um arquivo manualmente
3. Alto consumo de recursos:
- Evite monitorar diretórios de sistema ou com milhares de arquivos
- Monitore subdiretórios específicos em vez de diretórios raiz
4. Erros nas estatísticas:
- Certifique-se que há eventos suficientes para gerar gráficos
- Verifique se todas as bibliotecas estão corretamente instaladas
Linceu Lighthouse é uma aplicação desktop desenvolvida em Python/PySide6 para monitoramento em tempo real de operações em sistemas de arquivos (criação, modificação, exclusão, renomeação, movimentação). Oferece análise estatística avançada, visualização de dados e exportação em múltiplos formatos.
- Framework GUI: PySide6 (Qt6)
- Análise de Dados: pandas, numpy
- Visualização: matplotlib, seaborn, plotly
- Banco de Dados: SQLite3 (com otimizações WAL)
- Multithreading: QThread, concurrent.futures
- Internacionalização: Qt Linguist (6 idiomas)
📂 source/gui/ - Camada de Interface Gráfica
ic_01_InterfaceMonitor.py- Janela principal da aplicaçãoic_02_Inicializador.py- Inicialização de componentes GUIic_03_Configurador.py- Configuração de layouts e widgetsic_04_Atualizador.py- Atualização de interfaceic_05_GerenciadorProgresso.py- Barras de progressoic_06_GerenciadorMensagens.py- Sistema de notificaçõesic_07_ManipuladorTabela.py- Operações em tabelasic_08_Internacionalizador.py- Sistema de traduçõesic_09_GerenciadorDesempenho.py- Gráficos de CPU/RAM/Discoic_10_EstruturaDiretoriosWidget.py- Visualização em árvore
Responsável pelo monitoramento de desempenho do sistema em tempo real.
Gerencia a visualização em árvore e operações de arquivos/pastas.
📂 source/services/ - Camada de Lógica de Negócio
ob_01_Observador.py- Monitoramento via ReadDirectoryChangesWob_02_BaseEvento.py- Classe base para eventosob_03_DiretorioScanner.py- Escaneamento recursivo inicialob_04_EventoAdicionado.py- Processamento de criaçõesob_05_EventoExcluido.py- Processamento de exclusõesob_06_EventoModificado.py- Detecção de modificaçõesob_07_EventoRenomeado.py- Detecção de renomeaçõesob_08_EventoMovido.py- Detecção de movimentaçõesob_09_GerenciadorColunas.py- Configuração de colunas visíveisob_10_GerenciadorTabela.py- Operações em tabelas de dados
- GerenciamentoBaseEvento/ (20 módulos) - Gerenciamento de eventos e banco de dados
- GerenciamentoDiretorioScanner/ (9 módulos) - Escaneamento de diretórios
- GerenciamentoEventoModificado/ (7 módulos) - Processamento de modificações
- GerenciamentoEventoMovido/ (9 módulos) - Detecção de movimentações
- GerenciamentoMetadados/ (47 módulos) - Extração especializada de metadados
- GerenciamentoObservador/ (13 módulos) - Controle do observador
- GerenciamentoTabela/ (47 módulos) - Operações avançadas de tabela
📂 source/ui/ - Componentes de Interface Avançados
ui_01_GerenciadorBotoes.py- Botões de açãoui_02_GerenciadorBotoesUI.py- Factory de botõesui_03_GerenciadorMenusUI.py- Barra de menusui_04_GerenciadorEventosUI.py- Handlers de eventosui_05_GerenciadorProgressoUI.py- Feedback de progressoui_06_GerenciadorEstatisticasUI.py- Janela de estatísticasui_07_GerenciadorDados.py- Salvar/Carregarui_11_DialogoCores.py- Seletor de cores customizadoui_12_LocalizadorQt.py- Sistema de traduçõesui_13_TradutorMetadadosQt.py- Tradução de metadados
- GerenciamentoBotoes/ (6 módulos)
- GerenciamentoDialogoCores/ (8 módulos)
- GerenciamentoEstatisticasUI/ (31 módulos)
- GerenciamentoEventosUI/ (11 módulos)
- GerenciamentoLocalizadorQt/ (14 módulos)
- GerenciamentoMenusUI/ (23 módulos)
- GerenciamentoTradutorMetadadosQt/ (9 módulos)
📂 source/data/ - Geração de Estatísticas e Gráficos
- Pizza - Distribuição de operações
- Barras - Top 30 tipos de arquivo
- Timeline - Linha do tempo
- Treemap - Mapa de árvore
- Histograma - Distribuição por hora
- Pareto - Análise 80/20
- Linha - Evolução temporal
- Boxplot - Distribuição de tamanhos
- Radar - Eventos por hora/dia
- Heatmap - Mapa de calor temporal
- Scatter - Análise tamanho vs tempo
- Sankey (3 variações) - Fluxo de operações
- Dotplot - Distribuição de tamanhos
- Árvore - Estrutura de diretórios
📂 source/tools/ - Ferramentas e Utilitários de UI
fil_01_Filtros.py- Janela de filtros avançadosfil_02_AdministradorCalendario.py- Seletor de datasfil_03_AdministradorFiltros.py- Lógica de filtragem
- GerenciamentoAdministradorFiltros/ (10 módulos)
- GerenciamentoFiltros/ (10 módulos)
📂 source/utils/ - Utilitários Transversais
- LogManager.py - Sistema centralizado de logs com rotação automática
- IconUtils.py - Gerenciamento de ícones e recursos visuais
- CaminhoPersistenteUtils.py - Paths de configuração multiplataforma
- ApplicationPathUtils.py - Paths da aplicação e recursos
📂 source/locale/ - Internacionalização
linceu_pt_BR.ts- Português (Brasil) - 600+ stringslinceu_en_US.ts- English (United States)linceu_es_ES.ts- Español (España)linceu_fr_FR.ts- Français (France)linceu_it_IT.ts- Italiano (Italia)linceu_de_DE.ts- Deutsch (Deutschland)
compile_translations.py- Script de compilação e validação de traduções
- [S] Single Responsibility: Cada módulo tem uma responsabilidade única
- [O] Open/Closed: Extensível via herança (BaseGerador, BaseEvento)
- [L] Liskov Substitution: Todos os geradores de gráfico são intercambiáveis
- [I] Interface Segregation: Interfaces específicas por tipo de evento
- [D] Dependency Inversion: Injeção de dependências (loc, interface, db_path)
- Observer Pattern: Monitoramento de arquivos
- Factory Pattern: Criação de botões e componentes
- Strategy Pattern: Diferentes estratégias de exportação
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador define esqueleto
- Facade Pattern: GerenciadorEstatisticasUI simplifica acesso
- QThread para operações longas (escaneamento, gráficos)
- ThreadPoolExecutor para processamento paralelo
- DatabaseWriter com thread dedicada
- Debouncing inteligente para eventos
- Cache com invalidação seletiva
- Batch processing para inserções
- SQLite com modo WAL (Write-Ahead Logging)
- Índices em colunas frequentes
- Transações em lote
- PRAGMA optimizations
- Thread dedicada para I/O
1. INICIALIZAÇÃO
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. SELEÇÃO DE DIRETÓRIO
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. INÍCIO DO MONITORAMENTO
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. PROCESSAMENTO DE EVENTOS
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. ATUALIZAÇÃO DA INTERFACE
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. GERAÇÃO DE ESTATÍSTICAS
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. EXPORTAÇÃO DE DADOS
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. MUDANÇA DE IDIOMA
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Framework Qt6
pandas>=2.0.0 # Análise de dados
matplotlib>=3.7.0 # Visualização de gráficos
seaborn>=0.12.0 # Gráficos estatísticos
plotly==5.22.0 # Gráficos interativos
Pillow>=10.0.0 # Processamento de imagens
tinytag>=1.10.0 # Metadados de áudio
pymediainfo>=6.0.0 # Metadados de vídeo
PyPDF2>=3.0.0 # Metadados de PDF
openpyxl>=3.1.0 # Leitura/escrita Excel
python-docx>=0.8.11 # Metadados de DOCX
chardet>=5.1.0 # Detecção de encoding
squarify>=0.4.3 # Gráficos treemap
psutil>=5.9.0 # Monitoramento de sistema
pywin32>=305 # API Windows
- Sistema Operacional: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4GB mínimo (8GB recomendado)
- Disco: 100MB espaço disponível
Monitoramento em Tempo Real
- ✓ Detecção de criação de arquivos/pastas
- ✓ Detecção de exclusão de arquivos/pastas
- ✓ Detecção de modificação de conteúdo
- ✓ Detecção de renomeação
- ✓ Detecção de movimentação entre pastas
- ✓ Distinção entre operações de arquivo vs diretório
- ✓ Debouncing inteligente para arquivos grandes
- ✓ Suporte a operações massivas (batch)
Extração de Metadados (47 módulos especializados)
- ✓ Código-fonte: linhas, classes, funções, imports
- ✓ Imagens: dimensões, EXIF, formato, DPI
- ✓ Áudio: duração, bitrate, artista, álbum
- ✓ Vídeo: codec, resolução, taxa de frames, duração
- ✓ Documentos: páginas, palavras, autor, data criação
- ✓ Planilhas: número de sheets, linhas, colunas
- ✓ Apresentações: número de slides
- ✓ Compactados: arquivos contidos, tamanho descompactado
- ✓ Bancos de dados: tabelas, registros
- ✓ Executáveis: versão, assinatura digital, arquitetura
- ✓ Logs: primeira/última entrada, número de linhas
- ✓ Configurações: formato detectado
Visualização de Dados (18 tipos de gráficos)
- ✓ Pizza: Distribuição de operações
- ✓ Barras: Top tipos de arquivo
- ✓ Timeline: Linha do tempo de eventos
- ✓ Treemap: Hierarquia de tipos
- ✓ Histograma: Distribuição por hora
- ✓ Pareto: Análise 80/20
- ✓ Linha: Evolução temporal diária
- ✓ Boxplot: Distribuição de tamanhos
- ✓ Radar: Eventos por hora/dia/tipo
- ✓ Heatmap: Mapa de calor temporal
- ✓ Scatter: Tamanho vs tempo
- ✓ Sankey: Fluxo de operações/tipos/caminhos
- ✓ Dotplot: Distribuição de tamanhos
- ✓ Árvore: Estrutura de diretórios
Filtros Avançados
- ✓ Por tipo de operação
- ✓ Por tipo de arquivo (extensão)
- ✓ Por intervalo de datas
- ✓ Por nome/texto contido
- ✓ Combinação de múltiplos filtros
- ✓ Taxa de filtragem em tempo real
- ✓ Sincronização com menu principal
Exportação de Dados
- ✓ Excel (.xlsx) - com formatação
- ✓ CSV (.csv) - delimitado por vírgula
- ✓ JSON (.json) - estruturado
- ✓ XML (.xml) - hierárquico
- ✓ SQLite (.db) - banco completo
- ✓ Texto (.txt) - simples
- ✓ Opções: apenas visíveis, filtros ativos, seleção
Internacionalização
- ✓ 6 idiomas suportados
- ✓ Tradução completa de interface
- ✓ Tradução de metadados
- ✓ Tradução de tipos de operação
- ✓ Mudança em tempo real (sem restart)
- ✓ Persistência de preferência
- ✓ Fallback para inglês
- ✓ Nomes descritivos e autoexplicativos
- ✓ Funções pequenas e focadas (< 50 linhas)
- ✓ Evitar números mágicos (usar constantes)
- ✓ Documentação no código (docstrings)
- ✓ Formatação consistente
- ✓ Evitar duplicação de código (DRY)
- ✓ Lazy loading de metadados
- ✓ Cache de resultados frequentes
- ✓ Processamento assíncrono
- ✓ Batch processing
- ✓ Índices otimizados no banco
- ✓ Uso eficiente de memória
- ✓ Modularização extrema (200+ módulos)
- ✓ Separação de responsabilidades
- ✓ Baixo acoplamento
- ✓ Alta coesão
- ✓ Padrões de nomenclatura consistentes
- Novo tipo de gráfico: Herdar de
data/GeradorEstatisticas/gst_01_base_gerador.py - Novo tipo de evento: Herdar de
services/ob_02_BaseEvento.py - Nova coluna: Adicionar getter em
services/ob_09_GerenciadorColunas.py - Novo idioma: Criar
linceu_XX.tsemsource/locale/ - Novo filtro: Adicionar em
tools/GerenciamentoAdministradorFiltros/
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Banco de dados principal (SQLite)language_config.json- Preferência de idiomacolunas_coloridas.json- Configuração de corescores_operacoes.json- Cores por tipo de operaçãoconfig.json- Configurações gerais
Sistema de logs com rotação automática em:
%APPDATA%/Linceu_Lighthouse/logs/
Autores: Fernando Nillsson Cidade
Versão: v0.1.3.0
Licença: GNU Affero General Public License v3.0 (AGPL-3.0)
Para mais informações, consulte a documentação específica de cada módulo no código-fonte.
Note: This repository refers to the v0.1.3.0 version of the Linceu Lighthouse Project. Support the project and purchase the paid version through the link: Install via Microsoft Store
Click to expand the README in English
Project: LINCEU LIGHTHOUSE
Version: v0.1.3.0
Authors: Fernando Nillsson Cidade
Description: Visibility and Control Over Your Files
Linceu Lighthouse is a monitoring tool that applies the principles of File Integrity Monitoring (FIM) to provide a detailed and transparent log of all activities in your most important directories.
Instead of interpreting the intent behind a change, its focus is to factually record every operation—creation, modification, deletion, and renaming—giving you total control and knowledge of what happens.
Main Use Cases
Linceu Lighthouse provides the necessary visibility for various practical scenarios:
- Auditing Folder Activities: Ideal for environments where multiple users or processes access the same directories. Know exactly when a file was modified, who renamed it, or why a document was deleted.
- Version and Project Control: Monitor project folders to understand the workflow. View the history of changes in source code, design documents, or other materials, helping to prevent accidental losses or unauthorized changes.
- File Organization and Cleanup: Identify temporary, duplicate, or long-unmodified files. Use the reports to make informed decisions about what to archive, move, or delete, keeping your directories lean and organized.
- Investigating Specific Events: If an important file disappears or a project stops working, Linceu Lighthouse provides a chronological history of events to help you trace the root cause of the problem.
How Linceu Lighthouse Works
The process is straightforward and focused on providing clear data for your analysis:
- Establishing the Baseline: When starting to monitor a directory, Linceu Lighthouse performs a full scan to create an initial "snapshot," or baseline, of the state of all files and folders.
- Continuous Monitoring: From the baseline, the tool monitors in real-time and records every creation, modification, deletion, move, or renaming event that occurs in the directory.
- Analysis and Reporting: Any deviation from the baseline is immediately listed in the graphical interface. From there, you have full power to analyze what happened, using the tools the software offers.
Analysis Tools at Your Disposal
To transform the large volume of monitoring data into useful information, Linceu Lighthouse offers:
- Advanced Filters: Don't get lost among thousands of events. Quickly isolate what matters by filtering by operation type (e.g., view only deleted files), by date, by extension (.docx, .jpg), or by user.
- Statistics Visualization: Turn raw data into visual insights. With intuitive charts, you can understand activity patterns, such as peak modification times, the most frequently changed file types, and more.
- Flexible Data Export: Create a permanent and auditable record. Export monitoring logs to various formats (Excel, CSV, JSON, XML), whether for archiving, sharing with your team, or importing into other systems.
QUICK USE MANUAL:
How to use:
- Run the application to start the graphical interface.
- Select a directory to monitor.
- Use the buttons and menus to start/stop monitoring, apply filters, export data, and view statistics.
DETAILED USER MANUAL:
System Requirements: - Operating System: Windows 10 or higher.
Installation: - Install the program's executable file, follow the installer's instructions, and run the program.
Initial Setup: - The interface will be displayed with an empty monitoring table. - The default language will be selected according to the system settings. - Note the left sidebar to access the main functions.
Directory Monitoring: 1. Select a Directory: - Click the "Select Directory" button or select "File → Select Directory" - The path of the selected directory will be displayed above the table
2. Start/Stop Monitoring:
- Click the "Start/Stop" button or select "File → Start/Stop"
- An initial scan of the directory will be performed with a progress bar
- To stop monitoring, click the same button again
Main Interface: - Menu Bar: Access to all program functions - Sidebar: Quick action buttons - Directory Label: Displays the monitored directory - Result Label: Shows the current status of the operation - Data Table: Displays all monitoring events - Progress Bar: Visible during long-running operations
Default table fields:
- Operation Type: Added, Deleted, Modified, Renamed, or Moved
- Name: File name
- Previous Directory: Original location of the file (when applicable)
- Current Directory: Current location of the file
- Creation Date: Date the file was created
- Modification Date: Date of the last modification
- Type: File type/extension
Filters and Search: 1. Quick Filters: - In the "Settings → Filters" menu, check/uncheck operation types (Moved, Renamed, Added, Deleted, Modified)
2. Advanced Filters:
- Access "Settings → Filters → Advanced Filters"
- Operation Filter: Select operation types to view
- Search: Search for text in names and directories
- Extension Filter: Filter by specific file types
- Date Filter: Define the period for events
- Use the calendar button for date selection
- "Clear Filters" resets all settings
Statistics Visualization: - Access via the "Statistics" button or "File → Statistics" - Available charts: * Operation Distribution: Proportion of each operation type * Top 10 File Types: Most common file types * Operation Timeline: Timeline of events * Tree Map: Size visualization by types * Distribution by Hour: Times with the most operations * Pareto Analysis: Frequency and cumulative percentage * Operations by Day: Operations grouped by date - Save charts: Click "Save All" and select a destination
Data Export: - Click "Save As" or "File → Save As" - Available formats: * Excel (.xlsx) * CSV (.csv) * Text (.txt) * JSON (.json) * XML (.xml) * Database (.db) - For future exports of the same set, use "File → Save"
Column Configuration: - Access "Settings → Configure Columns" - Check/uncheck desired columns in the table: (Operation Type, Name, Previous Directory, Current Directory, etc.) - Changes are applied immediately - Default restoration: "Settings → Configure Columns → Reset Columns"
Language Change: - Access "Options → Language" and select the desired language - The program will restart with the new language after confirmation
Troubleshooting: 1. Monitoring does not start: - Check directory access permissions - Make sure no other program is monitoring the same directory - Restart the application
2. Events do not appear:
- Check if monitoring is active
- Check if filters are not hiding events
- Test by manually modifying a file
3. High resource consumption:
- Avoid monitoring system directories or those with thousands of files
- Monitor specific subdirectories instead of root directories
4. Errors in statistics:
- Ensure there are enough events to generate charts
- Check if all libraries are correctly installed
Linceu Lighthouse is a desktop application developed in Python/PySide6 for real-time monitoring of file system operations (creation, modification, deletion, renaming, moving). It offers advanced statistical analysis, data visualization, and export in multiple formats.
- GUI Framework: PySide6 (Qt6)
- Data Analysis: pandas, numpy
- Visualization: matplotlib, seaborn, plotly
- Database: SQLite3 (with WAL optimizations)
- Multithreading: QThread, concurrent.futures
- Internationalization: Qt Linguist (6 languages)
📂 source/gui/ - Graphical Interface Layer
ic_01_InterfaceMonitor.py- Main application windowic_02_Inicializador.py- GUI component initializationic_03_Configurador.py- Layout and widget configurationic_04_Atualizador.py- Interface updateic_05_GerenciadorProgresso.py- Progress barsic_06_GerenciadorMensagens.py- Notification systemic_07_ManipuladorTabela.py- Table operationsic_08_Internacionalizador.py- Translation systemic_09_GerenciadorDesempenho.py- CPU/RAM/Disk chartsic_10_EstruturaDiretoriosWidget.py- Tree view
Responsible for real-time system performance monitoring.
Manages tree view and file/folder operations.
📂 source/services/ - Business Logic Layer
ob_01_Observador.py- Monitoring via ReadDirectoryChangesWob_02_BaseEvento.py- Base class for eventsob_03_DiretorioScanner.py- Initial recursive scanningob_04_EventoAdicionado.py- Creation processingob_05_EventoExcluido.py- Deletion processingob_06_EventoModificado.py- Modification detectionob_07_EventoRenomeado.py- Renaming detectionob_08_EventoMovido.py- Move detectionob_09_GerenciadorColunas.py- Visible column configurationob_10_GerenciadorTabela.py- Data table operations
- GerenciamentoBaseEvento/ (20 modules) - Event and database management
- GerenciamentoDiretorioScanner/ (9 modules) - Directory scanning
- GerenciamentoEventoModificado/ (7 modules) - Modification processing
- GerenciamentoEventoMovido/ (9 modules) - Move detection
- GerenciamentoMetadados/ (47 modules) - Specialized metadata extraction
- GerenciamentoObservador/ (13 modules) - Observer control
- GerenciamentoTabela/ (47 modules) - Advanced table operations
📂 source/ui/ - Advanced Interface Components
ui_01_GerenciadorBotoes.py- Action buttonsui_02_GerenciadorBotoesUI.py- Button factoryui_03_GerenciadorMenusUI.py- Menu barui_04_GerenciadorEventosUI.py- Event handlersui_05_GerenciadorProgressoUI.py- Progress feedbackui_06_GerenciadorEstatisticasUI.py- Statistics windowui_07_GerenciadorDados.py- Save/Loadui_11_DialogoCores.py- Custom color pickerui_12_LocalizadorQt.py- Translation systemui_13_TradutorMetadadosQt.py- Metadata translation
- GerenciamentoBotoes/ (6 modules)
- GerenciamentoDialogoCores/ (8 modules)
- GerenciamentoEstatisticasUI/ (31 modules)
- GerenciamentoEventosUI/ (11 modules)
- GerenciamentoLocalizadorQt/ (14 modules)
- GerenciamentoMenusUI/ (23 modules)
- GerenciamentoTradutorMetadadosQt/ (9 modules)
📂 source/data/ - Statistics and Chart Generation
- Pie - Operation distribution
- Bar - Top 30 file types
- Timeline - Time line
- Treemap - Tree map
- Histogram - Distribution by hour
- Pareto - 80/20 analysis
- Line - Temporal evolution
- Boxplot - Size distribution
- Radar - Events by hour/day
- Heatmap - Temporal heat map
- Scatter - Size vs time analysis
- Sankey (3 variations) - Operation flow
- Dotplot - Size distribution
- Tree - Directory structure
📂 source/tools/ - UI Tools and Utilities
fil_01_Filtros.py- Advanced filters windowfil_02_AdministradorCalendario.py- Date pickerfil_03_AdministradorFiltros.py- Filtering logic
- GerenciamentoAdministradorFiltros/ (10 modules)
- GerenciamentoFiltros/ (10 modules)
📂 source/utils/ - Cross-Cutting Utilities
- LogManager.py - Centralized logging system with automatic rotation
- IconUtils.py - Icon and visual resource management
- CaminhoPersistenteUtils.py - Cross-platform configuration paths
- ApplicationPathUtils.py - Application and resource paths
📂 source/locale/ - Internationalization
linceu_pt_BR.ts- Portuguese (Brazil) - 600+ stringslinceu_en_US.ts- English (United States)linceu_es_ES.ts- Spanish (Spain)linceu_fr_FR.ts- French (France)linceu_it_IT.ts- Italian (Italy)linceu_de_DE.ts- German (Germany)
compile_translations.py- Translation compilation and validation script
- [S] Single Responsibility: Each module has a single responsibility
- [O] Open/Closed: Extensible via inheritance (BaseGerador, BaseEvento)
- [L] Liskov Substitution: All chart generators are interchangeable
- [I] Interface Segregation: Specific interfaces per event type
- [D] Dependency Inversion: Dependency injection (loc, interface, db_path)
- Observer Pattern: File monitoring
- Factory Pattern: Button and component creation
- Strategy Pattern: Different export strategies
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador defines skeleton
- Facade Pattern: GerenciadorEstatisticasUI simplifies access
- QThread for long operations (scanning, charts)
- ThreadPoolExecutor for parallel processing
- DatabaseWriter with dedicated thread
- Smart debouncing for events
- Cache with selective invalidation
- Batch processing for insertions
- SQLite with WAL mode (Write-Ahead Logging)
- Indexes on frequent columns
- Batch transactions
- PRAGMA optimizations
- Dedicated thread for I/O
1. INITIALIZATION
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. DIRECTORY SELECTION
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. START MONITORING
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. EVENT PROCESSING
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. INTERFACE UPDATE
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. STATISTICS GENERATION
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. DATA EXPORT
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. LANGUAGE CHANGE
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Qt6 Framework
pandas>=2.0.0 # Data analysis
matplotlib>=3.7.0 # Chart visualization
seaborn>=0.12.0 # Statistical charts
plotly==5.22.0 # Interactive charts
Pillow>=10.0.0 # Image processing
tinytag>=1.10.0 # Audio metadata
pymediainfo>=6.0.0 # Video metadata
PyPDF2>=3.0.0 # PDF metadata
openpyxl>=3.1.0 # Excel read/write
python-docx>=0.8.11 # DOCX metadata
chardet>=5.1.0 # Encoding detection
squarify>=0.4.3 # Treemap charts
psutil>=5.9.0 # System monitoring
pywin32>=305 # Windows API
- Operating System: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4GB minimum (8GB recommended)
- Disk: 100MB available space
Real-Time Monitoring
- ✓ File/folder creation detection
- ✓ File/folder deletion detection
- ✓ Content modification detection
- ✓ Renaming detection
- ✓ Move detection between folders
- ✓ Distinction between file vs directory operations
- ✓ Smart debouncing for large files
- ✓ Batch operation support
Metadata Extraction (47 specialized modules)
- ✓ Source code: lines, classes, functions, imports
- ✓ Images: dimensions, EXIF, format, DPI
- ✓ Audio: duration, bitrate, artist, album
- ✓ Video: codec, resolution, frame rate, duration
- ✓ Documents: pages, words, author, creation date
- ✓ Spreadsheets: number of sheets, rows, columns
- ✓ Presentations: number of slides
- ✓ Compressed: contained files, uncompressed size
- ✓ Databases: tables, records
- ✓ Executables: version, digital signature, architecture
- ✓ Logs: first/last entry, number of lines
- ✓ Configuration: detected format
Data Visualization (18 chart types)
- ✓ Pie: Operation distribution
- ✓ Bar: Top file types
- ✓ Timeline: Event timeline
- ✓ Treemap: Type hierarchy
- ✓ Histogram: Distribution by hour
- ✓ Pareto: 80/20 analysis
- ✓ Line: Daily temporal evolution
- ✓ Boxplot: Size distribution
- ✓ Radar: Events by hour/day/type
- ✓ Heatmap: Temporal heat map
- ✓ Scatter: Size vs time
- ✓ Sankey: Operation/type/path flow
- ✓ Dotplot: Size distribution
- ✓ Tree: Directory structure
Advanced Filters
- ✓ By operation type
- ✓ By file type (extension)
- ✓ By date range
- ✓ By name/contained text
- ✓ Multiple filter combination
- ✓ Real-time filtering rate
- ✓ Synchronization with main menu
Data Export
- ✓ Excel (.xlsx) - with formatting
- ✓ CSV (.csv) - comma delimited
- ✓ JSON (.json) - structured
- ✓ XML (.xml) - hierarchical
- ✓ SQLite (.db) - complete database
- ✓ Text (.txt) - simple
- ✓ Options: visible only, active filters, selection
Internationalization
- ✓ 6 supported languages
- ✓ Complete interface translation
- ✓ Metadata translation
- ✓ Operation type translation
- ✓ Real-time change (no restart)
- ✓ Preference persistence
- ✓ English fallback
- ✓ Descriptive and self-explanatory names
- ✓ Small and focused functions (< 50 lines)
- ✓ Avoid magic numbers (use constants)
- ✓ Code documentation (docstrings)
- ✓ Consistent formatting
- ✓ Avoid code duplication (DRY)
- ✓ Lazy loading of metadata
- ✓ Frequent result caching
- ✓ Asynchronous processing
- ✓ Batch processing
- ✓ Optimized database indexes
- ✓ Efficient memory usage
- ✓ Extreme modularization (200+ modules)
- ✓ Separation of concerns
- ✓ Low coupling
- ✓ High cohesion
- ✓ Consistent naming patterns
- New chart type: Inherit from
data/GeradorEstatisticas/gst_01_base_gerador.py - New event type: Inherit from
services/ob_02_BaseEvento.py - New column: Add getter in
services/ob_09_GerenciadorColunas.py - New language: Create
linceu_XX.tsinsource/locale/ - New filter: Add in
tools/GerenciamentoAdministradorFiltros/
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Main database (SQLite)language_config.json- Language preferencecolunas_coloridas.json- Color configurationcores_operacoes.json- Colors by operation typeconfig.json- General settings
Logging system with automatic rotation at:
%APPDATA%/Linceu_Lighthouse/logs/
Authors: Fernando Nillsson Cidade
Version: v0.1.3.0
License: GNU Affero General Public License v3.0 (AGPL-3.0)
For more information, consult the specific documentation of each module in the source code.
Nota: Este repositorio se refere à versão v0.1.3.0 do Projeto Linceu Lighthouse. Apoya el proyecto y adquiere la versión de pago a través del enlace: Instalar vía Microsoft Store
Haz clic para expandir el README en español
Proyecto: LINCEU LIGHTHOUSE
Versión: v0.1.3.0
Autores: Fernando Nillsson Cidade
Descripción: Visibilidad y Control sobre Tus Archivos
Linceu Lighthouse es una herramienta de monitoreo que aplica los principios de Monitoreo de Integridad de Archivos (File Integrity Monitoring - FIM) para proporcionar un registro detallado y transparente de todas las actividades en tus directorios más importantes.
En lugar de interpretar la intención detrás de un cambio, su enfoque é registrar de maneira fáctica cada operação—criação, modificação, exclusão e renomeação—dándote controle e conhecimento total sobre o que acontece.
Principais Casos de Uso
Linceu Lighthouse oferece a visibilidade necessária para diversos cenários práticos:
- Auditoría de Actividades em Carpetas: Ideal para entornos onde múltiplos usuários ou processos acessan os mesmos diretórios. Conoce exactamente cuándo se modificó un archivo, quién lo renombró o por qué se eliminó un documento.
- Control de Versiones y Proyectos: Monitorea carpetas de proyectos para entender el flujo de trabajo. Visualiza el historial de cambios en códigos fuente, documentos de diseño u otros materiales, ayudando a evitar pérdidas acidentales o cambios no autorizados.
- Organización y Limpieza de Archivos: Identifica archivos temporales, duplicados o que no se han modificado durante mucho tiempo. Utiliza los informes para tomar decisiones informadas sobre qué archivar, mover o eliminar, manteniendo tus directorios organizados.
- Investigación de Eventos Específicos: Si un archivo importante desaparece o un proyecto deja de funcionar, Linceu Lighthouse proporciona el historial cronológico de eventos para ayudarte a rastrear la causa raíz del problema.
¿Cómo Funciona Linceu Lighthouse?
El proceso es directo y se centra en proporcionar dados claros para tu análisis:
- Establecimiento de la Línea Base (Baseline): Al iniciar el monitoreo de un directorio, Linceu Lighthouse realiza un escaneamento completo para crear una "instantánea" inicial del estado de todos los archivos y carpetas.
- Monitoreo Continuo: A partir de la línea base, la herramienta monitorea en tiempo real y registra cada evento de creación, modificación, eliminación, movimiento o renombrado que ocurre en el directorio.
- Análisis e Informe: Cualquier desviación de la línea base se lista inmediatamente en la interfaz gráfica. Desde allí, tienes total poder para analizar lo que sucedió, utilizando las herramientas que ofrece el software.
Herramientas de Análisis a Tu Disposición
Para transformar el gran volumen de datos de monitoreo en información útil, Linceu Lighthouse ofrece:
- Filtros Avanzados: No te pierdas entre miles de eventos. Aísla rápidamente lo que importa, filtrando por tipo de operação (ej: ver solo archivos eliminados), por fecha, por extensión (.docx, .jpg), o por usuario.
- Visualización de Estadísticas: Transforma datos brutos en conocimientos visuales. Com gráficos intuitivos, você pode entender padrões de atividade, como os horários de pico de modificações, os tipos de arquivos mais alterados, e muito mais.
- Exportación Flexible de Datos: Crea un registro permanente y auditável. Exporte os logs de monitoramento para diversos formatos (Excel, CSV, JSON, XML), já seja para arquivamento, para compartilhar com sua equipe, ou para importar em outros sistemas.
MANUAL DE USO RÁPIDO:
Cómo usar:
- Ejecuta la aplicación para iniciar la interfaz gráfica.
- Selecciona un directorio para monitorear.
- Utiliza los botones y menús para iniciar/detener el monitoreo, aplicar filtros, exportar datos y visualizar estadísticas.
MANUAL DE USO DETALLADO:
Requisitos del Sistema: - Sistema Operativo: Windows 10 o superior.
Instalación: - Instala el archivo ejecutable del programa, sigue las instrucciones del instalador y ejecuta el programa.
Configuración Inicial: - La interfaz se mostrará con la tabla de monitoreo vacía. - El idioma predeterminado se seleccionará según la configuración del sistema. - Observa la barra lateral izquierda para acceder a las funciones principales.
Monitoreo de Directorios: 1. Seleccionar un Directorio: - Haz clic en el botón "Seleccionar Directorio" o selecciona "Archivo → Seleccionar Directorio" - La ruta del directorio seleccionado se mostrará encima de la tabla
2. Iniciar/Detener Monitoreo:
- Haz clic en el botón "Iniciar/Detener" o selecciona "Archivo → Iniciar/Detener"
- Se realizará un escaneado inicial del directorio con barra de progresso
- Para interrumpir el monitoreo, haz clic nuevamente en el mismo botón
Interfaz Principal: - Barra de Menú: Acceso a todas as funções do programa - Barra Lateral: Botões de ações rápidas - Etiqueta de Directorio: Muestra el directorio monitorizado - Etiqueta de Resultado: Muestra el estado atual da operação - Tabla de Datos: Muestra todos los eventos de monitoreo - Barra de Progreso: Visível durante operações de longa duração
Campos predeterminados de la tabla:
- Tipo de Operación: Adicionado, Excluído, Modificado, Renomeado o Movido
- Nombre: Nombre del archivo
- Directorio Anterior: Ubicación original del archivo (cuando aplica)
- Directorio Actual: Ubicación actual del archivo
- Fecha de Creación: Fecha en que se creó el archivo
- Fecha de Modificación: Fecha de la última modificación
- Tipo: Tipo/extensión del archivo
Filtros y Búsqueda: 1. Filtros Rápidos: - En el menú "Configuración → Filtros", marca/desmarca tipos de operações (Movido, Renomeado, Adicionado, Excluído, Modificado)
2. Filtros Avanzados:
- Accede a "Configuración → Filtros → Filtros Avanzados"
- Filtro de Operación: Selecciona tipos de operações a visualizar
- Búsqueda: Busca por texto em nome e diretórios
- Filtro por Extensión: Filtra por tipos específicos de arquivo
- Filtro de Fecha: Define el período para los eventos
- Usa el botón de calendario para selección de fechas
- "Limpiar Filtros" restablece todas las configuraciones
Visualización de Estadísticas: - Accede mediante el botón "Estadísticas" o "Archivo → Estadísticas" - Gráficos disponibles: * Distribución de Operaciones: Proporción de cada tipo de operación * Top 10 Tipos de Archivo: Tipos de archivo más comunes * Línea de Tiempo de Operaciones: Línea temporal de eventos * Mapa de Árbol: Visualización de tamaño por tipos * Distribución por Hora: Horarios con más operaciones * Análisis de Pareto: Frecuencia y porcentaje acumulado * Operaciones por Día: Operaciones agrupadas por fecha - Guardar gráficos: Haz clic en "Guardar Todos" y selecciona destino
Exportación de Datos: - Haz clic en "Guardar Como" o "Archivo → Guardar Como" - Formatos disponibles: * Excel (.xlsx) * CSV (.csv) * Texto (.txt) * JSON (.json) * XML (.xml) * Base de Datos (.db) - Para exportaciones futuras del mismo conjunto, usa "Archivo → Guardar"
Configuración de Columnas: - Accede a "Configuración → Configurar Columnas" - Marca/desmarca columnas deseadas en la tabla: (Tipo de Operación, Nombre, Directorio Anterior, Directorio Actual, etc.) - Los cambios se aplican inmediatamente - Restauración predeterminada: "Configuración → Configurar Columnas → Restablecer Columnas"
Cambio de Idioma: - Accede a "Opciones → Idioma" y selecciona el idioma deseado - El programa se reiniciará con el nuevo idioma después de la confirmación
Resolución de Problemas: 1. El monitoreo no inicia: - Verifica los permisos de acceso al directorio - Asegúrate de que no hay otro programa monitoreando el mismo directorio - Reinicia la aplicación
2. Los eventos no aparecen:
- Verifica si el monitoreo está activo
- Comprueba si los filtros no están ocultando eventos
- Prueba modificando un archivo manualmente
3. Alto consumo de recursos:
- Evita monitorear directorios del sistema o con miles de archivos
- Monitorea subdirectorios específicos en lugar de directorios raíz
4. Errores en las estadísticas:
- Asegúrate de que hay suficientes eventos para generar gráficos
- Verifica si todas las bibliotecas están correctamente instaladas
Linceu Lighthouse es una aplicación de escritorio desarrollada en Python/PySide6 para monitoreo en tiempo real de operaciones en sistemas de archivos (creación, modificación, eliminación, renombrado, movimiento). Ofrece análisis estadístico avanzado, visualización de datos y exportación en múltiples formatos.
- Framework GUI: PySide6 (Qt6)
- Análisis de Datos: pandas, numpy
- Visualización: matplotlib, seaborn, plotly
- Base de Datos: SQLite3 (con optimizaciones WAL)
- Multithreading: QThread, concurrent.futures
- Internacionalización: Qt Linguist (6 idiomas)
📂 source/gui/ - Capa de Interfaz Gráfica
ic_01_InterfaceMonitor.py- Ventana principal de la aplicaciónic_02_Inicializador.py- Inicialización de componentes GUIic_03_Configurador.py- Configuración de diseños y widgetsic_04_Atualizador.py- Actualización de interfazic_05_GerenciadorProgresso.py- Barras de progresoic_06_GerenciadorMensagens.py- Sistema de notificacionesic_07_ManipuladorTabela.py- Operaciones en tablasic_08_Internacionalizador.py- Sistema de traduccionesic_09_GerenciadorDesempenho.py- Gráficos de CPU/RAM/Discoic_10_EstruturaDiretoriosWidget.py- Visualización en árbol
Responsable del monitoreo de rendimiento del sistema en tiempo real.
Gestiona la visualización en árbol y operaciones de archivos/carpetas.
📂 source/services/ - Capa de Lógica de Negocio
ob_01_Observador.py- Monitoreo vía ReadDirectoryChangesWob_02_BaseEvento.py- Clase base para eventosob_03_DiretorioScanner.py- Escaneo recursivo inicialob_04_EventoAdicionado.py- Procesamiento de creacionesob_05_EventoExcluido.py- Procesamiento de eliminacionesob_06_EventoModificado.py- Detección de modificacionesob_07_EventoRenomeado.py- Detección de renombradosob_08_EventoMovido.py- Detección de movimientosob_09_GerenciadorColunas.py- Configuración de columnas visiblesob_10_GerenciadorTabela.py- Operaciones en tablas de datos
- GerenciamentoBaseEvento/ (20 módulos) - Gestión de eventos y base de datos
- GerenciamentoDiretorioScanner/ (9 módulos) - Escaneo de directorios
- GerenciamentoEventoModificado/ (7 módulos) - Procesamiento de modificaciones
- GerenciamentoEventoMovido/ (9 módulos) - Detección de movimientos
- GerenciamentoMetadados/ (47 módulos) - Extracción especializada de metadatos
- GerenciamentoObservador/ (13 módulos) - Control del observador
- GerenciamentoTabela/ (47 módulos) - Operaciones avanzadas de tabla
📂 source/ui/ - Componentes de Interfaz Avanzados
ui_01_GerenciadorBotoes.py- Botones de acciónui_02_GerenciadorBotoesUI.py- Factory de botonesui_03_GerenciadorMenusUI.py- Barra de menúsui_04_GerenciadorEventosUI.py- Manejadores de eventosui_05_GerenciadorProgressoUI.py- Retroalimentación de progresoui_06_GerenciadorEstatisticasUI.py- Ventana de estadísticasui_07_GerenciadorDados.py- Guardar/Cargarui_11_DialogoCores.py- Selector de colores personalizadoui_12_LocalizadorQt.py- Sistema de traduccionesui_13_TradutorMetadadosQt.py- Traducción de metadatos
- GerenciamentoBotoes/ (6 módulos)
- GerenciamentoDialogoCores/ (8 módulos)
- GerenciamentoEstatisticasUI/ (31 módulos)
- GerenciamentoEventosUI/ (11 módulos)
- GerenciamentoLocalizadorQt/ (14 módulos)
- GerenciamentoMenusUI/ (23 módulos)
- GerenciamentoTradutorMetadadosQt/ (9 módulos)
📂 source/data/ - Generación de Estadísticas y Gráficos
- Pizza - Distribución de operaciones
- Barras - Top 30 tipos de archivo
- Línea de tiempo - Línea temporal
- Treemap - Mapa de árbol
- Histograma - Distribución por hora
- Pareto - Análisis 80/20
- Línea - Evolución temporal
- Boxplot - Distribución de tamaños
- Radar - Eventos por hora/día
- Heatmap - Mapa de calor temporal
- Scatter - Análisis tamaño vs tiempo
- Sankey (3 variaciones) - Flujo de operaciones
- Dotplot - Distribución de tamaños
- Árbol - Estructura de directorios
📂 source/tools/ - Herramientas y Utilitarios de UI
fil_01_Filtros.py- Ventana de filtros avanzadosfil_02_AdministradorCalendario.py- Selector de fechasfil_03_AdministradorFiltros.py- Lógica de filtrado
- GerenciamentoAdministradorFiltros/ (10 módulos)
- GerenciamentoFiltros/ (10 módulos)
📂 source/utils/ - Utilitarios Transversales
- LogManager.py - Sistema centralizado de logs con rotación automática
- IconUtils.py - Gestión de iconos y recursos visuales
- CaminhoPersistenteUtils.py - Rutas de configuración multiplataforma
- ApplicationPathUtils.py - Rutas de la aplicación y recursos
📂 source/locale/ - Internacionalización
linceu_pt_BR.ts- Português (Brasil) - 600+ cadenaslinceu_en_US.ts- English (United States)linceu_es_ES.ts- Español (España)linceu_fr_FR.ts- Français (France)linceu_it_IT.ts- Italiano (Italia)linceu_de_DE.ts- Deutsch (Deutschland)
compile_translations.py- Script de compilación y validación de traducciones
- [S] Single Responsibility: Cada módulo tiene una responsabilidad única
- [O] Open/Closed: Extensible vía herencia (BaseGerador, BaseEvento)
- [L] Liskov Substitution: Todos los generadores de gráfico son intercambiables
- [I] Interface Segregation: Interfaces específicas por tipo de evento
- [D] Dependency Inversion: Inyección de dependencias (loc, interface, db_path)
- Observer Pattern: Monitoreo de archivos
- Factory Pattern: Creación de botones y componentes
- Strategy Pattern: Diferentes estrategias de exportación
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador define esqueleto
- Facade Pattern: GerenciadorEstatisticasUI simplifica acceso
- QThread para operaciones largas (escaneo, gráficos)
- ThreadPoolExecutor para procesamiento paralelo
- DatabaseWriter con hilo dedicado
- Debouncing inteligente para eventos
- Caché con invalidación selectiva
- Batch processing para inserciones
- SQLite con modo WAL (Write-Ahead Logging)
- Índices en columnas frecuentes
- Transacciones en lote
- Optimizaciones PRAGMA
- Hilo dedicado para I/O
1. INICIALIZACIÓN
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. SELECCIÓN DE DIRECTORIO
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. INICIO DEL MONITOREO
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. PROCESAMIENTO DE EVENTOS
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. ACTUALIZACIÓN DE LA INTERFAZ
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. GENERACIÓN DE ESTADÍSTICAS
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. EXPORTACIÓN DE DATOS
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. CAMBIO DE IDIOMA
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Framework Qt6
pandas>=2.0.0 # Análisis de datos
matplotlib>=3.7.0 # Visualización de gráficos
seaborn>=0.12.0 # Gráficos estadísticos
plotly==5.22.0 # Gráficos interactivos
Pillow>=10.0.0 # Procesamiento de imágenes
tinytag>=1.10.0 # Metadatos de audio
pymediainfo>=6.0.0 # Metadatos de video
PyPDF2>=3.0.0 # Metadatos de PDF
openpyxl>=3.1.0 # Lectura/escritura Excel
python-docx>=0.8.11 # Metadatos de DOCX
chardet>=5.1.0 # Detección de codificación
squarify>=0.4.3 # Gráficos treemap
psutil>=5.9.0 # Monitoreo de sistema
pywin32>=305 # API Windows
- Sistema Operativo: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4GB mínimo (8GB recomendado)
- Disco: 100MB espacio disponible
Monitoreo en Tiempo Real
- ✓ Detección de creación de archivos/carpetas
- ✓ Detección de eliminación de archivos/carpetas
- ✓ Detección de modificación de contenido
- ✓ Detección de renombrado
- ✓ Detección de movimiento entre carpetas
- ✓ Distinción entre operaciones de archivo vs directorio
- ✓ Debouncing inteligente para archivos grandes
- ✓ Soporte a operaciones masivas (batch)
Extracción de Metadatos (47 módulos especializados)
- ✓ Código fuente: líneas, clases, funciones, imports
- ✓ Imágenes: dimensiones, EXIF, formato, DPI
- ✓ Audio: duración, bitrate, artista, álbum
- ✓ Video: codec, resolución, tasa de frames, duración
- ✓ Documentos: páginas, palabras, autor, fecha creación
- ✓ Hojas de cálculo: número de hojas, líneas, columnas
- ✓ Presentaciones: número de diapositivas
- ✓ Comprimidos: archivos contenidos, tamaño descomprimido
- ✓ Bases de datos: tablas, registros
- ✓ Ejecutables: versión, firma digital, arquitectura
- ✓ Logs: primera/última entrada, número de líneas
- ✓ Configuraciones: formato detectado
Visualización de Datos (18 tipos de gráficos)
- ✓ Pizza: Distribución de operaciones
- ✓ Barras: Top tipos de archivo
- ✓ Línea de tiempo: Línea temporal de eventos
- ✓ Treemap: Jerarquía de tipos
- ✓ Histograma: Distribución por hora
- ✓ Pareto: Análisis 80/20
- ✓ Línea: Evolución temporal diaria
- ✓ Boxplot: Distribución de tamaños
- ✓ Radar: Eventos por hora/día/tipo
- ✓ Heatmap: Mapa de calor temporal
- ✓ Scatter: Tamaño vs tiempo
- ✓ Sankey: Flujo de operaciones/tipos/rutas
- ✓ Dotplot: Distribución de tamaños
- ✓ Árbol: Estructura de directorios
Filtros Avanzados
- ✓ Por tipo de operación
- ✓ Por tipo de archivo (extensión)
- ✓ Por intervalo de fechas
- ✓ Por nombre/texto contenido
- ✓ Combinación de múltiples filtros
- ✓ Tasa de filtrado en tiempo real
- ✓ Sincronización con menú principal
Exportación de Datos
- ✓ Excel (.xlsx) - con formato
- ✓ CSV (.csv) - delimitado por coma
- ✓ JSON (.json) - estructurado
- ✓ XML (.xml) - jerárquico
- ✓ SQLite (.db) - base de datos completa
- ✓ Texto (.txt) - simple
- ✓ Opciones: solo visibles, filtros activos, selección
Internacionalización
- ✓ 6 idiomas soportados
- ✓ Traducción completa de interfaz
- ✓ Traducción de metadatos
- ✓ Traducción de tipos de operación
- ✓ Cambio en tiempo real (sin reinicio)
- ✓ Persistencia de preferencia
- ✓ Fallback para inglés
- ✓ Nombres descriptivos y autoexplicativos
- ✓ Funciones pequeñas y enfocadas (< 50 líneas)
- ✓ Evitar números mágicos (usar constantes)
- ✓ Documentación en el código (docstrings)
- ✓ Formato consistente
- ✓ Evitar duplicación de código (DRY)
- ✓ Lazy loading de metadatos
- ✓ Caché de resultados frecuentes
- ✓ Procesamiento asíncrono
- ✓ Batch processing
- ✓ Índices optimizados en la base
- ✓ Uso eficiente de memoria
- ✓ Modularización extrema (200+ módulos)
- ✓ Separación de responsabilidades
- ✓ Bajo acoplamiento
- ✓ Alta cohesión
- ✓ Patrones de nomenclatura consistentes
- Nuevo tipo de gráfico: Heredar de
data/GeradorEstatisticas/gst_01_base_gerador.py - Nuevo tipo de evento: Heredar de
services/ob_02_BaseEvento.py - Nueva columna: Añadir getter en
services/ob_09_GerenciadorColunas.py - Nuevo idioma: Crear
linceu_XX.tsensource/locale/ - Nuevo filtro: Añadir en
tools/GerenciamentoAdministradorFiltros/
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Base de datos principal (SQLite)language_config.json- Preferencia de idiomacolunas_coloridas.json- Configuración de colorescores_operacoes.json- Colores por tipo de operaciónconfig.json- Configuraciones generales
Sistema de logs con rotación automática en:
%APPDATA%/Linceu_Lighthouse/logs/
Autores: Fernando Nillsson Cidade
Versión: v0.1.3.0
Licencia: GNU Affero General Public License v3.0 (AGPL-3.0)
Para más información, consulte la documentación específica de cada módulo en el código fuente.
Note : Ce référentiel fait référence à la version v0.1.3.0 du projet Linceu Lighthouse. Soutenez le projet et achetez la version payante via le lien : Installer via Microsoft Store
Cliquez pour développer le README en français
Projet : LINCEU LIGHTHOUSE
Version : v0.1.3.0
Auteurs : Fernando Nillsson Cidade
Description : Visibilité et Contrôle sur Vos Fichiers
Linceu Lighthouse est un outil de surveillance qui applique les principes de Surveillance de l'Intégrité des Fichiers (File Integrity Monitoring - FIM) pour fournir un journal détaillé et transparent de toutes les activités dans vos répertoires les plus importants.
Au lieu d'interpréter l'intention derrière un changement, son objectif est d'enregistrer factuellement chaque opération—création, modification, suppression et renommage—vous donnant un contrôle et une connaissance totale de ce qui se passe.
Principaux Cas d'Usage
Linceu Lighthouse fournit la visibilité nécessaire pour divers scénarios pratiques :
- Audit des Activités dans les Dossiers : Idéal pour les environnements où plusieurs utilisateurs ou processus accèdent aux mêmes répertoires. Sachez exactement quand un fichier a été modifié, qui l'a renommé ou pourquoi un document a été supprimé.
- Contrôle des Versions et des Projets : Surveillez les dossiers de projets pour comprendre le flux de travail. Consultez l'historique des modifications dans le code source, les documents de conception ou d'autres matériaux, aidant à prévenir les pertes accidentelles ou les modifications non autorisées.
- Organisation et Nettoyage des Fichiers : Identifiez les fichiers temporaires, en double ou qui n'ont pas été modifiés depuis longtemps. Utilisez les rapports pour prendre des décisions éclairées sur ce qu'il faut archiver, déplacer ou supprimer, gardant vos répertoires organisés.
- Enquête sur des Événements Spécifiques : Si un fichier important disparaît ou qu'un projet cesse de fonctionner, Linceu Lighthouse fournit l'historique chronologique des événements pour vous aider à retracer la cause première du problème.
Comment Fonctionne Linceu Lighthouse ?
Le processus est simple et axé sur la fourniture de données claires pour votre analyse :
- Établissement de la Ligne de Base (Baseline) : Lors du démarrage de la surveillance d'un répertoire, Linceu Lighthouse effectue une analyse complète pour créer un "instantané" initial de l'état de tous les fichiers et dossiers.
- Surveillance Continue : À partir de la ligne de base, l'outil surveille en temps réel et enregistre chaque événement de création, modification, suppression, déplacement ou renommage qui se produit dans le répertoire.
- Analyse et Rapport : Tout écart par rapport à la ligne de base est immédiatement répertorié dans l'interface graphique. De là, vous avez le plein pouvoir d'analyser ce qui s'est passé, en utilisant les outils que le logiciel offre.
Outils d'Analyse à Votre Disposition
Pour transformer le grand volume de données de surveillance en informations utiles, Linceu Lighthouse offre :
- Filtres Avancés : Ne vous perdez pas parmi des milliers d'événements. Isolez rapidement ce qui compte en filtrant par type d'opération (ex : voir uniquement les fichiers supprimés), par date, par extension (.docx, .jpg), ou par utilisateur.
- Visualisation des Statistiques : Transformez les données brutes en informations visuelles. Avec des graphiques intuitifs, vous pouvez comprendre les modèles d'activité, tels que les heures de pointe des modifications, les types de fichiers les plus modifiés, et bien plus encore.
- Exportation Flexible des Données : Créez un enregistrement permanent et vérifiable. Exportez les journaux de surveillance vers divers formats (Excel, CSV, JSON, XML), que ce soit pour l'archivage, le partage avec votre équipe ou l'importation dans d'autres systèmes.
MANUEL D'UTILISATION RAPIDE :
Comment utiliser :
- Exécutez l'application pour démarrer l'interface graphique.
- Sélectionnez un répertoire à surveiller.
- Utilisez les boutons et menus pour démarrer/arrêter la surveillance, appliquer des filtres, exporter des données et visualiser des statistiques.
MANUEL D'UTILISATION DÉTAILLÉ :
Configuration Système Requise : - Système d'Exploitation : Windows 10 ou supérieur.
Installation : - Installez le fichier exécutable du programme, suivez les instructions de l'installateur et exécutez le programme.
Configuration Initiale : - L'interface s'affichera avec le tableau de surveillance vide. - La langue par défaut sera sélectionnée selon les paramètres du système. - Observez la barre latérale gauche pour accéder aux fonctions principales.
Surveillance des Répertoires : 1. Sélectionner un Répertoire : - Cliquez sur le bouton "Sélectionner un Répertoire" ou sélectionnez "Fichier → Sélectionner un Répertoire" - Le chemin du répertoire sélectionné sera affiché au-dessus du tableau
2. Démarrer/Arrêter la Surveillance :
- Cliquez sur le bouton "Démarrer/Arrêter" ou sélectionnez "Fichier → Démarrer/Arrêter"
- Une analyse initiale du répertoire sera effectuée avec une barre de progression
- Pour arrêter la surveillance, cliquez à nouveau sur le même bouton
Interface Principale : - Barre de Menu : Accès à toutes les fonctions du programme - Barre Latérale : Boutons d'actions rapides - Étiquette de Répertoire : Affiche le répertoire surveillé - Étiquette de Résultat : Affiche l'état actuel de l'opération - Tableau de Données : Affiche tous les événements de surveillance - Barre de Progression : Visible pendant les opérations de longue durée
Champs par défaut du tableau :
- Type d'Opération : Ajouté, Supprimé, Modifié, Renommé ou Déplacé
- Nom : Nom du fichier
- Répertoire Précédent : Emplacement d'origine du fichier (le cas échéant)
- Répertoire Actuel : Emplacement actuel du fichier
- Date de Création : Date à laquelle le fichier a été créé
- Date de Modification : Date de la dernière modification
- Type : Type/extension du fichier
Filtres et Recherche : 1. Filtres Rapides : - Dans le menu "Paramètres → Filtres", cochez/décochez les types d'opérations (Déplacé, Renommé, Ajouté, Supprimé, Modifié)
2. Filtres Avancés :
- Accédez à "Paramètres → Filtres → Filtres Avancés"
- Filtre d'Opération : Sélectionnez les types d'opérations à visualiser
- Recherche : Recherche de texte dans les noms et répertoires
- Filtre par Extension : Filtrez par types de fichiers spécifiques
- Filtre de Date : Définissez la période pour les événements
- Utilisez le bouton calendrier pour la sélection des dates
- "Effacer les Filtres" réinitialise tous les paramètres
Visualisation des Statistiques : - Accédez via le bouton "Statistiques" ou "Fichier → Statistiques" - Graphiques disponibles : * Distribution des Opérations : Proportion de chaque type d'opération * Top 10 des Types de Fichiers : Types de fichiers les plus courants * Chronologie des Opérations : Ligne de temps des événements * Carte Arborescente : Visualisation de la taille par types * Distribution par Heure : Heures avec le plus d'opérations * Analyse de Pareto : Fréquence et pourcentage cumulé * Opérations par Jour : Opérations regroupées par date - Enregistrer les graphiques : Cliquez sur "Tout Enregistrer" et sélectionnez la destination
Exportation des Données : - Cliquez sur "Enregistrer Sous" ou "Fichier → Enregistrer Sous" - Formats disponibles : * Excel (.xlsx) * CSV (.csv) * Texte (.txt) * JSON (.json) * XML (.xml) * Base de Données (.db) - Pour les exportations futures du même ensemble, utilisez "Fichier → Enregistrer"
Configuration des Colonnes : - Accédez à "Paramètres → Configurer les Colonnes" - Cochez/décochez les colonnes souhaitées dans le tableau : (Type d'Opération, Nom, Répertoire Précédent, Répertoire Actuel, etc.) - Les modifications sont appliquées immédiatement - Restauration par défaut : "Paramètres → Configurer les Colonnes → Réinitialiser les Colonnes"
Changement de Langue : - Accédez à "Options → Langue" et sélectionnez la langue souhaitée - Le programme redémarrera avec la nouvelle langue après confirmation
Résolution de Problèmes : 1. La surveillance ne démarre pas : - Vérifiez les autorisations d'accès au répertoire - Assurez-vous qu'aucun autre programme ne surveille le même répertoire - Redémarrez l'application
2. Les événements n'apparaissent pas :
- Vérifiez si la surveillance est active
- Vérifiez si les filtres ne cachent pas les événements
- Testez en modifiant manuellement un fichier
3. Consommation élevée de ressources :
- Évitez de surveiller les répertoires système ou ceux contenant des milliers de fichiers
- Surveillez des sous-répertoires spécifiques au lieu des répertoires racine
4. Erreurs dans les statistiques :
- Assurez-vous qu'il y a suffisamment d'événements pour générer des graphiques
- Vérifiez si toutes les bibliothèques sont correctement installées
Linceu Lighthouse est une application de bureau développée en Python/PySide6 pour la surveillance en temps réel des opérations sur les systèmes de fichiers (création, modification, suppression, renommage, déplacement). Elle offre une analyse statistique avancée, la visualisation des données et l'exportation dans plusieurs formats.
- Framework GUI: PySide6 (Qt6)
- Analyse de Données: pandas, numpy
- Visualisation: matplotlib, seaborn, plotly
- Base de Données: SQLite3 (avec optimisations WAL)
- Multithreading: QThread, concurrent.futures
- Internationalisation: Qt Linguist (6 langues)
📂 source/gui/ - Couche d'Interface Graphique
ic_01_InterfaceMonitor.py- Fenêtre principale de l'applicationic_02_Inicializador.py- Initialisation des composants GUIic_03_Configurador.py- Configuration des mises en page et widgetsic_04_Atualizador.py- Mise à jour de l'interfaceic_05_GerenciadorProgresso.py- Barres de progressionic_06_GerenciadorMensagens.py- Système de notificationsic_07_ManipuladorTabela.py- Opérations sur les tableauxic_08_Internacionalizador.py- Système de traductionsic_09_GerenciadorDesempenho.py- Graphiques CPU/RAM/Disqueic_10_EstruturaDiretoriosWidget.py- Visualisation en arborescence
Responsable de la surveillance des performances du système en temps réel.
Gère la visualisation en arborescence et les opérations de fichiers/dossiers.
📂 source/services/ - Couche de Logique Métier
ob_01_Observador.py- Surveillance via ReadDirectoryChangesWob_02_BaseEvento.py- Classe de base pour les événementsob_03_DiretorioScanner.py- Analyse récursive initialeob_04_EventoAdicionado.py- Traitement des créationsob_05_EventoExcluido.py- Traitement des suppressionsob_06_EventoModificado.py- Détection des modificationsob_07_EventoRenomeado.py- Détection des renommagesob_08_EventoMovido.py- Détection des déplacementsob_09_GerenciadorColunas.py- Configuration des colonnes visiblesob_10_GerenciadorTabela.py- Opérations sur les tableaux de données
- GerenciamentoBaseEvento/ (20 modules) - Gestion des événements et base de données
- GerenciamentoDiretorioScanner/ (9 modules) - Analyse des répertoires
- GerenciamentoEventoModificado/ (7 modules) - Traitement des modifications
- GerenciamentoEventoMovido/ (9 modules) - Détection des déplacements
- GerenciamentoMetadados/ (47 modules) - Extraction spécialisée de métadonnées
- GerenciamentoObservador/ (13 modules) - Contrôle de l'observateur
- GerenciamentoTabela/ (47 modules) - Opérations avancées sur les tableaux
📂 source/ui/ - Composants d'Interface Avancés
ui_01_GerenciadorBotoes.py- Boutons d'actionui_02_GerenciadorBotoesUI.py- Factory de boutonsui_03_GerenciadorMenusUI.py- Barre de menusui_04_GerenciadorEventosUI.py- Gestionnaires d'événementsui_05_GerenciadorProgressoUI.py- Retour de progressionui_06_GerenciadorEstatisticasUI.py- Fenêtre de statistiquesui_07_GerenciadorDados.py- Sauvegarder/Chargerui_11_DialogoCores.py- Sélecteur de couleurs personnaliséui_12_LocalizadorQt.py- Système de traductionsui_13_TradutorMetadadosQt.py- Traduction des métadonnées
- GerenciamentoBotoes/ (6 modules)
- GerenciamentoDialogoCores/ (8 modules)
- GerenciamentoEstatisticasUI/ (31 modules)
- GerenciamentoEventosUI/ (11 modules)
- GerenciamentoLocalizadorQt/ (14 modules)
- GerenciamentoMenusUI/ (23 modules)
- GerenciamentoTradutorMetadadosQt/ (9 modules)
📂 source/data/ - Génération de Statistiques et Graphiques
- Camembert - Distribution des opérations
- Barres - Top 30 types de fichiers
- Chronologie - Ligne du temps
- Treemap - Carte arborescente
- Histogramme - Distribution par heure
- Pareto - Analyse 80/20
- Ligne - Évolution temporelle
- Boxplot - Distribution des tailles
- Radar - Événements par heure/jour
- Heatmap - Carte de chaleur temporelle
- Scatter - Analyse taille vs temps
- Sankey (3 variations) - Flux d'opérations
- Dotplot - Distribution des tailles
- Arbre - Structure des répertoires
📂 source/tools/ - Outils et Utilitaires d'Interface
fil_01_Filtros.py- Fenêtre de filtres avancésfil_02_AdministradorCalendario.py- Sélecteur de datesfil_03_AdministradorFiltros.py- Logique de filtrage
- GerenciamentoAdministradorFiltros/ (10 modules)
- GerenciamentoFiltros/ (10 modules)
📂 source/utils/ - Utilitaires Transversaux
- LogManager.py - Système centralisé de journalisation avec rotation automatique
- IconUtils.py - Gestion des icônes et ressources visuelles
- CaminhoPersistenteUtils.py - Chemins de configuration multiplateforme
- ApplicationPathUtils.py - Chemins de l'application et ressources
📂 source/locale/ - Internationalisation
linceu_pt_BR.ts- Português (Brasil) - 600+ chaîneslinceu_en_US.ts- English (United States)linceu_es_ES.ts- Español (España)linceu_fr_FR.ts- Français (France)linceu_it_IT.ts- Italiano (Italia)linceu_de_DE.ts- Deutsch (Deutschland)
compile_translations.py- Script de compilation et validation des traductions
- [S] Single Responsibility: Chaque module a une responsabilité unique
- [O] Open/Closed: Extensible via héritage (BaseGerador, BaseEvento)
- [L] Liskov Substitution: Tous les générateurs de graphiques sont interchangeables
- [I] Interface Segregation: Interfaces spécifiques par type d'événement
- [D] Dependency Inversion: Injection de dépendances (loc, interface, db_path)
- Observer Pattern: Surveillance des fichiers
- Factory Pattern: Création de boutons et composants
- Strategy Pattern: Différentes stratégies d'exportation
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador définit le squelette
- Facade Pattern: GerenciadorEstatisticasUI simplifie l'accès
- QThread pour les opérations longues (analyse, graphiques)
- ThreadPoolExecutor pour le traitement parallèle
- DatabaseWriter avec thread dédié
- Debouncing intelligent pour les événements
- Cache avec invalidation sélective
- Traitement par lots pour les insertions
- SQLite avec mode WAL (Write-Ahead Logging)
- Index sur les colonnes fréquentes
- Transactions par lots
- Optimisations PRAGMA
- Thread dédié pour I/O
1. INITIALISATION
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. SÉLECTION DE RÉPERTOIRE
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. DÉMARRAGE DE LA SURVEILLANCE
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. TRAITEMENT DES ÉVÉNEMENTS
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. MISE À JOUR DE L'INTERFACE
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. GÉNÉRATION DE STATISTIQUES
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. EXPORTATION DE DONNÉES
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. CHANGEMENT DE LANGUE
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Framework Qt6
pandas>=2.0.0 # Analyse de données
matplotlib>=3.7.0 # Visualisation de graphiques
seaborn>=0.12.0 # Graphiques statistiques
plotly==5.22.0 # Graphiques interactifs
Pillow>=10.0.0 # Traitement d'images
tinytag>=1.10.0 # Métadonnées audio
pymediainfo>=6.0.0 # Métadonnées vidéo
PyPDF2>=3.0.0 # Métadonnées PDF
openpyxl>=3.1.0 # Lecture/écriture Excel
python-docx>=0.8.11 # Métadonnées DOCX
chardet>=5.1.0 # Détection d'encodage
squarify>=0.4.3 # Graphiques treemap
psutil>=5.9.0 # Surveillance système
pywin32>=305 # API Windows
- Système d'Exploitation: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4GB minimum (8GB recommandé)
- Disque: 100MB d'espace disponible
Surveillance en Temps Réel
- ✓ Détection de création de fichiers/dossiers
- ✓ Détection de suppression de fichiers/dossiers
- ✓ Détection de modification de contenu
- ✓ Détection de renommage
- ✓ Détection de déplacement entre dossiers
- ✓ Distinction entre opérations de fichier vs répertoire
- ✓ Debouncing intelligent pour les fichiers volumineux
- ✓ Support des opérations massives (batch)
Extraction de Métadonnées (47 modules spécialisés)
- ✓ Code source: lignes, classes, fonctions, imports
- ✓ Images: dimensions, EXIF, format, DPI
- ✓ Audio: durée, bitrate, artiste, album
- ✓ Vidéo: codec, résolution, taux de trames, durée
- ✓ Documents: pages, mots, auteur, date de création
- ✓ Feuilles de calcul: nombre de feuilles, lignes, colonnes
- ✓ Présentations: nombre de diapositives
- ✓ Compressés: fichiers contenus, taille décompressée
- ✓ Bases de données: tables, enregistrements
- ✓ Exécutables: version, signature numérique, architecture
- ✓ Journaux: première/dernière entrée, nombre de lignes
- ✓ Configurations: format détecté
Visualisation de Données (18 types de graphiques)
- ✓ Camembert: Distribution des opérations
- ✓ Barres: Top types de fichiers
- ✓ Chronologie: Ligne du temps des événements
- ✓ Treemap: Hiérarchie des types
- ✓ Histogramme: Distribution par heure
- ✓ Pareto: Analyse 80/20
- ✓ Ligne: Évolution temporelle quotidienne
- ✓ Boxplot: Distribution des tailles
- ✓ Radar: Événements par heure/jour/type
- ✓ Heatmap: Carte de chaleur temporelle
- ✓ Scatter: Taille vs temps
- ✓ Sankey: Flux d'opérations/types/chemins
- ✓ Dotplot: Distribution des tailles
- ✓ Arbre: Structure des répertoires
Filtres Avancés
- ✓ Par type d'opération
- ✓ Par type de fichier (extension)
- ✓ Par intervalle de dates
- ✓ Par nom/texte contenu
- ✓ Combinaison de plusieurs filtres
- ✓ Taux de filtrage en temps réel
- ✓ Synchronisation avec le menu principal
Exportation de Données
- ✓ Excel (.xlsx) - avec formatage
- ✓ CSV (.csv) - délimité par virgules
- ✓ JSON (.json) - structuré
- ✓ XML (.xml) - hiérarchique
- ✓ SQLite (.db) - base de données complète
- ✓ Texte (.txt) - simple
- ✓ Options: visibles uniquement, filtres actifs, sélection
Internationalisation
- ✓ 6 langues supportées
- ✓ Traduction complète de l'interface
- ✓ Traduction des métadonnées
- ✓ Traduction des types d'opération
- ✓ Changement en temps réel (sans redémarrage)
- ✓ Persistance des préférences
- ✓ Fallback vers l'anglais
- ✓ Noms descriptifs et auto-explicatifs
- ✓ Fonctions petites et ciblées (< 50 lignes)
- ✓ Éviter les nombres magiques (utiliser des constantes)
- ✓ Documentation dans le code (docstrings)
- ✓ Formatage cohérent
- ✓ Éviter la duplication de code (DRY)
- ✓ Lazy loading des métadonnées
- ✓ Cache des résultats fréquents
- ✓ Traitement asynchrone
- ✓ Traitement par lots
- ✓ Index optimisés dans la base
- ✓ Utilisation efficace de la mémoire
- ✓ Modularisation extrême (200+ modules)
- ✓ Séparation des responsabilités
- ✓ Faible couplage
- ✓ Haute cohésion
- ✓ Modèles de nomenclature cohérents
- Nouveau type de graphique: Hériter de
data/GeradorEstatisticas/gst_01_base_gerador.py - Nouveau type d'événement: Hériter de
services/ob_02_BaseEvento.py - Nouvelle colonne: Ajouter un getter dans
services/ob_09_GerenciadorColunas.py - Nouvelle langue: Créer
linceu_XX.tsdanssource/locale/ - Nouveau filtre: Ajouter dans
tools/GerenciamentoAdministradorFiltros/
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Base de données principale (SQLite)language_config.json- Préférence de languecolunas_coloridas.json- Configuration des couleurscores_operacoes.json- Couleurs par type d'opérationconfig.json- Paramètres généraux
Système de journalisation avec rotation automatique dans:
%APPDATA%/Linceu_Lighthouse/logs/
Auteurs: Fernando Nillsson Cidade
Version: v0.1.3.0
Licence: GNU Affero General Public License v3.0 (AGPL-3.0)
Pour plus d'informations, consultez la documentation spécifique de chaque module dans le code source.
Nota: Questo repository si riferisce alla versione v0.1.3.0 del Progetto Linceu Lighthouse. Supporta il progetto e acquista la versione a pagamento tramite il link: Installa via Microsoft Store
Clicca per espandere il README in italiano
Progetto: LINCEU LIGHTHOUSE
Versione: v0.1.3.0
Autori: Fernando Nillsson Cidade
Descrizione: Visibilità e Controllo sui Tuoi File
Linceu Lighthouse è uno strumento di monitoraggio che applica i principi del Monitoraggio dell'Integrità dei File (File Integrity Monitoring - FIM) per fornire un registro dettagliato e trasparente di tutte le attività nelle tue directory più importanti.
Invece di interpretare l'intenzione dietro un cambiamento, il suo obiettivo è registrare in modo fattuale ogni operazione—creazione, modifica, eliminazione e rinominazione—dandoti controllo e conoscenza totale di ciò che accade.
Principali Casi d'Uso
Linceu Lighthouse fornisce la visibilità necessaria per vari scenari pratici:
- Audit delle Attività nelle Cartelle: Ideale per ambienti in cui più utenti o processi accedono alle stesse directory. Scopri esattamente quando un file è stato modificato, chi lo ha rinominato o perché un documento è stato eliminato.
- Controllo di Versioni e Progetti: Monitora le cartelle dei progetti per comprendere il flusso di lavoro. Visualizza la cronologia delle modifiche nel codice sorgente, nei documenti di progettazione o in altri materiali, aiutando a prevenire perdite accidentali o modifiche non autorizzate.
- Organizzazione e Pulizia dei File: Identifica file temporanei, duplicati o che non sono stati modificati da molto tempo. Usa i report per prendere decisioni informate su cosa archiviare, spostare o eliminare, mantenendo le tue directory organizzate.
- Indagine su Eventi Specifici: Se un file importante scompare o un progetto smette di funzionare, Linceu Lighthouse fornisce la cronologia cronologica degli eventi per aiutarti a rintracciare la causa principale del problema.
Come Funziona Linceu Lighthouse?
Il processo è semplice e focalizzato sulla fornitura di dati chiari per la tua analisi:
- Stabilimento della Linea di Base (Baseline): All'avvio del monitoraggio di una directory, Linceu Lighthouse esegue una scansione completa per creare un'"istantanea" iniziale dello stato di tutti i file e cartelle.
- Monitoraggio Continuo: A partire dalla linea di base, lo strumento monitora in tempo reale e registra ogni evento di creazione, modifica, eliminazione, spostamento o rinominazione che si verifica nella directory.
- Analisi e Report: Qualsiasi deviazione dalla linea di base viene immediatamente elencata nell'interfaccia grafica. Da lì, hai il pieno potere di analizzare cosa è successo, utilizzando gli strumenti che il software offre.
Strumenti di Analisi a Tua Disposizione
Per trasformare il grande volume di dati di monitoraggio in informazioni utili, Linceu Lighthouse offre:
- Filtri Avanzati: Non perderti tra migliaia di eventi. Isola rapidamente ciò che conta, filtrando per tipo di operazione (es: visualizzare solo i file eliminati), per data, per estensione (.docx, .jpg), o per utente.
- Visualizzazione delle Statistiche: Trasforma i dati grezzi in intuizioni visive. Con grafici intuitivi, puoi comprendere i modelli di attività, come gli orari di punta delle modifiche, i tipi di file più modificati e molto altro.
- Esportazione Flessibile dei Dati: Crea un registro permanente e verificabile. Esporta i log di monitoraggio in vari formati (Excel, CSV, JSON, XML), sia per l'archiviazione, per condividere con il tuo team, o per importare in altri sistemi.
MANUALE D'USO RAPIDO:
Come usare:
- Esegui l'applicazione per avviare l'interfaccia grafica.
- Seleziona una directory da monitorare.
- Usa i pulsanti e i menu per avviare/fermare il monitoraggio, applicare filtri, esportare dati e visualizzare statistiche.
MANUALE D'USO DETTAGLIATO:
Requisiti di Sistema: - Sistema Operativo: Windows 10 o superiore.
Installazione: - Installa il file eseguibile del programma, segui le istruzioni dell'installatore ed esegui il programma.
Configurazione Iniziale: - L'interfaccia verrà visualizzata con la tabella di monitoraggio vuota. - La lingua predefinita verrà selezionata in base alle impostazioni del sistema. - Osserva la barra laterale sinistra per accedere alle funzioni principali.
Monitoraggio delle Directory: 1. Selezionare una Directory: - Fai clic sul pulsante "Seleziona Directory" o seleziona "File → Seleziona Directory" - Il percorso della directory selezionata verrà visualizzato sopra la tabella
2. Avviare/Fermare il Monitoraggio:
- Fai clic sul pulsante "Avvia/Ferma" o seleziona "File → Avvia/Ferma"
- Verrà eseguita una scansione iniziale della directory con barra di avanzamento
- Per interrompere il monitoraggio, fai clic di nuovo sullo stesso pulsante
Interfaccia Principale: - Barra dei Menu: Accesso a tutte le funzioni del programma - Barra Laterale: Pulsanti di azioni rapide - Etichetta Directory: Visualizza la directory monitorata - Etichetta Risultato: Mostra lo stato attuale dell'operazione - Tabella Dati: Visualizza tutti gli eventi di monitoraggio - Barra di Avanzamento: Visibile durante operazioni di lunga durata
Campi predefiniti della tabella:
- Tipo di Operazione: Aggiunto, Eliminato, Modificato, Rinominato o Spostato
- Nome: Nome del file
- Directory Precedente: Posizione originale del file (se applicabile)
- Directory Attuale: Posizione attuale del file
- Data di Creazione: Data in cui il file è stato creato
- Data di Modifica: Data dell'ultima modifica
- Tipo: Tipo/estensione del file
Filtri e Ricerca: 1. Filtri Rapidi: - Nel menu "Impostazioni → Filtri" attiva/disattiva i tipi di operazioni (Spostato, Rinominato, Aggiunto, Eliminato, Modificato)
2. Filtri Avanzati:
- Accedi a "Impostazioni → Filtri → Filtri Avanzati"
- Filtro Operazione: Seleziona i tipi di operazioni da visualizzare
- Ricerca: Cerca testo in nomi e directory
- Filtro per Estensione: Filtra per tipi di file specifici
- Filtro Data: Definisci il periodo per gli eventi
- Usa il pulsante calendario per la selezione delle date
- "Cancella Filtri" ripristina tutte le impostazioni
Visualizzazione delle Statistiche: - Accedi tramite il pulsante "Statistiche" o "File → Statistiche" - Grafici disponibili: * Distribuzione delle Operazioni: Proporzione di ogni tipo di operazione * Top 10 Tipi di File: Tipi di file più comuni * Linea Temporale delle Operazioni: Timeline degli eventi * Mappa ad Albero: Visualizzazione della dimensione per tipi * Distribuzione per Ora: Orari con più operazioni * Analisi di Pareto: Frequenza e percentuale cumulativa * Operazioni per Giorno: Operazioni raggruppate per data - Salvare grafici: Fai clic su "Salva Tutto" e seleziona la destinazione
Esportazione dei Dati: - Fai clic su "Salva Come" o "File → Salva Come" - Formati disponibili: * Excel (.xlsx) * CSV (.csv) * Testo (.txt) * JSON (.json) * XML (.xml) * Database (.db) - Per esportazioni future dello stesso set, usa "File → Salva"
Configurazione delle Colonne: - Accedi a "Impostazioni → Configura Colonne" - Attiva/disattiva le colonne desiderate nella tabella: (Tipo di Operazione, Nome, Directory Precedente, Directory Attuale, ecc.) - Le modifiche vengono applicate immediatamente - Ripristino predefinito: "Impostazioni → Configura Colonne → Ripristina Colonne"
Cambio Lingua: - Accedi a "Opzioni → Lingua" e seleziona la lingua desiderata - Il programma verrà riavviato con la nuova lingua dopo la conferma
Risoluzione dei Problemi: 1. Il monitoraggio non si avvia: - Verifica i permessi di accesso alla directory - Assicurati che non ci sia un altro programma che monitora la stessa directory - Riavvia l'applicazione
2. Gli eventi non appaiono:
- Verifica se il monitoraggio è attivo
- Controlla se i filtri non stanno nascondendo gli eventi
- Prova modificando manualmente un file
3. Alto consumo di risorse:
- Evita di monitorare directory di sistema o con migliaia di file
- Monitora sottodirectory specifiche invece delle directory radice
4. Errori nelle statistiche:
- Assicurati che ci siano abbastanza eventi per generare grafici
- Verifica se tutte le librerie sono correttamente installate
Linceu Lighthouse è un'applicazione desktop sviluppata in Python/PySide6 per il monitoraggio in tempo reale delle operazioni sui file system (creazione, modifica, eliminazione, rinominazione, spostamento). Offre analisi statistiche avanzate, visualizzazione dei dati ed esportazione in molteplici formati.
- Framework GUI: PySide6 (Qt6)
- Analisi Dati: pandas, numpy
- Visualizzazione: matplotlib, seaborn, plotly
- Database: SQLite3 (con ottimizzazioni WAL)
- Multithreading: QThread, concurrent.futures
- Internazionalizzazione: Qt Linguist (6 lingue)
📂 source/gui/ - Livello Interfaccia Grafica
ic_01_InterfaceMonitor.py- Finestra principale dell'applicazioneic_02_Inicializador.py- Inizializzazione componenti GUIic_03_Configurador.py- Configurazione layout e widgetic_04_Atualizador.py- Aggiornamento interfacciaic_05_GerenciadorProgresso.py- Barre di avanzamentoic_06_GerenciadorMensagens.py- Sistema di notificheic_07_ManipuladorTabela.py- Operazioni su tabelleic_08_Internacionalizador.py- Sistema di traduzioniic_09_GerenciadorDesempenho.py- Grafici CPU/RAM/Discoic_10_EstruturaDiretoriosWidget.py- Visualizzazione ad albero
Responsabile del monitoraggio delle prestazioni del sistema in tempo reale.
Gestisce la visualizzazione ad albero e le operazioni su file/cartelle.
📂 source/services/ - Livello Logica di Business
ob_01_Observador.py- Monitoraggio via ReadDirectoryChangesWob_02_BaseEvento.py- Classe base per eventiob_03_DiretorioScanner.py- Scansione ricorsiva inizialeob_04_EventoAdicionado.py- Elaborazione creazioniob_05_EventoExcluido.py- Elaborazione eliminazioniob_06_EventoModificado.py- Rilevamento modificheob_07_EventoRenomeado.py- Rilevamento rinominazioniob_08_EventoMovido.py- Rilevamento spostamentiob_09_GerenciadorColunas.py- Configurazione colonne visibiliob_10_GerenciadorTabela.py- Operazioni su tabelle dati
- GerenciamentoBaseEvento/ (20 moduli) - Gestione eventi e database
- GerenciamentoDiretorioScanner/ (9 moduli) - Scansione directory
- GerenciamentoEventoModificado/ (7 moduli) - Elaborazione modifiche
- GerenciamentoEventoMovido/ (9 moduli) - Rilevamento spostamenti
- GerenciamentoMetadados/ (47 moduli) - Estrazione specializzata metadati
- GerenciamentoObservador/ (13 moduli) - Controllo osservatore
- GerenciamentoTabela/ (47 moduli) - Operazioni avanzate su tabelle
📂 source/ui/ - Componenti Interfaccia Avanzati
ui_01_GerenciadorBotoes.py- Pulsanti azioneui_02_GerenciadorBotoesUI.py- Factory pulsantiui_03_GerenciadorMenusUI.py- Barra menuui_04_GerenciadorEventosUI.py- Gestori eventiui_05_GerenciadorProgressoUI.py- Feedback avanzamentoui_06_GerenciadorEstatisticasUI.py- Finestra statisticheui_07_GerenciadorDados.py- Salva/Caricaui_11_DialogoCores.py- Selettore colori personalizzatoui_12_LocalizadorQt.py- Sistema traduzioniui_13_TradutorMetadadosQt.py- Traduzione metadati
- GerenciamentoBotoes/ (6 moduli)
- GerenciamentoDialogoCores/ (8 moduli)
- GerenciamentoEstatisticasUI/ (31 moduli)
- GerenciamentoEventosUI/ (11 moduli)
- GerenciamentoLocalizadorQt/ (14 moduli)
- GerenciamentoMenusUI/ (23 moduli)
- GerenciamentoTradutorMetadadosQt/ (9 moduli)
📂 source/data/ - Generazione Statistiche e Grafici
- Torta - Distribuzione operazioni
- Barre - Top 30 tipi di file
- Timeline - Linea temporale
- Treemap - Mappa ad albero
- Istogramma - Distribuzione per ora
- Pareto - Analisi 80/20
- Linea - Evoluzione temporale
- Boxplot - Distribuzione dimensioni
- Radar - Eventi per ora/giorno
- Heatmap - Mappa di calore temporale
- Scatter - Analisi dimensione vs tempo
- Sankey (3 variazioni) - Flusso operazioni
- Dotplot - Distribuzione dimensioni
- Albero - Struttura directory
📂 source/tools/ - Strumenti e Utilità UI
fil_01_Filtros.py- Finestra filtri avanzatifil_02_AdministradorCalendario.py- Selettore datefil_03_AdministradorFiltros.py- Logica filtraggio
- GerenciamentoAdministradorFiltros/ (10 moduli)
- GerenciamentoFiltros/ (10 moduli)
📂 source/utils/ - Utilità Trasversali
- LogManager.py - Sistema centralizzato log con rotazione automatica
- IconUtils.py - Gestione icone e risorse visive
- CaminhoPersistenteUtils.py - Percorsi configurazione multipiattaforma
- ApplicationPathUtils.py - Percorsi applicazione e risorse
📂 source/locale/ - Internazionalizzazione
linceu_pt_BR.ts- Português (Brasil) - 600+ stringhelinceu_en_US.ts- English (United States)linceu_es_ES.ts- Español (España)linceu_fr_FR.ts- Français (France)linceu_it_IT.ts- Italiano (Italia)linceu_de_DE.ts- Deutsch (Deutschland)
compile_translations.py- Script compilazione e validazione traduzioni
- [S] Single Responsibility: Ogni modulo ha una responsabilità unica
- [O] Open/Closed: Estensibile via ereditarietà (BaseGerador, BaseEvento)
- [L] Liskov Substitution: Tutti i generatori di grafici sono intercambiabili
- [I] Interface Segregation: Interfacce specifiche per tipo di evento
- [D] Dependency Inversion: Iniezione dipendenze (loc, interface, db_path)
- Observer Pattern: Monitoraggio file
- Factory Pattern: Creazione pulsanti e componenti
- Strategy Pattern: Diverse strategie esportazione
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador definisce scheletro
- Facade Pattern: GerenciadorEstatisticasUI semplifica accesso
- QThread per operazioni lunghe (scansione, grafici)
- ThreadPoolExecutor per elaborazione parallela
- DatabaseWriter con thread dedicato
- Debouncing intelligente per eventi
- Cache con invalidazione selettiva
- Batch processing per inserimenti
- SQLite con modalità WAL (Write-Ahead Logging)
- Indici su colonne frequenti
- Transazioni in batch
- Ottimizzazioni PRAGMA
- Thread dedicato per I/O
1. INIZIALIZZAZIONE
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. SELEZIONE DIRECTORY
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. AVVIO MONITORAGGIO
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. ELABORAZIONE EVENTI
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. AGGIORNAMENTO INTERFACCIA
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. GENERAZIONE STATISTICHE
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. ESPORTAZIONE DATI
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. CAMBIO LINGUA
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Framework Qt6
pandas>=2.0.0 # Analisi dati
matplotlib>=3.7.0 # Visualizzazione grafici
seaborn>=0.12.0 # Grafici statistici
plotly==5.22.0 # Grafici interattivi
Pillow>=10.0.0 # Elaborazione immagini
tinytag>=1.10.0 # Metadati audio
pymediainfo>=6.0.0 # Metadati video
PyPDF2>=3.0.0 # Metadati PDF
openpyxl>=3.1.0 # Lettura/scrittura Excel
python-docx>=0.8.11 # Metadati DOCX
chardet>=5.1.0 # Rilevamento codifica
squarify>=0.4.3 # Grafici treemap
psutil>=5.9.0 # Monitoraggio sistema
pywin32>=305 # API Windows
- Sistema Operativo: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4GB minimo (8GB consigliato)
- Disco: 100MB spazio disponibile
Monitoraggio in Tempo Reale
- ✓ Rilevamento creazione file/cartelle
- ✓ Rilevamento eliminazione file/cartelle
- ✓ Rilevamento modifica contenuto
- ✓ Rilevamento rinominazione
- ✓ Rilevamento spostamento tra cartelle
- ✓ Distinzione tra operazioni file vs directory
- ✓ Debouncing intelligente per file grandi
- ✓ Supporto operazioni massive (batch)
Estrazione Metadati (47 moduli specializzati)
- ✓ Codice sorgente: righe, classi, funzioni, import
- ✓ Immagini: dimensioni, EXIF, formato, DPI
- ✓ Audio: durata, bitrate, artista, album
- ✓ Video: codec, risoluzione, frame rate, durata
- ✓ Documenti: pagine, parole, autore, data creazione
- ✓ Fogli di calcolo: numero fogli, righe, colonne
- ✓ Presentazioni: numero diapositive
- ✓ Compressi: file contenuti, dimensione decompressa
- ✓ Database: tabelle, record
- ✓ Eseguibili: versione, firma digitale, architettura
- ✓ Log: prima/ultima voce, numero righe
- ✓ Configurazioni: formato rilevato
Visualizzazione Dati (18 tipi di grafici)
- ✓ Torta: Distribuzione operazioni
- ✓ Barre: Top tipi file
- ✓ Timeline: Linea temporale eventi
- ✓ Treemap: Gerarchia tipi
- ✓ Istogramma: Distribuzione per ora
- ✓ Pareto: Analisi 80/20
- ✓ Linea: Evoluzione temporale giornaliera
- ✓ Boxplot: Distribuzione dimensioni
- ✓ Radar: Eventi per ora/giorno/tipo
- ✓ Heatmap: Mappa calore temporale
- ✓ Scatter: Dimensione vs tempo
- ✓ Sankey: Flusso operazioni/tipi/percorsi
- ✓ Dotplot: Distribuzione dimensioni
- ✓ Albero: Struttura directory
Filtri Avanzati
- ✓ Per tipo operazione
- ✓ Per tipo file (estensione)
- ✓ Per intervallo date
- ✓ Per nome/testo contenuto
- ✓ Combinazione filtri multipli
- ✓ Tasso filtraggio tempo reale
- ✓ Sincronizzazione con menu principale
Esportazione Dati
- ✓ Excel (.xlsx) - con formattazione
- ✓ CSV (.csv) - delimitato da virgola
- ✓ JSON (.json) - strutturato
- ✓ XML (.xml) - gerarchico
- ✓ SQLite (.db) - database completo
- ✓ Testo (.txt) - semplice
- ✓ Opzioni: solo visibili, filtri attivi, selezione
Internazionalizzazione
- ✓ 6 lingue supportate
- ✓ Traduzione completa interfaccia
- ✓ Traduzione metadati
- ✓ Traduzione tipi operazione
- ✓ Cambio in tempo reale (senza riavvio)
- ✓ Persistenza preferenza
- ✓ Fallback inglese
- ✓ Nomi descrittivi e autoesplicativi
- ✓ Funzioni piccole e focalizzate (< 50 righe)
- ✓ Evitare numeri magici (usare costanti)
- ✓ Documentazione nel codice (docstring)
- ✓ Formattazione consistente
- ✓ Evitare duplicazione codice (DRY)
- ✓ Lazy loading metadati
- ✓ Cache risultati frequenti
- ✓ Elaborazione asincrona
- ✓ Batch processing
- ✓ Indici ottimizzati nel database
- ✓ Uso efficiente memoria
- ✓ Modularizzazione estrema (200+ moduli)
- ✓ Separazione responsabilità
- ✓ Basso accoppiamento
- ✓ Alta coesione
- ✓ Pattern nomenclatura consistenti
- Nuovo tipo grafico: Ereditare da
data/GeradorEstatisticas/gst_01_base_gerador.py - Nuovo tipo evento: Ereditare da
services/ob_02_BaseEvento.py - Nuova colonna: Aggiungere getter in
services/ob_09_GerenciadorColunas.py - Nuova lingua: Creare
linceu_XX.tsinsource/locale/ - Nuovo filtro: Aggiungere in
tools/GerenciamentoAdministradorFiltros/
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Database principale (SQLite)language_config.json- Preferenza linguacolunas_coloridas.json- Configurazione coloricores_operacoes.json- Colori per tipo operazioneconfig.json- Impostazioni generali
Sistema log con rotazione automatica in:
%APPDATA%/Linceu_Lighthouse/logs/
Autori: Fernando Nillsson Cidade
Versione: v0.1.3.0
Licenza: GNU Affero General Public License v3.0 (AGPL-3.0)
Per maggiori informazioni, consultare la documentazione specifica di ogni modulo nel codice sorgente.
Hinweis: Dieses Repository bezieht sich auf die Version v0.1.3.0 des Linceu Lighthouse Projekts. Unterstützen Sie das Projekt und erwerben Sie die kostenpflichtige Version über den Link: Über Microsoft Store installieren
Klicken Sie hier, um die README auf Deutsch zu erweitern
Projekt: LINCEU LIGHTHOUSE
Version: v0.1.3.0
Autoren: Fernando Nillsson Cidade
Beschreibung: Sichtbarkeit und Kontrolle über Ihre Dateien
Linceu Lighthouse ist ein Überwachungstool, das die Prinzipien der Dateiintegritätsüberwachung (File Integrity Monitoring - FIM) anwendet, um ein detailliertes und transparentes Protokoll aller Aktivitäten in Ihren wichtigsten Verzeichnissen bereitzustellen.
Anstatt die Absicht hinter einer Änderung zu interpretieren, konzentriert es sich darauf, jede Operation faktisch zu erfassen—Erstellung, Änderung, Löschung und Umbenennung—und gibt Ihnen vollständige Kontrolle und Kenntnis darüber, was geschieht.
Hauptanwendungsfälle
Linceu Lighthouse bietet die notwendige Sichtbarkeit für verschiedene praktische Szenarien:
- Prüfung von Ordneraktivitäten: Ideal für Umgebungen, in denen mehrere Benutzer oder Prozesse auf dieselben Verzeichnisse zugreifen. Erfahren Sie genau, wann eine Datei geändert wurde, wer sie umbenannt hat oder warum ein Dokument gelöscht wurde.
- Versions- und Projektkontrolle: Überwachen Sie Projektordner, um den Arbeitsablauf zu verstehen. Sehen Sie die Historie der Änderungen im Quellcode, in Designdokumenten oder anderen Materialien und helfen Sie, versehentliche Verluste oder unbefugte Änderungen zu verhindern.
- Dateiorganisation und -bereinigung: Identifizieren Sie temporäre, doppelte oder lange nicht geänderte Dateien. Nutzen Sie die Berichte, um fundierte Entscheidungen darüber zu treffen, was archiviert, verschoben oder gelöscht werden soll, und halten Sie Ihre Verzeichnisse organisiert.
- Untersuchung spezifischer Ereignisse: Wenn eine wichtige Datei verschwindet oder ein Projekt nicht mehr funktioniert, bietet Linceu Lighthouse die chronologische Ereignisgeschichte, um Ihnen zu helfen, die Grundursache des Problems zu verfolgen.
Wie Funktioniert Linceu Lighthouse?
Der Prozess ist unkompliziert und konzentriert sich darauf, klare Daten für Ihre Analyse bereitzustellen:
- Festlegung der Basislinie (Baseline): Beim Start der Überwachung eines Verzeichnisses führt Linceu Lighthouse einen vollständigen Scan durch, um eine anfängliche "Momentaufnahme" des Zustands aller Dateien und Ordner zu erstellen.
- Kontinuierliche Überwachung: Von der Basislinie aus überwacht das Tool in Echtzeit und zeichnet jedes Ereignis der Erstellung, Änderung, Löschung, Verschiebung oder Umbenennung auf, das im Verzeichnis auftritt.
- Analyse und Bericht: Jede Abweichung von der Basislinie wird sofort in der grafischen Oberfläche aufgelistet. Von dort aus haben Sie die volle Macht, zu analysieren, was passiert ist, und die vom Software angebotenen Tools zu nutzen.
Analysetools zu Ihrer Verfügung
Um das große Volumen an Überwachungsdaten in nützliche Informationen zu verwandeln, bietet Linceu Lighthouse:
- Erweiterte Filter: Verlieren Sie sich nicht in Tausenden von Ereignissen. Isolieren Sie schnell, was wichtig ist, indem Sie nach Operationstyp (z. B. nur gelöschte Dateien anzeigen), nach Datum, nach Erweiterung (.docx, .jpg) oder nach Benutzer filtern.
- Statistikvisualisierung: Verwandeln Sie Rohdaten in visuelle Einblicke. Mit intuitiven Diagrammen können Sie Aktivitätsmuster verstehen, wie z. B. Spitzenzeiten für Änderungen, die am häufigsten geänderten Dateitypen und vieles mehr.
- Flexibler Datenexport: Erstellen Sie eine dauerhafte und prüfbare Aufzeichnung. Exportieren Sie Überwachungsprotokolle in verschiedene Formate (Excel, CSV, JSON, XML), sei es zur Archivierung, zum Teilen mit Ihrem Team oder zum Importieren in andere Systeme.
SCHNELLSTARTANLEITUNG:
So verwenden Sie:
- Führen Sie die Anwendung aus, um die grafische Oberfläche zu starten.
- Wählen Sie ein zu überwachendes Verzeichnis aus.
- Verwenden Sie die Schaltflächen und Menüs, um die Überwachung zu starten/stoppen, Filter anzuwenden, Daten zu exportieren und Statistiken anzuzeigen.
DETAILLIERTE BEDIENUNGSANLEITUNG:
Systemanforderungen: - Betriebssystem: Windows 10 oder höher.
Installation: - Installieren Sie die ausführbare Datei des Programms, folgen Sie den Anweisungen des Installationsprogramms und führen Sie das Programm aus.
Ersteinrichtung: - Die Oberfläche wird mit einer leeren Überwachungstabelle angezeigt. - Die Standardsprache wird entsprechend den Systemeinstellungen ausgewählt. - Beachten Sie die linke Seitenleiste, um auf die Hauptfunktionen zuzugreifen.
Verzeichnisüberwachung: 1. Verzeichnis Auswählen: - Klicken Sie auf die Schaltfläche "Verzeichnis Auswählen" oder wählen Sie "Datei → Verzeichnis Auswählen" - Der Pfad des ausgewählten Verzeichnisses wird über der Tabelle angezeigt
2. Überwachung Starten/Stoppen:
- Klicken Sie auf die Schaltfläche "Starten/Stoppen" oder wählen Sie "Datei → Starten/Stoppen"
- Ein anfänglicher Scan des Verzeichnisses wird mit Fortschrittsbalken durchgeführt
- Um die Überwachung zu stoppen, klicken Sie erneut auf dieselbe Schaltfläche
Hauptoberfläche: - Menüleiste: Zugriff auf alle Programmfunktionen - Seitenleiste: Schaltflächen für schnelle Aktionen - Verzeichnisbezeichnung: Zeigt das überwachte Verzeichnis an - Ergebnisbezeichnung: Zeigt den aktuellen Status der Operation an - Datentabelle: Zeigt alle Überwachungsereignisse an - Fortschrittsbalken: Sichtbar während langwieriger Operationen
Standardfelder der Tabelle:
- Operationstyp: Hinzugefügt, Gelöscht, Geändert, Umbenannt oder Verschoben
- Name: Dateiname
- Vorheriges Verzeichnis: Ursprünglicher Speicherort der Datei (falls zutreffend)
- Aktuelles Verzeichnis: Aktueller Speicherort der Datei
- Erstellungsdatum: Datum, an dem die Datei erstellt wurde
- Änderungsdatum: Datum der letzten Änderung
- Typ: Dateityp/Erweiterung
Filter und Suche: 1. Schnellfilter: - Im Menü "Einstellungen → Filter" aktivieren/deaktivieren Sie Operationstypen (Verschoben, Umbenannt, Hinzugefügt, Gelöscht, Geändert)
2. Erweiterte Filter:
- Zugriff über "Einstellungen → Filter → Erweiterte Filter"
- Operationsfilter: Wählen Sie anzuzeigende Operationstypen aus
- Suche: Suchen Sie nach Text in Namen und Verzeichnissen
- Erweiterungsfilter: Filtern Sie nach bestimmten Dateitypen
- Datumsfilter: Definieren Sie den Zeitraum für Ereignisse
- Verwenden Sie die Kalenderschaltfläche zur Datumsauswahl
- "Filter Löschen" setzt alle Einstellungen zurück
Statistikvisualisierung: - Zugriff über die Schaltfläche "Statistiken" oder "Datei → Statistiken" - Verfügbare Diagramme: * Operationsverteilung: Anteil jedes Operationstyps * Top 10 Dateitypen: Häufigste Dateitypen * Operations-Zeitleiste: Zeitleiste der Ereignisse * Baumkarte: Visualisierung der Größe nach Typen * Verteilung nach Stunde: Zeiten mit den meisten Operationen * Pareto-Analyse: Häufigkeit und kumulativer Prozentsatz * Operationen nach Tag: Nach Datum gruppierte Operationen - Diagramme speichern: Klicken Sie auf "Alle Speichern" und wählen Sie ein Ziel
Datenexport: - Klicken Sie auf "Speichern Unter" oder "Datei → Speichern Unter" - Verfügbare Formate: * Excel (.xlsx) * CSV (.csv) * Text (.txt) * JSON (.json) * XML (.xml) * Datenbank (.db) - Für zukünftige Exporte desselben Satzes verwenden Sie "Datei → Speichern"
Spaltenkonfiguration: - Zugriff über "Einstellungen → Spalten Konfigurieren" - Aktivieren/Deaktivieren Sie gewünschte Spalten in der Tabelle: (Operationstyp, Name, Vorheriges Verzeichnis, Aktuelles Verzeichnis, usw.) - Änderungen werden sofort angewendet - Standardwiederherstellung: "Einstellungen → Spalten Konfigurieren → Spalten Zurücksetzen"
Sprachwechsel: - Zugriff über "Optionen → Sprache" und wählen Sie die gewünschte Sprache - Das Programm wird nach Bestätigung mit der neuen Sprache neu gestartet
Fehlerbehebung: 1. Überwachung startet nicht: - Überprüfen Sie die Zugriffsberechtigungen für das Verzeichnis - Stellen Sie sicher, dass kein anderes Programm dasselbe Verzeichnis überwacht - Starten Sie die Anwendung neu
2. Ereignisse werden nicht angezeigt:
- Überprüfen Sie, ob die Überwachung aktiv ist
- Prüfen Sie, ob Filter keine Ereignisse verbergen
- Testen Sie durch manuelles Ändern einer Datei
3. Hoher Ressourcenverbrauch:
- Vermeiden Sie die Überwachung von Systemverzeichnissen oder solchen mit Tausenden von Dateien
- Überwachen Sie spezifische Unterverzeichnisse anstelle von Stammverzeichnissen
4. Fehler in den Statistiken:
- Stellen Sie sicher, dass genügend Ereignisse vorhanden sind, um Diagramme zu generieren
- Überprüfen Sie, ob alle Bibliotheken korrekt installiert sind
Linceu Lighthouse ist eine Desktop-Anwendung, die in Python/PySide6 entwickelt wurde und Dateisystem-Operationen in Echtzeit überwacht (Erstellung, Änderung, Löschung, Umbenennung, Verschiebung). Sie bietet erweiterte statistische Analysen, Datenvisualisierung und Export in mehreren Formaten.
- GUI-Framework: PySide6 (Qt6)
- Datenanalyse: pandas, numpy
- Visualisierung: matplotlib, seaborn, plotly
- Datenbank: SQLite3 (mit WAL-Optimierungen)
- Multithreading: QThread, concurrent.futures
- Internationalisierung: Qt Linguist (6 Sprachen)
📂 source/gui/ - Ebene der grafischen Benutzeroberfläche
ic_01_InterfaceMonitor.py- Hauptfenster der Anwendungic_02_Inicializador.py- Initialisierung von GUI-Komponentenic_03_Configurador.py- Konfiguration von Layouts und Widgetsic_04_Atualizador.py- Aktualisierung der Oberflächeic_05_GerenciadorProgresso.py- Fortschrittsbalkenic_06_GerenciadorMensagens.py- Benachrichtigungssystemic_07_ManipuladorTabela.py- Tabellenoperationenic_08_Internacionalizador.py- Übersetzungssystemic_09_GerenciadorDesempenho.py- CPU/RAM/Datenträger-Diagrammeic_10_EstruturaDiretoriosWidget.py- Baumansicht
Verantwortlich für die Echtzeit-Überwachung der Systemleistung.
Verwaltet die Baumansicht sowie Datei-/Ordneroperationen.
📂 source/services/ - Ebene der Geschäftslogik
ob_01_Observador.py- Überwachung via ReadDirectoryChangesWob_02_BaseEvento.py- Basisklasse für Eventsob_03_DiretorioScanner.py- Initialer rekursiver Scanob_04_EventoAdicionado.py- Verarbeitung von Erstellungenob_05_EventoExcluido.py- Verarbeitung von Löschungenob_06_EventoModificado.py- Erkennung von Änderungenob_07_EventoRenomeado.py- Erkennung von Umbenennungenob_08_EventoMovido.py- Erkennung von Verschiebungenob_09_GerenciadorColunas.py- Konfiguration sichtbarer Spaltenob_10_GerenciadorTabela.py- Datentabellenoperationen
- GerenciamentoBaseEvento/ (20 Module) - Event- und Datenbankverwaltung
- GerenciamentoDiretorioScanner/ (9 Module) - Verzeichnisscan
- GerenciamentoEventoModificado/ (7 Module) - Änderungsverarbeitung
- GerenciamentoEventoMovido/ (9 Module) - Verschiebungserkennung
- GerenciamentoMetadados/ (47 Module) - Spezialisierte Metadatenextraktion
- GerenciamentoObservador/ (13 Module) - Beobachtersteuerung
- GerenciamentoTabela/ (47 Module) - Erweiterte Tabellenoperationen
📂 source/ui/ - Erweiterte UI-Komponenten
ui_01_GerenciadorBotoes.py- Aktionsschaltflächenui_02_GerenciadorBotoesUI.py- Button-Factoryui_03_GerenciadorMenusUI.py- Menüleisteui_04_GerenciadorEventosUI.py- Event-Handlerui_05_GerenciadorProgressoUI.py- Fortschritts-Feedbackui_06_GerenciadorEstatisticasUI.py- Statistikfensterui_07_GerenciadorDados.py- Speichern/Ladenui_11_DialogoCores.py- Anpassbarer Farbwählerui_12_LocalizadorQt.py- Übersetzungssystemui_13_TradutorMetadadosQt.py- Metadatenübersetzung
- GerenciamentoBotoes/ (6 Module)
- GerenciamentoDialogoCores/ (8 Module)
- GerenciamentoEstatisticasUI/ (31 Module)
- GerenciamentoEventosUI/ (11 Module)
- GerenciamentoLocalizadorQt/ (14 Module)
- GerenciamentoMenusUI/ (23 Module)
- GerenciamentoTradutorMetadadosQt/ (9 Module)
📂 source/data/ - Erstellung von Statistiken und Diagrammen
- Torte - Verteilung der Operationen
- Balken - Top 30 Dateitypen
- Zeitleiste - Zeitlinie
- Treemap - Baumkarte
- Histogramm - Verteilung nach Stunde
- Pareto - 80/20-Analyse
- Linie - Zeitliche Entwicklung
- Boxplot - Größenverteilung
- Radar - Ereignisse pro Stunde/Tag
- Heatmap - Zeitliche Heatmap
- Scatter - Größe vs. Zeit
- Sankey (3 Varianten) - Fluss der Operationen
- Dotplot - Größenverteilung
- Baum - Verzeichnisstruktur
📂 source/tools/ - UI-Werkzeuge und Hilfsprogramme
fil_01_Filtros.py- Fenster für erweiterte Filterfil_02_AdministradorCalendario.py- Datumswählerfil_03_AdministradorFiltros.py- Filterlogik
- GerenciamentoAdministradorFiltros/ (10 Module)
- GerenciamentoFiltros/ (10 Module)
📂 source/utils/ - Querschnittliche Utilities
- LogManager.py - Zentrales Logsystem mit automatischer Rotation
- IconUtils.py - Verwaltung von Icons und visuellen Ressourcen
- CaminhoPersistenteUtils.py - Plattformübergreifende Konfigurationspfade
- ApplicationPathUtils.py - Pfade der Anwendung und Ressourcen
📂 source/locale/ - Internationalisierung
linceu_pt_BR.ts- Portugiesisch (Brasilien) - 600+ Stringslinceu_en_US.ts- Englisch (USA)linceu_es_ES.ts- Spanisch (Spanien)linceu_fr_FR.ts- Französisch (Frankreich)linceu_it_IT.ts- Italienisch (Italien)linceu_de_DE.ts- Deutsch (Deutschland)
compile_translations.py- Skript zur Übersetzungskompilierung und -validierung
- [S] Single Responsibility: Jedes Modul hat eine eindeutige Verantwortung
- [O] Open/Closed: Erweiterbar durch Vererbung (BaseGerador, BaseEvento)
- [L] Liskov Substitution: Alle Diagramm-Generatoren sind austauschbar
- [I] Interface Segregation: Spezifische Schnittstellen pro Eventtyp
- [D] Dependency Inversion: Dependency Injection (loc, interface, db_path)
- Observer Pattern: Dateiüberwachung
- Factory Pattern: Erstellung von Buttons und Komponenten
- Strategy Pattern: Unterschiedliche Exportstrategien
- Singleton Pattern: LogManager, DatabaseWriter
- Model-View-Controller: EventTableModel + QTableView
- Template Method: BaseGerador definiert das Gerüst
- Facade Pattern: GerenciadorEstatisticasUI vereinfacht den Zugriff
- QThread für langlaufende Operationen (Scan, Diagramme)
- ThreadPoolExecutor für parallele Verarbeitung
- DatabaseWriter mit dediziertem Thread
- Intelligentes Debouncing für Events
- Cache mit selektiver Invalidierung
- Batch-Verarbeitung für Einfügungen
- SQLite im WAL-Modus (Write-Ahead Logging)
- Indizes auf häufigen Spalten
- Batch-Transaktionen
- PRAGMA-Optimierungen
- Dedizierter Thread für I/O
1. INITIALISIERUNG
└─> QApplication.instance()
└─> Internacionalizador.inicializar_sistema_traducao()
└─> InterfaceMonitor.__init__()
2. VERZEICHNISAUSWAHL
└─> GerenciadorBotoes.selecionar_diretorio()
└─> QFileDialog.getExistingDirectory()
3. START DER ÜBERWACHUNG
└─> Observador.iniciar()
├─> DiretorioScanner.scan_directory() [Thread]
└─> Observador.monitorar() [Thread]
4. EREIGNISVERARBEITUNG
└─> Observador.processar_evento()
├─> EventoAdicionado.processar()
├─> EventoExcluido.processar()
├─> EventoModificado.processar()
├─> EventoRenomeado.processar()
└─> EventoMovido.verificar_movimentacao()
5. OBERFLÄCHENAKTUALISIERUNG
└─> InterfaceMonitor.inserir_evento_streaming()
└─> GerenciadorTabela.atualizar_linha_mais_recente()
6. STATISTIKERZEUGUNG
└─> GerenciadorEstatisticasUI.mostrar_estatisticas()
└─> GeradorEstatisticas._gerar_todos_graficos()
7. DATENEXPORT
└─> GerenciadorBotoes.exportar_dados()
├─> Excel: pandas.to_excel()
├─> CSV: pandas.to_csv()
├─> JSON: json.dump()
└─> XML: ElementTree
8. SPRACHWECHSEL
└─> GerenciadorEventosUI.alterar_idioma()
└─> LocalizadorQt.set_idioma()
PySide6>=6.5.0 # Qt6-Framework
pandas>=2.0.0 # Datenanalyse
matplotlib>=3.7.0 # Diagrammvisualisierung
seaborn>=0.12.0 # Statistische Diagramme
plotly==5.22.0 # Interaktive Diagramme
Pillow>=10.0.0 # Bildverarbeitung
tinytag>=1.10.0 # Audio-Metadaten
pymediainfo>=6.0.0 # Video-Metadaten
PyPDF2>=3.0.0 # PDF-Metadaten
openpyxl>=3.1.0 # Excel Lesen/Schreiben
python-docx>=0.8.11 # DOCX-Metadaten
chardet>=5.1.0 # Encoding-Erkennung
squarify>=0.4.3 # Treemap-Diagramme
psutil>=5.9.0 # Systemüberwachung
pywin32>=305 # Windows-API
- Betriebssystem: Windows 10/11 (64-bit)
- Python: 3.10+
- RAM: 4 GB Minimum (8 GB empfohlen)
- Speicher: 100 MB freier Speicherplatz
Echtzeitüberwachung
- ✓ Erkennung von Datei-/Ordnererstellungen
- ✓ Erkennung von Datei-/Ordnerlöschungen
- ✓ Erkennung von Inhaltsänderungen
- ✓ Erkennung von Umbenennungen
- ✓ Erkennung von Verschiebungen zwischen Ordnern
- ✓ Unterscheidung zwischen Datei- und Ordneroperationen
- ✓ Intelligentes Debouncing für große Dateien
- ✓ Unterstützung für Massenoperationen (Batch)
Metadatenextraktion (47 spezialisierte Module)
- ✓ Quellcode: Zeilen, Klassen, Funktionen, Imports
- ✓ Bilder: Abmessungen, EXIF, Format, DPI
- ✓ Audio: Dauer, Bitrate, Künstler, Album
- ✓ Video: Codec, Auflösung, Bildrate, Dauer
- ✓ Dokumente: Seiten, Wörter, Autor, Erstellungsdatum
- ✓ Tabellenkalkulationen: Anzahl Blätter, Zeilen, Spalten
- ✓ Präsentationen: Anzahl der Folien
- ✓ Archive: enthaltene Dateien, entpackte Größe
- ✓ Datenbanken: Tabellen, Datensätze
- ✓ Ausführbare Dateien: Version, digitale Signatur, Architektur
- ✓ Logs: erste/letzte Zeile, Zeilenanzahl
- ✓ Konfigurationen: erkannten Format-Typ
Datenvisualisierung (18 Diagrammtypen)
- ✓ Torte: Verteilung der Operationen
- ✓ Balken: Top-Dateitypen
- ✓ Zeitleiste: Ereignis-Zeitleiste
- ✓ Treemap: Typen-Hierarchie
- ✓ Histogramm: Verteilung nach Stunde
- ✓ Pareto: 80/20-Analyse
- ✓ Linie: Tägliche zeitliche Entwicklung
- ✓ Boxplot: Größenverteilung
- ✓ Radar: Ereignisse pro Stunde/Tag/Typ
- ✓ Heatmap: Zeitliche Heatmap
- ✓ Scatter: Größe vs. Zeit
- ✓ Sankey: Fluss von Operationen/Typen/Pfaden
- ✓ Dotplot: Größenverteilung
- ✓ Baum: Verzeichnisstruktur
Erweiterte Filter
- ✓ Nach Operationstyp
- ✓ Nach Dateityp (Erweiterung)
- ✓ Nach Datumsbereich
- ✓ Nach Name/enthaltenem Text
- ✓ Kombination mehrerer Filter
- ✓ Filterrate in Echtzeit
- ✓ Synchronisierung mit dem Hauptmenü
Datenexport
- ✓ Excel (.xlsx) - mit Formatierung
- ✓ CSV (.csv) - kommagetrennt
- ✓ JSON (.json) - strukturiert
- ✓ XML (.xml) - hierarchisch
- ✓ SQLite (.db) - vollständige Datenbank
- ✓ Text (.txt) - einfach
- ✓ Optionen: nur sichtbare, aktive Filter, Auswahl
Internationalisierung
- ✓ 6 unterstützte Sprachen
- ✓ Vollständige Übersetzung der Benutzeroberfläche
- ✓ Übersetzung von Metadaten
- ✓ Übersetzung der Operationstypen
- ✓ Änderung in Echtzeit (ohne Neustart)
- ✓ Persistenz der Einstellung
- ✓ Fallback auf Englisch
- ✓ Deskriptive, selbsterklärende Namen
- ✓ Kleine, fokussierte Funktionen (< 50 Zeilen)
- ✓ Vermeiden von Magic Numbers (Konstanten verwenden)
- ✓ Code-Dokumentation (Docstrings)
- ✓ Konsistentes Format
- ✓ Vermeidung von Code-Duplizierung (DRY)
- ✓ Lazy Loading von Metadaten
- ✓ Caching häufiger Ergebnisse
- ✓ Asynchrone Verarbeitung
- ✓ Batch-Verarbeitung
- ✓ Optimierte Datenbankindizes
- ✓ Effiziente Speichernutzung
- ✓ Extreme Modularisierung (200+ Module)
- ✓ Trennung der Verantwortlichkeiten
- ✓ Geringe Kopplung
- ✓ Hohe Kohäsion
- ✓ Konsistente Benennungskonventionen
- Neuer Diagrammtyp: Von
data/GeradorEstatisticas/gst_01_base_gerador.pyerben - Neuer Eventtyp: Von
services/ob_02_BaseEvento.pyerben - Neue Spalte: Getter in
services/ob_09_GerenciadorColunas.pyhinzufügen - Neue Sprache:
linceu_XX.tsinsource/locale/erstellen - Neuer Filter: In
tools/GerenciamentoAdministradorFiltros/hinzufügen
futures==3.0.5
kaleido==0.2.1
plotly==5.22.0
monitoramento.db- Hauptdatenbank (SQLite)language_config.json- Sprachpräferenzcolunas_coloridas.json- Farbkodierungcores_operacoes.json- Farben je Operationstypconfig.json- Allgemeine Einstellungen
Protokollsystem mit automatischer Rotation unter:
%APPDATA%/Linceu_Lighthouse/logs/
Autoren: Fernando Nillsson Cidade
Version: v0.1.3.0
Lizenz: GNU Affero General Public License v3.0 (AGPL-3.0)
Für weitere Informationen siehe die spezifische Dokumentation jedes Moduls im Quellcode.



































