Bot para automatizacao de registros no Vacivida para o COVID19

Overview

VACIBOT v.06 - Bot para automatizacao de registros no Vacivida para o COVID19

by Victor Fragoso - Prefeitura Municipal de Santo André

Email: [email protected]

Phone: +55 11 97079 1572

Date: 24-mar-2021

Version: v.06

Print do Vacivida

O QUE É?

Este script em python tem como objetivo eliminar a necessidade de digitacão manual no sistema de vacinacão do COVID19 do Governo do Estado de Sao Paulo chamado "Vacivida" (https://vacivida.sp.gov.br/).

Como o Vacivida nao possui nenhuma forma de integracão com os bancos de dados das prefeituras dos municipios, nem a possibilidade de fazer upload de uma tabela em Excel, o script se mostrou extremamente importante para agilizar a atualizacao no ranking do Governo do Estado (https://vacinaja.sp.gov.br/vacinometro/) no qual também é utilizado para controle de quais cidades estarão mais propensas a receber mais vacinas, uma vez que no mesmo consta a quantidade de doses enviadas e quantidade de doses aplicadas em cada município, e espera-se que a quantidade de doses aplicadas seja igual ou proximo a quantidade de doses enviadas.

O uso desse script permitiu o que o município de Santo Andre pulasse de 64.419 registros no dia 17/03/2021, para 94.133 no dia 24/03/2021 (ou seja, quase 30 mil registros) sem a necessidade de nenhuma equipe de digitacao, permitindo assim que esses trabalhadores pudessem se preocupar em realizar tarefas de maior valor agregado, como a própria aplicacao de vacinas contra o COVID19.

Esse código é livre, aberto, e qualquer um pode realizar as modificacoes que acharem necessários para implementar em seus próprios sistemas.

Eu espero de coracão que esse codigo possa ajudar de alguma forma na vacinacao do Brasil. <3

Sinta-se a vontade para me contatar se precisar de qualquer auxílio.

CONSIDERACOES TÉCNICAS

  • O uso desse script tem como prerrogativa que o município já possui um sistema interno de controle de vacinacao, com formulário de inscricão dos munícipes e as informacões "check-in" sobre quem tomou as vacinas em um banco de dados.

  • Caso não haja um formulário já existente, é possível que os registros sejam incluídos dentro de um banco de dados e exportados através do bot, bastando alterar as colunas utilizadas no script.

  • O banco de dados utilizado pela Prefeitura de Santo André é o Oracle, e por isso o bot foi feito integrado nele. Mas pode ser portado para qualquer outro banco disponível, bastando alterar as depenedencias e funcões.

  • Por conta do grande volume de dados, o bot foi construído com base em computacão distribuída através do uso da biblioteca Python Ray.io (https://ray.io/) em 36 computadores (com 4 núcleos cada) ligados dentro de uma mesma rede ethernet, formando um cluster com 144 "workers" disponíveis para a automatizacao.

  • Caso não tenha disponível tantos computadores, é possível rodar individualmente o script em um único computador (modo standalone), bastando substituir a quantidade de "workers" por núcleos do processador disponível.

INSTRUCÕES

  1. Instale os softwares

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    sudo apt-get update
    sudo apt install -y python3 python3-pip ray
    
  2. Instale os módulos Python através do PIP

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    pip3 install ray cx_Oracle unidecode lxml unidecode requests
    ou
    python3 -m pip install cx_Oracle unidecode lxml unidecode requests
    
  3. Faca o download do Instant Client OracleDB, converta e instale:

    obs.: Para o modo distribuído é necessário instalar em todas as máquinas do cluster

    wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-basic-linuxx64.rpm
    sudo apt-get install alien libaio1
    sudo alien oracle-instantclientX.X-basic-x.x.x.x.x-1.amd64.rpm
    sudo dpkg -i oracle-instantclient-basic_x.x.x.x.x-2_amd64.deb
    
  4. Altere as credenciais de acesso no arquivo credentials.py seguindo o padrão do arquivo

  5. Adicione uma chave no dictionary_vacivida.py se houver um novo lote sendo aplicado de acordo com o vacivida Obs.: Para isso é necessário acessar o código HTML da página de vacinacao do vacivida e buscar quais chaves estão disponíveis. Você pode buscar diretamente pelo código de alguma chave já existente para encontrar mais facilmente. Irei adicionar um tutorial em breve sobre como fazer isso.

  6. Altere a variavel n_workers para a quantidade de processadores disponíveis

  7. Altere a variável select_query de acordo com a busca necessária em seu banco de dados para encontrar os nomes que precisam ser enviados para o Vacivida

  8. Configure o Script para rodar em modo Standalone ou Distribuido

8.1 - Standalone:

8.1.1 - Alterar a variavel n_workers para quantidade de processadores disponíveis no computador

8.1.2 - Alterar a variavel standalonemode para True

8.2 - Distribuído:

8.2.1 - Alterar a variavel n_workers para quantidade de processadores disponíveis na rede

8.2.2 - Alterar a variavel standalonemode para True

8.2.3 - Execute no terminal do computador principal o comando:

ray start --head --port=6379

8.2.4 - Execute em todos os computadores que estarão vinculados ao cluster o comando:

ray start --address='ip_do_node_principal:6379' --redis-password='5241590000000000'

8.2.5 - Verifique no computador principal se todos os nodes estao habilitados e conectados no cluster:

ray status

Print do Ray Status

  1. Inicie o bot no computador principal com o comando:
python3 vacibot_v06.py

Print do Bot em Execucao 01 Print do Bot em Execucao 02

Dicas:

  1. Para realizar modificacoes, é possível converter os comandos CURL (que foram capturados com a ferramenta de desenvolvedor do chrome) para Python através do link: https://curl.trillworks.com/#python

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Owner
Prefeitura de Santo André
Repositório oficial e colaborativo da Prefeitura de Santo André
Prefeitura de Santo André
A simple telegram bot to help you to remove forward tag from post from any messages . Maded in python3 using @Pyrogram . Developed by @Kunal-Diwan

Frwd-Tag-Remover Telegram Bot to Remove forward tag from any Post . If you need any more modes in repo or If you find out any bugs, mention in @Develo

Kunal Diwan 2 Oct 14, 2022
Token-gate Notion pages

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

John 8 Oct 13, 2022
Trellox Tool is written in Python3 and designed to pull and list Trello boards.

TrelloX Trellox Tool is written in Python3 and designed to list and pull Trello boards. It can be used by penetration testers/bug bounty hunters to de

Ali Fathi Ali Sawehli 1 Dec 05, 2021
A Bot To Get Info Of Telegram messages , Media , Channel id Group ID etc.

Info-Bot A Bot To Get Info Of Telegram messages , Media , Channel id Group ID etc. Get Info Of Your And Messages , Channels , Groups ETC... How to mak

Vɪᴠᴇᴋ 23 Nov 12, 2022
Código que Utiliza Programação Dinâmica para resolver o problema da Moeda

Programação Dinâmica: Modelo baseado em recursão Utiliza a técnica de Memorização Não pode ser aplicada quando existe dependência entre as respostas G

Hemili Beatriz 1 Jan 08, 2022
This is Telegram Files Store Bot by @AbirHasan2005

PyroFilesStoreBot This is Telegram Parmanent Files Store Bot by @AbirHasan2005. Language: Python3 Library: Pyrogram Features: In PM Just Forward or Se

Abir Hasan 168 Dec 19, 2022
Discord Multitool made in python 3.9

XTool Discord Multitool 24 Features: Webhook Delete VC Lagger Fast Token Checker Mass Report [Not Done] Token rape 2K Characters Bypass Block bypass M

Tiie 50 Dec 20, 2022
And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlation Rules are triggered.

ArcSight Integration with TheHive And now, for the first time, you can send alerts via action from ArcSight ESM Console to the TheHive when Correlatio

Amir Hossein Zargaran 3 Jan 19, 2022
🔏 Discordちゃんねる ◆wGFzKUzY7E

使い方 discord.pyをインストール. python -m pip install -r requirements.txtを実行. bot.pyと同じ階層に.tokenを用意. bot.pyを実行. ※現状、使用しているライブラリの関係でWindowsOSは未対応です。 コマンド ニックネーム

Gattxxa 3 Feb 02, 2022
A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

Paul Clarke 1 Jan 16, 2022
this synchronizes my appearances with my calendar

Josh's Schedule Synchronizer Here's the "problem:" I use a spreadsheet to maintain all my public appearances. I check the spreadsheet as often as poss

Josh Long 2 Oct 18, 2021
An Unofficial API for 1337x, Piratebay, Nyaasi, Torlock, Torrent Galaxy, Zooqle, Kickass, Bitsearch, and MagnetDL

An Unofficial API for 1337x, Piratebay, Nyaasi, Torlock, Torrent Galaxy, Zooqle, Kickass, Bitsearch, and MagnetDL

Neeraj Kumar 130 Dec 27, 2022
Python 3 SDK/Wrapper for Huobi Crypto Exchange Api

This packages intents to be an idiomatic PythonApi wrapper for https://www.huobi.com/ Huobi Api Doc: https://huobiapi.github.io/docs Showcase TODO Con

3 Jul 28, 2022
A bot to display per user data from the Twitch Leak

twitch-leak-bot-discord A bot to display per user data from the Twitch Leak by username Where's the data? I can't and don't want to supply the .csv's

SSSEAL-C 0 Nov 08, 2022
Python powered spreadsheets

Marmir is powerful and fun Marmir takes Python data structures and turns them into spreadsheets. It is xlwt and google spreadsheets on steroids. It al

Brian Ray 170 Dec 14, 2022
Telegram RAT written in Python

teleRAT Python based RAT that uses Telegram for sending commands and receiving data to and from a victim computer. Setup.py Insert your API key into t

96 Jan 01, 2023
Projeto de estudantes do primeiro período do CIn - UFPE voltado para a criação de um sistema interativo no fechamento da disciplina IF669 - Introdução a Programação.

Projeto Game: Dona da Lua Alunos: Beatriz Férre Clara Kenderessy Matheus Silva Rafael Baltar Roseane Oliveira Samuel Marsaro Sinopse O Cebolinha apron

Maria Clara Kenderessy 5 Dec 20, 2021
WhatsApp Web API client with multi-device support

Tauros WhatsApp Web client for multi-device in python Free software: MIT Documentation: https://tauros.readthedocs.io Features TODO Credits This packa

Manjit Pardeshi 0 Jan 20, 2022
Python wrapper for CoWin API's

Cowin Tracker Python API wrapper for CoWin, India's digital platform launched by the government to help citizens register themselves for the vaccinati

Saiprasad Balasubramanian 43 Jun 11, 2022
Telegram Bot for updating ongoing matches of Fotmob.com in channel by @AbirHasan2005

Fotmob-Bot A very simple Telegram Bot which will update ongoing matches of Fotmob in a channel. Demo Channel Configs API_ID - Get this from @TeleORG_B

Abir Hasan 22 Oct 21, 2022