💻🤖💫 STEMBot: Consideraciones en torno al desarrollo y lanzamiento del bot de moderación para Discord como contribución para el fortalecimiento de nuestra comunidad de Steemit

in #steemstem6 years ago (edited)

¡Saludos mis estimados lectores de Steemit!

Para esta ocasión he traido a colación STEMBot, una aplicación bot creada por mí en colaboración con @CarlosERP-2000 y @IAmPhysical, a fin de apoyar el desenvolvimiento de las actividades de la comunidad #STEM-Espanol a través de su servidor en Discord, y será el motif de esta publicación, que es la primera de una serie al respecto, merced al hecho de que este proyecto de software está en pleno desarrollo y se espera que evolucione y adquiera muchas más actualizaciones (updates) en el futuro.

En este sentido, esta entrega está organizada en dos principales secciones. En la primera se hablará un poco acerca de lo que son los "Bots de Discord", a fin de dar mayor contexto teórico al contenido, como también para facilitar la comprensión del tema a los lectores no especialistas. La segunda sección presentará detalles sobre el software obtenido y la situación trasfondo a su desarrollo.

Finalmente, insertaré una sección de referencias y notas aclaratorias.

Preciso que a menos que se indique lo contrario, las imágenes a utilizar son de mi autoría y han sido editadas con GIMP.

¡Espero sea de su agrado! 😄


💻🤖💫 STEMBot: un bot para el servidor en Discord de #STEM-Espanol


Por Enio...


1. Bots de Discord


Es bastante probable que usted -estimado lector- ya esté familiarizado con Discord, ya que después de todo, es una plataforma bastante popular entre las comunidades de Steemit. Esta plataforma soporta servicios de voz y chat para comunidades online, destinada originalmente para los amantes de los videojuegos (gamers). Funciona a través del protocolo VoIP, lo que le da características similares a las aplicaciones de mensajería instantánea. Es gratuita, multiplataforma y disponible para dispositivos móviles, escritorio y navegadores web.

También es probable que en su experiencia en dicha plataforma, usted se haya topado con algunos bots, discretos o quizá fantoches, unos más útiles que otros.

No obstante, tanto si ya ha interactuado con estos usuarios artificiales como si no, conviene tener una idea básica pero acertada de lo que son, puesto que forman parte esencial de la temática de esta publicación. La imagen 1 será de ayuda para sintetizar ese concepto, tras lo cual será pormenorizado (véase imagen 1).



Imagen 1: Cartografía conceptual sobre los Bots de Discord Autor: @Eniolw Licencia: CC BY

Los Bots son una de las llamativas prestaciones de Discord. Son cuentas especiales que son manipuladas por software en vez de personas. De hecho, la palabra "Bot" viene de "RoBot", haciendo alusión al hecho de que parecieran ser robots antropomorfizados, es decir, que su comportamiento tiene rasgos a semejanza del de un "usuario humano".

La variante concreta de los bots de Discord se denomina "chatbot", es decir, bots con los que se interactúa al estilo de una conversación online (chat). Los bots son, por tanto, aplicaciones con las que se interactúa a través de Discord, las cuales reaccionan de manera similar a como lo hacen los usuarios humanos, pero al ser software, cuentan con utilidades añadidas.

