533 - Tu broker bot para Telegram con Python

533 - Tu broker bot para Telegram con Python

Como tener tu propio bot de #telegram implementado en #python que te informe de los movimientos en el Ibex 35 y que te avise con esas variaciones

1:25
-3:15

Aquí va la primera de las Historias de un Pythonico, en concreto se trata de un bot para Telegram, que se encarga de seguir el comportamiento de la bolsa. En concreto del Ibex 35. De ahí el nombre que le he puesto broker bot. Aunque sinceramente no tengo muy claro si es el nombre mas acertado. La cuestión, es que esta primera historia, me ha llevado un poquito mas de lo que yo esperaba, pero, ya la tienes aquí, para disfrutarla, aprovecharla y sacarle el partido que consideres. Ahí va el broker bot para Telegram con Python.

Por supuesto, si tienes una sugerencia para algún bot de Telegram, o alguna sugerencia para este recuerda que lo puedes dejar en atareao.es/que.

Tu broker bot para Telegram con Python

Un poquito de trasfondo

Si acabas de llegar a este episodio del podcast, y eso de historias de un Pythonico, te suena a chino, comentarte que esto es una nueva aproximación a aprender Python, pero desde un punto de vista eminentemente práctico. En este caso, quiero que veas como puedes hacer diferentes proyectos, de forma sencilla o simplemente modificar lo que hago para que te sea de utilidad.

Lo cierto, es que algunos de estos proyectos, no tengo idea de aprovecharlos, pero sin embargo algunos de ellos me han parecido suficientemente interesantes como para implementarlos. Por supuesto, que es seguro que le faltarán características o que no se adaptarán exactamente a tus necesidades, y ahí es donde entra la parte de modificarlos y exprimir Python al máximo.

Por otro lado, si no te interesa eso de exprimir o aprender Python, pero alguno de los proyectos que vienen en las próximas semanas te resulta interesante, aprovéchalo tal y como está. En este sentido, los estoy dejando con su Dockerfile para que ponerlos en marcha sea muy sencillo.

Un cambio en el procedimiento

Antes de continuar quiero aclararte que he cambiado ligeramente la forma de proceder con estos proyectos, porque, sinceramente me parecía muy enrevesado. Así, que te voy a dar el proyecto completo, y en diferentes vídeos te explicaré el que y el porque de cada una de las decisiones que he tomado para implementarlo. Y así, además podrás utilizarlo desde el primer día y aprovecharlo al máximo.

Porque esta es una de las características fundamentales de historias de un Pythonico, cada uno de los proyectos es plenamente funcional desde el primer día.

El broker bot

¿Porque un broker bot? Lo cierto es que nada mas surgir este proyecto de historias de un Pythonico, una de las primeras propuestas, fue precisamente la de tener la posibilidad de seguir un valor del Ibex 35, y esto es lo que me dio la pista sobre el primero de los historias a llevar a cabo.

Como te digo, este proyecto es completamente funcional, aunque tiene todavía algunas mejoras que hacer, que te comentaré a posteriori. Pero, con todo y con eso, puedes comenzar a utilizarlo desde ya, directamente desde su docker-compose.yml, que te dejo a continuación,

version: "3.7"

services:
  brokerbot:
    image: atareao/brokerbot:latest
    container_name: brokerbot
    init: true
    restart: unless-stopped
    env_file:
      - brokerbot.env

Y en el archivo brokerbot.env, solo tienes que añadir el TOKEN de tu bot,

TOKEN=1111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU

¿Que puede hacer el broker bot a día de hoy?

Antes que nada aclararte que yo no sigo la bolsa de cerca. Es algo que a día de hoy ni me ocupa ni me preocupa, con lo que es posible que eches en falta alguna característica. Si es así ya sabes, en atareao.es/que, me dices lo que quieras que añada. Por supuesto, y esto es casi mas importante, si quieres hacer un Pull Request será totalmente bienvenido.

Tiene algunos comandos implementados a día de hoy,

  • /help muestra la ayuda
  • /list lista los valores del Ibex 35 actuales
  • /get obtiene uno de los valores del Ibex 35
  • /max configura un valor máximo para una posición
  • /min configura un valor mínimo para una posición
  • /configuration muestra la configuración actual

El broker bot está monitorizando los valores, de esta forma siempre tienes los últimos valores. En el caso de que se supere un valor máximo de una posición o se baje por debajo de una posición que hayas configurado te avisa.

Como funciona el broker bot

Este broker bot lo que hace es consultar los valores del Ibex 35 cada cierto tiempo y mantener los últimos valores cargados. Con estos valores es con lo que se trabaja en todo momento, y no con los valores leídos al instante. De esta forma, cada vez que le preguntemos por todos los valores del Ibex, o por uno concreto, te dará la respuesta obtenida en los últimos 5 minutos y esta será inmediata.

Durante estas consultas, además comprueba cada una de las reglas que hayas establecido, para ver si se cumple o no se cumple, tal y como te he indicado anteriormente.

Para esto hay dos procesos,

  • El primer proceso es el que se encarga de preguntar a Telegram mediante un pooling si hay algún mensaje nuevo, y en el caso de que lo haya lo procesa de acuerdo a las funciones implementadas y que he indicado en los comandos.
  • El segundo de los procesos, es un hilo que está preguntando cada cierto tiempo, por los valores del Ibex, y los guarda y a la vez comprueba si alguna de las reglas se cumple o no.

Como ves, he intentado hacerlo de la forma mas sencilla posible para poder aprovecharlo en un futuro.

Sobre los datos

Indicarte que he tenido algunos problemas con los datos. Lo cierto es que he estado buscando alguna API que me los proporcionara y, finalmente he tenido que recurrir al scraping de algunas páginas web, con lo que habrá que ir con cuidado en su utilización.

Fíjate que además he tenido que configurar un agente, porque en otro caso no me devolvía los valores que yo esperaba.

Vídeos

En los próximos días, publicaré distintos vídeos, explicando como levantar tu propio broker bot y aprovecharlo al máximo, y por supuesto como lo he hecho para que tu también lo puedas modificar. Insisto en que si quieres, cualquier Pull Request será mas que bienvenido.

Conclusión

Por último recordarte que esta es la primera de las historias de un Pythonico, y que se vendrán mas. Por supuesto, que vas a encontrar distintos vídeos sobre como implementar tu bot.

Recuerda que si tienes una sugerencia para algún bot de Telegram, o alguna sugerencia para este bot lo puedes dejar en atareao.es/que.


Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *