Crie um bot para Telegram e gerencie a escala de plantonistas
Introdução
Além disso, é necessário que você tenha criado um bot no Telegram por meio do @BotFather e tenha obtido o token de acesso.
Você também precisará instalar as bibliotecas contidas no arquivo "requirements.txt" através do comando:
pip3 install -r requirements.txt
O código fonte do projeto pode ser obtido através do comando:
git clone https://github.com/leoberbert/telegram-bot.git
Ou visitando o repositório em: https://github.com/leoberbert/telegram-bot
A seguir, apresentaremos os passos para a criação do bot:
1. Criação da base de dados
O primeiro passo é criar a base de dados onde serão armazenados os dados dos plantonistas. Para isso, execute o código abaixo, que criará o arquivo plantao.db:python3 database.py
import sqlite3
# Conectar ao banco de dados
conn = sqlite3.connect('plantao.db')
# Criar uma tabela chamada plantao
conn.execute('''
CREATE TABLE plantao (
plantonista TEXT,
data TEXT
);
''')
# Fechar a conexão com o banco de dados
conn.close()
2. Subindo o servidor WEB
Agora, iremos subir o servidor WEB para realizarmos o cadastro dos plantonistas. Execute o comando abaixo:python3 server.py
from flask import Flask, render_template, request, redirect, url_for
from flask_httpauth import HTTPBasicAuth
import sqlite3
import logging
log = logging.getLogger('werkzeug')
log.setLevel(logging.ERROR)
app = Flask(__name__)
auth = HTTPBasicAuth()
# Define o caminho para o banco de dados
DB_PATH = 'plantao.db'
# Dicionário com os usuários e senhas
USERS = {
"plantonista": "guarana"
}
# Função que verifica se um usuário está autorizado
@auth.verify_password
def verify(username, password):
if not (username and password):
return False
return USERS.get(username) == password
@app.route('/plantao', methods=['GET', 'POST'])
@auth.login_required
def cadastro_plantonista():
if request.method == 'POST':
plantonista = request.form['plantonista']
data = request.form['data']
# Conecta ao banco de dados
conn = sqlite3.connect(DB_PATH)
# Insere os dados na tabela "plantao"
cur = conn.cursor()
cur.execute("INSERT INTO plantao (plantonista, data) VALUES (?, ?)", (plantonista, data))
conn.commit()
# Fecha a conexão com o banco de dados
conn.close()
# Redireciona para a página de confirmação
return redirect(url_for('cadastro_sucesso', plantonista=plantonista, data=data))
return render_template('index.html')
@app.route('/cadastro_sucesso')
def cadastro_sucesso():
plantonista = request.args.get('plantonista')
data = request.args.get('data')
return render_template('cadastro_sucesso.html', plantonista=plantonista, data=data)
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True,port=5000)
Acesse o endereço em seu navegador:
http://localhost:5000/plantao
Será solicitado o usuário e senha cadastrados no arquivo server.py. Após o login, você será direcionado para a tela de cadastro, onde poderá cadastrar o nome do plantão e a data em que ele estará de plantão.
3. Consultando o cadastro
Para verificar se o cadastro foi realizado com sucesso, execute o comando abaixo:python3 show_cadastro.py
import sqlite3
# Estabelecendo conexão com o banco de dados
conn = sqlite3.connect('plantao.db')
# Criando um cursor para executar comandos SQL
cursor = conn.cursor()
# Executando uma consulta SELECT em uma tabela
cursor.execute("SELECT * FROM plantao")
# Obtendo todos os resultados da consulta
resultados = cursor.fetchall()
# Imprimindo os resultados na tela
for linha in resultados:
print(linha)
# Fechando a conexão com o banco de dados
conn.close()
Será exibido o nome do plantonista e a data em que ele estará de plantão.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10