Entre las características de los bots de Discord están:

  • Son cuentas gratuitas. Las cuentas son creadas dentro de esta plataforma y como tal son gratuitas puesto que esto es parte de la estrategia de negocio de esta organización con respecto al uso de API abiertas.
  • Son desarrollados por terceros, esto es, son creados y mantenidos por personas ajenas a la organización Discord. De tal manera que los programadores independientes pueden crear los softwares que darán vida al bot y son responsables de mantenerlos funcionando. Esto en parte significa que Discord provee la cuenta, pero no los medios para el despliegue y hosting (servicios que alojan al software y lo ejecutan).
  • Portan consigo la palabra "BOT". Esto facilita a los usuarios humanos distinguir cuando una cuenta es de un usuario humano o de un usuario bot.
  • Pueden tener privilegios de administración, con lo cual pueden hacer cosas que los administradores humanos hacen, facilitando su labor en muchos casos.
  • Reciben mensajes de texto, es decir: la API de Discord necesariamente permite a la cuenta de bot procesar los mensajes de textos que circulen en el servidor o chat donde el bot esté agregado, sean mensajes nuevos, editados o borrados.
  • Reciben reacciones, es decir, los emojíes que los usuarios adjuntan a un mensaje. Los bots son sensibles a ese evento y a varios otros.
  • Pueden enviar mensajes de texto y reacciones. Además de recibirlos -como recién se mencionó- también pueden contestar con mensajes de textos y emojíes. De hecho, esa es la forma esencial como los bots de Discord se comunican con los demás usuarios.
  • Pueden adjuntar archivos, lo que incluye a aquellos tipos que Discord soporta, como PDF, imágenes, etc.
  • Otras muchas. Pueden extraerse más características a partir de la documentación de la API de Discord (se provee un enlace en las notas aclaratorias).
  • En el desarrollo de software, los bots están clasificados dentro de la categoría "Software As A Service (SAAS)", esto es, "software como servicio", lo que quiere decir que son aplicaciones que se ejecutan en un servidor remoto, pero sus respuestas (outputs) se muestran al usuario humano a través de otra aplicación independiente llamada "cliente", que en este caso sería el cliente de Discord.

    Por tanto, se vinculan al paradigma de "aplicaciones chatbots", que es una tendencia mundial en el desarrollo de software, sobretodo a través de tecnologías como las API públicas (Application Programming Interface o Interfaz de Programación de Aplicaciones), que permitan a terceros crear servicios que tengan como frontEnd al cliente de una plataforma huésped (Discord, en este caso).

    Los bots de Discord deben ser diferenciados de las apps convencionales para dispositivos móviles. No deben ser confundidos. Estas apps son aplicaciones que "se instalan" nativamente en el dispositivo y son cargadas por el sistema operativo (Android, iOS, etc.), mientras que, como se ha reiterado, el bot es una aplicación instalada y/o ejecutada en un computador remoto y su frontend (función de interacción) se mostraría a través de la app, página web o cliente de escritorio de Discord.

    Los bots de Discord pueden subdividirse o clasificarse a partir de su funcionalidad. Hay bots para moderación de servidores, bots para conversar, bots de juegos (games), bots de utilidades varias (encuestas, votaciones, registros, etc.), bots de multimedia (gestión de imágenes, vídeos, sonidos, etc.), entre otros.

    Algunos ejemplos de bots de Discord populares son: PollBot, MedalBot, pBot, PanCake, Avalre, etc.


    2. STEMBot

    Una vez conceptualizado a los bots de Discord, se entiende que estos son herramientas que empoderan el funcionamiento de un servidor de Discord. En tanto aplicaciones informáticas, tienen funciones específicas que pueden tornarse en soluciones a problemas, necesidades o intereses de los usuarios de Discord, sobre todo en cuanto a lo que compete a actividades dentro de servidores.

    Y sucede que en la actividad diaria en los servidores pueden presentarse acciones rutinarias, situaciones que requieren la supervisión de los administradores, situaciones que involucran la participación de los miembros y el control de la misma, entre otros casos típicos de una función de moderación.

    En este sentido, STEMBot es un proyecto de software que nace a partir del interés la comunidad de #STEM-Espanol de contar con un bot en su servidor de Discord que apoye la moderación. En los últimos meses, la comunidad ha estado experimentando un crecimiento considerable, y con ello un mayor número de miembros en su servidor en Discord, y se espera que siga aumentando exitosamente.

    Con todo este movimiento, aún cuando la comunidad tiene miembros amigables y colaboradores, siempre hay casos de nuevos miembros que hacen preguntas frecuentes y casos ocasionales de no seguimiento de las normas del servidor, (por inexperiencia de algunos o por descuido de otros) tales como la publicación de enlaces no permitidos, entre otras situaciones. En general, a mayor miembros hay en una comunidad online, mayor complejidad, lo que requiere más tiempo, esfuerzo y atención.

    STEMBot está equipado para atender este tipo de situaciones. Teniendo rol de moderación, esta primera versión soporta las siguientes funciones:

    • Bienvenida: STEMBot puede dar la bienvenida a los nuevos miembros y brindarles información inmediata para su orientación en la comunidad.
    • Normas: puede desplegar mensajes con las normas a seguir dentro del servidor, de tal modo que los miembros las tengan presente.
    • FAQ : el bot puede dar respuesta a preguntas frecuentes (Frequently Asked Questions).
    • Filtrado de enlaces: STEMBot puede analizar todos los mensajes publicados y/o editados para filtrar aquellos que contengan enlaces no permitidos, cumpliendo así con las normas del servidor.
    • Filtrado de menciones: similar a la anterior, el bot filtra los mensajes que contengan las menciones @everyone y @here, puesto que son de uso administrativo en ese servidor.
    • Control sobre canales informativos: algunos canales del servidor están pensados para ser unidireccionales puesto que son para propósitos informativos. Cuando los canales no estén configurados manualmente de ese modo, STEMBot se asegurará de mover al canal principal los mensajes publicados en ellos por miembros no autorizados.

    En la siguiente serie de imágenes se muestra al bot desempeñando algunas de estas funciones (véanse imágenes 2, 3 y 4).



    ⬆️ Imagen 2: Funcionamiento de los comandos $start y $normas Autor: @Eniolw Licencia: CC BY




    ⬆️ Imagen 3: Bienvenida a nuevos mimbros del servidor Autor: @Eniolw Licencia: CC BY




    ⬆️ Imagen 4: Control de enlaces no permitidos Autor: @Eniolw Licencia: CC BY

    Técnicamente, esta versión de STEMBot ha sido desarrollada con el lenguaje de programación Python, usando el módulo discord.py que es un wrapper a la API de Discord y es en software libre y código abierto. Ha requerido un hospedaje (hosting) apropiado para su despliegue.

    STEMBot ya se encuentra 100% operativo y funcionando para el servidor en Discord de #STEM-Espanol, contando con la colaboración y autorización de los administradores @CarlosERP-2000 y @IAmPhysical. Eventualmente, STEMBot será liberado como software libre/código abierto conforme alcance una versión más madura, tras lo cual estará disponible para que otros usuarios de Discord puedan crear su propia versión en función de sus necesidades.

    De momento, esperemos que esta aplicación sea una pequeña contribución más en el potenciamiento de esta comunidad para trabajar por la difusión de maravillosas producciones científico-técnicas.


    REFERENCIAS Y NOTAS ACLARATORIAS:

    Sort:  

    Que interesante todos los aspecto conceptuales y de programación que hay detrás de un Bot. Algo que al utilizar herramientas de comunicación como discord, telegram es común oir e incluso hasta interactuar de alguna forma con ellos (Bots). Disfruté mucho de la lectura, excelente organizacion de las ideas. Felicidades @eniolw, éxitos!!

    ¡Mil gracias @eliaschess333! Sí, este paradigma de aplicaciones es interesante!

    Excelente @eniolw. Una maravilla en proceso!

    Gracias estimado. Así es, el bot seguirá creciendo. Un saludo!

    Creciendo a paso seguro, buen aporte @eniolw, en tu iniciativa ya disponemos de nuestro propio Bot (STEMBot), felicitaciones sigamos creciendo. Saludos.

    Así es. Lo bueno de una comunidad es que todos podemos contribuir. Gracias @lupafilotaxia!

    Te felicito @eniolw muy arduo tu trabajo. Aun me cuesta entender algunas cosas por alli en discord te llego para que interactuemos mas. SAludos

    Gracias @viannis por leer y por el cumplido! Cuando quieras conversamos. Saludos.
    :D

    Gracias por tu excelente aporte a la comunidad @eniolw

    No hay de qué! Es muy gratificante poder contribuir.

    como te dije en el discord que crack te quedo bro !

    Gracias amigo! 👍👍

    Un excelente aporte el que le estás brindado a tan maravillosa comunidad. Agradecida al 100%. Saludos estimado @eniolw.

    Gracias @maurelvys. Me honra que el bot que programé haya tenido tan buena receptividad. Gracias por leer!

    Hi @eniolw!

    Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

    Contribute to Open Source with utopian.io

    Learn how to contribute on our website and join the new open source economy.

    Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV

    Muy útil el concepto y la concepción que se debe tener de losBOT, no se mucho respecto al tema, pero entiendo que es una forma de automatizar procesos de comunicación e información dentro una plataforma online como el discord. Muchas felicitaciones por tu aporte @eniolw

    Exacto, los bot son para automatizar tareas. Gracias por leer @JoseG!

    Coin Marketplace

    STEEM 0.29
    TRX 0.12
    JST 0.033
    BTC 62934.09
    ETH 3118.65
    USDT 1.00
    SBD 3.85