Introducción
Crear directorio base y entorno virtual
Lo primero que vamos hacer es crear un directorio llamado
Instalar dependencias
Las documentaciones de las dependencias a instalar se encuentran en los siguientes enlaces :
Comandos para instalar las dependencias con pip.
1pip install python-telegram-bot --upgrade 2pip install SQLAlchemy 3pip install python-dotenv
Crearemos un archivo main.py y pegaremos el siguiente código donde reemplazarás
1# main.py 2from telegram import Update 3from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes 4 5 6async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 7 await update.message.reply_text(f'Hello {update.effective_user.first_name}') 8 9 10app = ApplicationBuilder().token("YOUR TOKEN HERE").build() 11 12app.add_handler(CommandHandler("hello", hello)) 13 14app.run_polling()
Antes de continuar comprobarás que el bot responda al comando
Empezando
Creando nuestro archivo de configuración.
Nuestro archivo de configuración se encargará de cargar todas las variables necesarias del entorno virtual y se almacenarán en una clase para facilitar el acceso a ellas desde cualquier parte del código.
Creamos un archivo config.py con el siguiente contenido:
1# config.py 2import os 3from dotenv import load_dotenv 4 5load_dotenv() 6 7 8class Config: 9 # Get the bot token from the environment variable 10 BOT_TOKEN = os.environ.get("BOT_TOKEN") 11 # Get the database URL from the environment variable 12 DATABASE_URL = os.environ.get("DATABASE_URL")
Variables de entorno
A continuación crearemos un archivo .env en la misma ruta que nuestro archivo main.py y config.py que almacenará cualquier dato que no debe ser compartido con nadie como por ejemplo el token de nuestro bot.
1# .env 2BOT_TOKEN="123456789:ABCDEFabcdef" 3DATABASE_URL="sqlite:///database.sqlite"
Actualizaremos nuestro archivo principal main.py para usar la clase Config:
1# main.py 2from telegram import Update 3from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes 4# nuevo 5from config import Config 6 7 8async def hello(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: 9 await update.message.reply_text(f"Hello {update.effective_user.first_name}") 10 11# actualizado 12app = ApplicationBuilder().token(Config.BOT_TOKEN).build() 13 14app.add_handler(CommandHandler("hello", hello)) 15 16app.run_polling()
Resumen
Primero que todo el código del proyecto se encontrará en el siguiente repositorio duels
Por el momento hemos creado nuestro entorno de desarrollo con las dependencias iniciales a utilizar .En el próximo capítulo crearemos los modelos de nuestra base de datos donde guardaremos los datos relacionados con los usuarios así como las estadísticas de victorias y derrotas para crear un ranking.
Debe autenticarse
Para poder interactuar con todas las funcionalidades de nuestro sitio web, es necesario que se autentique con su cuenta de usuario