Skip to main content

Sistema de login Canaimé para gerenciamento de unidades prisionais.

Reason this release was yanked:

Não funciona

Project description

Login Canaimé

Login Canaimé é uma biblioteca Python que fornece uma interface gráfica moderna para realizar o login no Sistema Canaimé, um sistema desenvolvido para gerenciar unidades prisionais e facilitar o controle de dados de reeducandos, dados administrativos, visitantes e acesso em tempo real a informações para órgãos como a Justiça, Defensoria Pública e Ministério Público.

A biblioteca integra o Model, View e Controller para fornecer um fluxo de login robusto e reutilizável. Além disso, ela utiliza o PySide6 para a interface gráfica e o Playwright para automatizar o processo de login, permitindo a execução em modo headless (para produção) ou não-headless (para testes).

Características

  1. Interface moderna e personalizável:

    • Janela sem borda e fundo translúcido;
    • Campos de e-mail e senha (este último com caracteres ocultos);
    • Ícone personalizado (baixado a partir de uma URL);
    • Spinner de carregamento (GIF animado) durante o processo de login;
    • Janela arrastável (mesmo sem borda);
  2. Fluxo de login assíncrono:

    • Utiliza o QThread (via subclassificação de QThread) para executar o processo de login sem travar a interface;
  3. Retorno do resultado:

    • Retorna o objeto Page logado (do Playwright) para uso em aplicações reais;
    • Permite também, em modo de desenvolvimento, obter as credenciais digitadas.

Estrutura do Projeto

📦 login-canaime_project/        # Diretório raiz do projeto
├── ⚙️ config.py                 # Configurações globais do projeto
├── 📋 requirements.txt          # Lista de dependências do projeto
├── 🛡️ LICENSE                   # Arquivo de licença do projeto
├── 📖 README.md                 # Documentação do projeto
└── 📦 loginCanaime/             # Pacote principal
    ├── 📄 __init__.py           # Inicializa o pacote e expõe a classe Login
    ├── 📄 __main__.py           # Ponto de entrada do pacote loginCanaime
    ├── 📄 model.py              # Lógica de negócio (Model, utilizando Playwright)
    ├── 📄 view.py               # Interface gráfica (View, utilizando PySide6)
    ├── 📄 controller.py         # Controle de fluxo (Controller, utilizando QThread)
    └── 📄 main.py               # Funções principais para login

Instalação

O pacote pode ser instalado via pip. Depois de empacotar o projeto (o nome de distribuição é login-canaime), você pode instalá-lo com:

pip install login-canaime

Observação:
O nome do pacote para importação é loginCanaime. Isso significa que, após a instalação, você usará:

from loginCanaime import Login

Uso

Exemplo de Uso em Produção

Para iniciar o fluxo de login e obter o objeto Page logado (útil para integrar com outras aplicações que utilizam o Playwright):

from loginCanaime import Login

# Inicia o login; o parâmetro test_mode=False faz com que o navegador rode em modo headless
page = Login.run(test_mode=False)
if page:
    print("Login efetuado com sucesso!")
    # Utilize o objeto page conforme necessário...
else:
    print("Falha no login ou o login foi cancelado.")

Exemplo de Uso em Desenvolvimento

Se você quiser apenas obter as credenciais digitadas (por exemplo, para testes):

from loginCanaime import Login

credentials = Login.get_credentials(test_mode=False)
print("Credenciais digitadas:", credentials)

Funcionamento Interno

  • Model:
    O módulo model.py utiliza o Playwright para abrir o navegador, navegar até a página de login e preencher os campos de usuário e senha.
    Ele utiliza uma heurística baseada no conteúdo de um elemento específico da página para confirmar o sucesso do login e retorna uma tupla (True, full_name, page) ou (False, "", None).

  • View:
    O módulo view.py implementa a interface gráfica com PySide6, contendo campos para e-mail e senha, botão de login, label de status e um spinner de carregamento (GIF).
    A interface é configurada sem borda, com um ícone personalizado (baixado de uma URL) e permite arrastar a janela.

  • Controller:
    O módulo controller.py conecta a View e o Model. Utiliza um QThread (via subclassificação de QThread na classe LoginThread) para executar o login de forma assíncrona, mantendo a interface responsiva.
    O Controller finaliza o aplicativo automaticamente assim que o login é concluído, retornando o objeto Page logado.

Contribuição

Contribuições são bem-vindas! Se você deseja melhorar o código, adicione novas funcionalidades ou corrigir problemas, sinta-se à vontade para abrir issues ou enviar pull requests.

Contato

Anderson Assunção – andersongomesrr@hotmail.com
Projeto disponível em: https://github.com/A-Assuncao/login-canaime_project

Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENÇA para mais detalhes.


Desenvolvido com ♥ e Python.

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

login_canaime-1.0.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

login_canaime-1.0.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file login_canaime-1.0.1.tar.gz.

File metadata

  • Download URL: login_canaime-1.0.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for login_canaime-1.0.1.tar.gz
Algorithm Hash digest
SHA256 d48e4f1572e0af070f88eaccbe0fe90ce92fa1d10e8466c646df256706756fe6
MD5 42887c7388deadf8d093b0af34f17125
BLAKE2b-256 8e62bd128b38409de83879142faaade7d68e4a27fa4600fb96f94152f86c3272

See more details on using hashes here.

File details

Details for the file login_canaime-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: login_canaime-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for login_canaime-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dc4aa6ffd6ac19f415c03cb43f781009b9f57977d8d40aa4f318e3ec09e03083
MD5 8f3999e9bc9c1e2e44ef60f5f58ebeef
BLAKE2b-256 6c49d46d4bc44d6db2493f1141ddb564d57f89f39223822034b96678e47840d1

See more details on using hashes here.

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