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
Configque 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
MonitorEventosque captura eventos de teclado e mouse usando a bibliotecapynput. 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
LogManagerque 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
EventoLoggerque 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
MonitorOciosidadeque 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
pynputpara captura de eventos de teclado e mouse.
Padrões de Projeto Utilizados
-
Singleton: Utilizado na classe
MonitorOciosidadepara garantir que apenas uma instância da classe exista, evitando conflitos e garantindo consistência nos dados de ociosidade. -
Observer: Utilizado na classe
MonitorEventospara notificar observadores (comoMonitorOciosidade) 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6a32d53d07b95d56020c0bf9adaaabd3fa05d7eaa2a69a01019a6b1d118e5bc
|
|
| MD5 |
976a237ae3582af7e6214268a963ef82
|
|
| BLAKE2b-256 |
cffb2c546ea41547b7ecee30a48b830dda5d426302a53d2556a542e4465dee2f
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mouse_keyboard_tracker-0.1.0.tar.gz -
Subject digest:
e6a32d53d07b95d56020c0bf9adaaabd3fa05d7eaa2a69a01019a6b1d118e5bc - Sigstore transparency entry: 158490399
- Sigstore integration time:
-
Permalink:
victorlcastro-dsa/mouse-keyboard-tracker@d37a243ec09499da3c1d74afcf39cf575d38d99d -
Branch / Tag:
refs/tags/mouse-keyboard-tracker - Owner: https://github.com/victorlcastro-dsa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d37a243ec09499da3c1d74afcf39cf575d38d99d -
Trigger Event:
release
-
Statement type:
File details
Details for the file mouse_keyboard_tracker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mouse_keyboard_tracker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8c8f1eb37953adb62fecfdce6d843f8fa3d2a693b239509ba0f5438ea00655
|
|
| MD5 |
8da95fc5a84b70df4b472a0a4c35c78d
|
|
| BLAKE2b-256 |
6b96517d8bdc16d69f2ffdbeb2e62b15ab252aa9100caf7d12947d5d6636a667
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mouse_keyboard_tracker-0.1.0-py3-none-any.whl -
Subject digest:
ba8c8f1eb37953adb62fecfdce6d843f8fa3d2a693b239509ba0f5438ea00655 - Sigstore transparency entry: 158490401
- Sigstore integration time:
-
Permalink:
victorlcastro-dsa/mouse-keyboard-tracker@d37a243ec09499da3c1d74afcf39cf575d38d99d -
Branch / Tag:
refs/tags/mouse-keyboard-tracker - Owner: https://github.com/victorlcastro-dsa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d37a243ec09499da3c1d74afcf39cf575d38d99d -
Trigger Event:
release
-
Statement type: