
¡Este bot multifuncional puede hacer un poco de todo! Es un toque, URL se acorta e incluso te aburre si no tienes idea de qué hacer. Fue desarrollado en mi canal Twitch Live con el propósito de todo el aprendizaje de diversas técnicas, funciones e implementación de ideas dentro de un solo proyecto. Además, no recopila ningún dato del usuario que interactúe con él en Telegram, solo responde con las solicitudes realizadas.
A continuación puede ver qué API y tecnologías se utilizaron en el proyecto, instrucciones para instalar los paquetes necesarios y el uso de la aplicación. El proyecto ha sido completado y colocado para trabajar en la nube, asegurando que todos puedan usurfr en cualquier momento. ¡Simplemente agregue @BittoInliveBot en Telegram y diviértete!
La plataforma solía ejecutar el bot en la nube era Heroku, ya que es rápido, simple y eficiente. El uso de esta plataforma no es obligatorio para Bot Bot y la ejecución de la nube, ya que puede ejecutarse localmente en su máquina u otras plataformas, como AWS, Google, entre otras.
Lista de API utilizadas en el desarrollo del bot:
Fuente: Lista de API públicas en Github
Paquetes principales de Python utilizados en el desarrollo del bot
Versión de Python utilizada en el proyecto: Python 3.8
Para instalar los paquetes que se usaron en este proyecto y replicarlo en su máquina o crear otro según esto, ¡se necesita hacer algo de información! Primero, si desea replicar en su propio bot, deberá crear su bot en el telegrama, utilizando el chat @BotFather . En este chat, puede crear un bot, editar comandos, agregar descripción, etc. Pero lo más importante, para replicar el proyecto, es para guardar la API de token generada en su creación. Este token se puede colocar en el archivo bot.py en el proyecto, en la variable bot_token , de modo que todas las características funcionen directamente a su bot.
Hay dos formas de instalar todo lo necesario para ejecutar el código, debe elegir el que mejor encuentre. A través de requirements.txt o Pipenv . La configuración de BOT en la nube no se abordará aquí, ya que la documentación de la plataforma en sí misma (Heroku) tiene el paso a paso para poner el código ejecutado allí, pero vale la pena señalar que al menos uno de estos métodos de instalación de paquetes es necesario para la configuración del entorno en la nube y en su computadora.
Instalación por requería.txt es simple, ya que solo necesita tener el PIP instalado en la máquina y ejecutar el siguiente comando:
pip install requirments.txt
La ventaja de instalar de esta manera es rápida, simple y fácil. Sin embargo, debe tenerse en cuenta que este método solo garantiza que las bibliotecas principales utilizadas en el proyecto se instalen en sus versiones correctas, pero no en sus subsidiarias. A partir de ahora, unos años, tal vez salga mal por ello, pero no tiene que preocuparse.
Para instalar los paquetes con Pipenv es simple, primero asegúrese de que Pipenv esté instalado en su máquina, con el siguiente comando:
pip install pipenv
Luego instale los paquetes a través del archivo PipFile.lock, con el comando:
pipenv install --ignore-pipfile
Con todo instalado, solo necesitará ejecutar el comando Pipenv Shell dentro de la carpeta del proyecto y tan pronto como esté dentro del entorno virtual con todo instalado, ejecuta el código normalmente.
pipenv shell
python main.py

En este tema se explicará cómo se estructura el proyecto, entre los archivos y cómo se conectan los códigos, para que todos comprendan y puedan modificar la forma necesaria. La forma de implementar ya se explica en la documentación de las bibliotecas en sí, por lo que el enfoque se centrará en la forma en que se organizó en este proyecto. En la siguiente figura, es posible observar cómo se estructuran los archivos y a partir de esto ingresaremos las conexiones entre ellos (la carpeta IMG IMG ignorada ya que contiene solo las imágenes utilizadas en este ReadMe).

El proyecto se puede dividir en tres secciones:
Toda la organización de BOT y los códigos de funcionalidad están dentro de las funcs/ . El archivo python main.py contiene solo la creación del objeto de clase BOT que está dentro de bot.py para realizar la ejecución de BOT con la run() .
Cada funcionalidad creada para este proyecto tiene su propia clase, class Pokedex() , class Bored() y class Urlshort() . Para mantener el código organizado y fácil para el mantenimiento, cada comando existente en el bot está lleno en los métodos de clase. En la sección de uso de BOT, debe tener en cuenta que los nombres de los métodos son los mismos que los nombres de los propios comandos del bot, por lo que no hay confusión con respecto a la implementación de cada cosa. Como se utilizaron algunas API para la recopilación de datos BOT, por lo que cada clase también tiene su URL base, para separar bien cada API y organizar sus respectivas solicitudes y particularidades. A continuación se puede ver un ejemplo de implementación de comandos, con el comando más básico del bot, utilizando la función send_message() con el texto escrito, para la propia persona que llamó el comando.
def start ( self , update , context ):
context . bot . send_message ( chat_id = update . effective_chat . id , text = "Bem vindo ao bot da transmissão (Ao vivo, não de covid) n Acesse twitch.tv/bittoin para mais informações!" ) Por último, tenemos la clase principal del bot, en el archivo bot.py , que importa todas las clases de funcionalidad mencionadas anteriormente, crea sus respectivos objetos de clase y utiliza los métodos para administrar los comandos implementados y utilizados en el chat de bot en línea. Después de tener un objeto de la clase de nuestra funcionalidad, creamos un controlador, donde el método será llamado por el bot y su comando se pasará, como se puede ver a continuación:
pokedex_handler = CommandHandler ( 'pokedex' , self . pokedex . pokedex ) El primer argumento es el nombre del comando que se llamará en el chat y el segundo el método que se llamará cuando se opere. Después de eso, utilizamos dispatcher de Bot, que es responsable de administrar y hacer que todos los manejadores creados funcionen para responder a todas las solicitudes de los usuarios y mantener la organización interna de las llamadas.
self . dispatcher . add_handler ( pokedex_handler ) Al final del proceso, tenemos la ejecución del bot, con todas sus características agregadas al dispatcher y está esperando la finalización.
# Inicia a execução do bot
self . updater . start_polling ()
# Roda o bot até apertar CTRL + C ou receber um SIGNAL
self . updater . idle ()Si hay algún error en la ejecución del proyecto relacionado con las solicitudes que involucran error en la traducción, acceda a este enlace con la solución.
La sample/ tiene los archivos sample.py e inlinekeyboard.py . Sample.py tiene las primeras pruebas realizadas en el bot al comienzo de Live para probar cómo las funciones de la biblioteca Telegram para Python funcionan para descubrir y validar algunas propiedades. Puede notar que, como todo está en un solo archivo, es desordenado y difícil de separar, por lo que se ha adoptado la organización de funcs/ . En LineKeyboard.py, el ejemplo se tomó directamente de la documentación de la biblioteca, con el objetivo de las teclas/botones de prueba en el chat de telegrama para implementar la función de la API aburrida.
La instalación del paquete ya se ha explicado anteriormente en la sección de instalación, por lo que el enfoque estará en el archivo Procfile . Procfile es lo que se ejecutará en la nube a través de la plataforma Heroku. Es un archivo simple y contiene el comando simple:
Trabajador: Python Main.py
Este comando simplemente asigna una instancia del servidor en la nube (trabajador) para ejecutar nuestro bot a través del archivo main.py , que activa la ejecución.

Aquí se enumeran todas las características que se discutieron durante las vidas escritas y llenas. Cada uno de estos temas fue implementado y probado en vivo. La idea es que durante las vidas el público ayuda a crear las características, determinando los requisitos y cómo será al final.

En esta sección se mostrarán los resultados obtenidos con el bot y los casos de uso para cada funcionalidad. ¡Disfruta y agrega el bot al telegrama y prueba también! Solo busque @BittoinLiveBot y comience a escribir los comandos en el chat.
Si desea ver una demostración completa y más explicada de cómo funciona todo, visite mi Instagram o mi canal de YouTube que tendrá videos en IGTV/canal con todo y un poco más.
/start El comando /start muestra solo un mensaje de bienvenida.


Aquí se presentan todos los comandos de la funcionalidad de Pokédex.
/pokedex nome_pokemon 
/pokedex numero_pokemon 
/habilidades nome_num_pokemon 
/moves nome_num_pokemon 

Aquí se presentan todos los comandos de la funcionalidad a corto plazo de URL.
/url link 

Aquí se presentan aquí todos los comandos de la herramienta que lo lleva del aburrimiento.
/bored 
/participantes num_participantes 