cover
Creando un bot de duelos en Telegram
image profile
Raúl Cobiellas
13 Jan 2024
Programacióntelegramgame

Introducción

Crear directorio base y entorno virtual

Lo primero que vamos hacer es crear un directorio llamado

Duels
que contendrá todo el código del proyecto. Lo segundo será abrir dicho directorio con nuestro editor de código y luego crear un entorno virtual y activarlo.

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

YOUR TOKEN HERE
por el token de tu bot dado por BotFather.

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

/hello
, para ejecutar nuestro código usarás el comando
python main.py
en la terminal , una vez llegado a este punto empezaremos a crear las funciones , modelos y configuración para nuestro bot.

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.