NFLscores Mastodon Bot. Crear Bot de Mastodon y tootear con Python (II)

AdriMcGrady 14/10/2022

Segunda parte sobre la creación de bots con Mastodon desde Python. Este segundo capítulo esta centrado en contar el proyecto real de bot de marcadores de la NFL en vivo para Mastodon.

Si todavía no has leído la parte I, la tienes aquí: Crear Bot de Mastodon y tootear con Python (II)

Bot Scoreboard NFL para Mastodon

Pues sí, tal como suena, me he puesto manos a la obra y con el fin de aprender y enseñar he creado un bot que he puesto a funcionar.

¿Y de qué es? Pues tras un intenso estudio de mercado y de los gustos del personal el Mastodon de 30 segundos o así, he decidido hacer lo contrario. Es decir, un bot de deportes. Es más, no es que lo haya hecho de fútbol o de baloncesto donde todavía podría tener alguna esperanza de repercusión. No, es un bot de un Scoreboard de la jornada en NFL: NFLscores Mastodon Bot

Nflscores Tusky

¿Y por qué? Pues porque me apetecía. Ya que le iba a echar un tiempecito, por lo menos, que fuera algo que me guste y que al menos sea útil para mí. Así que el enfoque es básicamente educativo tanto para mí como para el que quiera usarlo.

El proyecto

Mi situación actual, solo me deja trastear con el móvil, y en mi móvil tengo todo lo necesario para desarrollar el proyecto:

  • Un editor de código para Python: Pydroid 3
  • Un cliente de Mastodon: Tusky
  • Un editor de Markdown: Markor
  • Un cliente ssh.

Además, es el primer proyecto real que de libera en noroute2host. Así que me hace especial ilusión. Por lo que aquí tienes ya el Enlace al proyecto.

Por otro lado, me gustaría dejar claro que ni soy experto dn Python, ni esto es más que una version inicial aunque funcional. Faltan bastantes cosas, comprobaciones de errores, etcétera. Y quizás hay algún objeto que podría ser un diccionario.

Pero a mí me ha servido para explicar el funcionamiento de un bot en Mastodon, aprender algo de Python orientado a objetos y tener mis marcadores de NFL en directo en Tusky.

Funcionamiento

La base para la publicación de toots es la que vimos en el primer capítulo. Aunque con algunos añadidos bastante interesantes:

  • El bot se alimenta de los datos que proporciona una API de ESPN
  • Se puede limitar el tamaño maximo de toot para dividir en varios toots si es necesario.
  • Tanto la API de marcadores, como la de Mastodon, el Token y el número máximo de caracteres por toot se puede configurar mediante fichero de configuración.
  • La programación de toots se hace mediante cron cambiando la frecuencia de publicación en función de los horarios de partido.

Básicamente, el funcionamiento de cada ejecución del bot es el siguiente:

  1. Se obtiene la configuración del fichero config.conf. Donde se encuentra la API de marcadores y la info para publicar en mastodon.
  2. Se hace una petición a la API y se descarga la información en formato json.
  3. Se traduce la información a objetos de Python.
  4. Con los objetos, se construye el scoreboard.
  5. Se publica el toot o los toots con la información del scoreboard. Si el tamaño del toot supera lo establecido en la configuración se dividirá el toot.

En el README.md del proyecto podéis encontrar más información de como instalarlo o usarlo. Asi de cómo esta construido.

Contribuir

El proyecto ha sido publicado en Gitlab bajo licencia GPLv3, por lo que todo el mundo puede contribuir. Además pienso que esta preparado para poder usar otra API y desarrollando otro “recolector” sería posible adaptar a cualquier deporte de partidos de equipos.

Enlaces de interés

Artículo anterior Artículo siguiente

Artículos relacionados: