Skip to content

Requerimientos (Draft)

Erick Ruiz de Chavez edited this page Nov 24, 2020 · 1 revision

PlusPlus

Operadores en mensajes

Si un mensaje tiene una o mas menciones seguidas de un ++, el bot debe sumar un punto a cada persona mencionada. No hace falta agregar un ++ por persona.

Si un mensaje tiene una o mas menciones seguidas de un --, el bot debe restar un punto a cada persona mencionada. No hace falta agregar un -- por persona.

Un mensaje puede tener combinaciones de ++ y --, estos pueden estar en cualquier orden (++, --; --, ++). El bot va a descomponer el mensaje en tokens extrayendo solamente las menciones y asignando los puntos correspondientes a las personas que se encuentren antes del operador. Por ejemplo, en el mensaje A B C ++ D E F -- asumiendo que cada letra es una mención, las personas A, B y C van a recibir un punto, y a las personas D, E y F se les resta un punto.

Cualquier otro contenido que no sean menciones es ignorado por el bot.

Una persona no puede darse ++ a sí misma, pero si puede quitarse puntos (easter egg).

En caso que varios operadores existan en el mismo mensaje, la lógica es la misma descrita antes:

 A  B ++  C++  D --  E++  F  G  H --
      <-   <-    <-   <-          <-
+1 +1    +1   -1    +1   -1 -1 -1

Reacciones

Cuando una persona agrega alguna de las siguientes reacciones a un mensaje con operadores, el bot debe repetir las acciones como si la persona las hubiera hecho en un mensaje nuevo.

👍🏻, 👏🏻, ✋🏻, 🙋🏻‍♂️, 🙋🏻‍♀️, 🙋🏻

Por el contrario, si alguna persona usa alguno de las siguientes reacciones, el bot invierte los operadores en dicho mensaje (++ resta puntos, -- suma puntos).

👎🏻, 🙃

Si alguna persona usa alguna de las siguientes reacciones, se le restaran 100 puntos, por conducta inapropiada.

🖕🏻

Cuando se remueve una acción, el bot debe revertir los cambios hechos por dicha acción, con excepción de las reacciones inapropiadas.

Mensajes

Cuando se realiza acción que agrega o resta puntos, el bot deberá enviar un mensaje apropiado (++, --) al canal, así como los puntajes nuevos de las personas mencionadas.

En caso que se agreguen reacciones a dicho mensaje, el bot deberá actualizar el mensaje enviado con anterioridad con los nuevos puntos.

Greeter

El bot debe ser capaz de escuchar eventos y enviar mensajes a las personas que generan dichos eventos según se configure. Algunos de los mensajes iniciales son:

  • Una persona se une a Slack.
  • Una persona entra al canal #ayuda-tecnica
  • Una persona entra al canal #meetup
  • Una persona entra al canal #comunidad

Para tener mayor flexibilidad, estos mensajes deben poder configurarse desde la base de datos, por lo que la tabla en cuestión deberá tener al menos la siguiente información por evento:

  • Evento a escuchar: Evento enviado por Slack, por ejemplo team_join, channel_join
  • Mensaje a enviar: Cuerpo del mensaje a enviar. Dado que puede ser necesario incluir datos dinámicos en dicho mensaje, debería de ser soportado algún tipo de template, como Twig, Handlebars, etc.

Ayuda (TBD)

Admin (TBD)

Algunas acciones podrían requerir de cambio de configuración en caliente por lo que se debería de ser soportado que usuarios con rol de administrador puedan cambiar dichas configuraciones. Adminer ya incluye una tabla de users, así que esta podría usarse también para acciones administrativas.

Algunas de dichas configuraciones pueden ser:

  • Mensajes de PlusPlus
  • Reacciones de PlusPlus
  • Eventos de Greeter
  • Mensajes de Ayuda
Clone this wiki locally