Skip to main content

Uma biblioteca para monitorar atividades de teclado e mouse.

Project description

mouse-keyboard-tracker

Este projeto é uma biblioteca para monitorar atividades de teclado e mouse que registra eventos de uso e períodos de inatividade. Ele é útil para rastrear a produtividade e o uso do computador ao longo do tempo, gerando logs detalhados de todas as ações realizadas pelo usuário.

Instalação

Você pode instalar a biblioteca usando pip:

pip install mouse_keyboard_tracker

Uso

Aqui está um exemplo de como usar a biblioteca:

from mouse_keyboard_tracker import iniciar_monitoramento, encerrar_monitoramento
import time

def main():
    horario_inicio, logger, monitor_ociosidade = iniciar_monitoramento()

    if not horario_inicio or not logger or not monitor_ociosidade:
        print("Falha ao iniciar o monitoramento.")
        return

    try:
        while True:
            time.sleep(10)
    except KeyboardInterrupt:
        encerrar_monitoramento(horario_inicio, logger, monitor_ociosidade)

if __name__ == "__main__":
    main()

Estrutura do Projeto

Arquivos e seus papéis

  • config.py: Contém a classe Config que define várias constantes usadas em todo o projeto, como tempos de ociosidade, intervalos de checagem e tamanhos mínimos de arquivos. Este arquivo centraliza a configuração do sistema, facilitando ajustes e manutenção.

  • eventos.py: Implementa a classe MonitorEventos que captura eventos de teclado e mouse usando a biblioteca pynput. Ele registra esses eventos em logs e notifica observadores sobre novos eventos. Utiliza o padrão Observer para notificar outras partes do sistema sobre eventos de entrada.

  • log_manager.py: Contém a classe LogManager que gerencia os arquivos de log, verificando períodos de inatividade e movendo os logs para diretórios de relatórios organizados por data e período do dia. Este arquivo garante que os logs sejam armazenados e organizados corretamente.

  • logger.py: Define a classe EventoLogger que configura e gerencia loggers para diferentes tipos de eventos (teclado, mouse, ociosidade). Inclui métodos para registrar eventos e configurar o logger principal. Este arquivo centraliza a lógica de logging, facilitando a manutenção e a expansão.

  • ociosidade.py: Implementa a classe MonitorOciosidade que verifica períodos de inatividade do usuário. Utiliza o padrão Singleton para garantir que apenas uma instância da classe exista. Registra eventos de ociosidade e notifica quando o usuário está inativo por um período prolongado.

  • main.py: Arquivo principal que inicializa e executa o monitoramento. Configura loggers, inicia a captura de eventos e verifica a ociosidade em threads separadas. Este arquivo orquestra a interação entre os diferentes componentes do sistema.

  • requirements.txt: Lista as dependências do projeto, garantindo que todas as bibliotecas necessárias sejam instaladas. Atualmente, inclui a biblioteca pynput para captura de eventos de teclado e mouse.

Padrões de Projeto Utilizados

  • Singleton: Utilizado na classe MonitorOciosidade para garantir que apenas uma instância da classe exista, evitando conflitos e garantindo consistência nos dados de ociosidade.

  • Observer: Utilizado na classe MonitorEventos para notificar observadores (como MonitorOciosidade) sobre novos eventos de entrada, permitindo uma arquitetura desacoplada e extensível.

Por que esses padrões foram escolhidos?

  • Singleton: Garante que a verificação de ociosidade seja centralizada e consistente, evitando múltiplas instâncias que poderiam levar a resultados conflitantes.

  • Observer: Permite que diferentes partes do sistema reajam a eventos de entrada sem estarem fortemente acopladas, facilitando a adição de novos tipos de observadores no futuro.

Threads Utilizadas

O projeto utiliza três threads principais para realizar o monitoramento de atividades. A primeira thread é responsável por capturar eventos de teclado, enquanto a segunda thread captura eventos de mouse, ambas implementadas na classe MonitorEventos. A terceira thread, implementada na classe MonitorOciosidade, verifica periodicamente a ociosidade do usuário. Essas threads são iniciadas no arquivo main.py e permitem que o monitoramento de eventos e a verificação de ociosidade ocorram simultaneamente, garantindo uma captura eficiente e em tempo real das atividades do usuário.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mouse_keyboard_tracker-0.1.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mouse_keyboard_tracker-0.1.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file mouse_keyboard_tracker-0.1.0.tar.gz.

File metadata

  • Download URL: mouse_keyboard_tracker-0.1.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for mouse_keyboard_tracker-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e6a32d53d07b95d56020c0bf9adaaabd3fa05d7eaa2a69a01019a6b1d118e5bc
MD5 976a237ae3582af7e6214268a963ef82
BLAKE2b-256 cffb2c546ea41547b7ecee30a48b830dda5d426302a53d2556a542e4465dee2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mouse_keyboard_tracker-0.1.0.tar.gz:

Publisher: python-publish.yml on victorlcastro-dsa/mouse-keyboard-tracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mouse_keyboard_tracker-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mouse_keyboard_tracker-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba8c8f1eb37953adb62fecfdce6d843f8fa3d2a693b239509ba0f5438ea00655
MD5 8da95fc5a84b70df4b472a0a4c35c78d
BLAKE2b-256 6b96517d8bdc16d69f2ffdbeb2e62b15ab252aa9100caf7d12947d5d6636a667

See more details on using hashes here.

Provenance

The following attestation bundles were made for mouse_keyboard_tracker-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on victorlcastro-dsa/mouse-keyboard-tracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page