Con la intención de seguir proporcionando herramientas para promover la interacción de usuarios en #Hive decidí implementar un comando al bot de Discord para llevar acabo sorteos sobre los comentarios o mas bien respuestas de una publicación.
Para invocar el sorteo debemos escribir el comando rancoment de la siguiente forma:
$rancoment link_publicación_Hive
El bot recopilará las respuestas de la publicación y elegirá un usuario al azar. Para ser mas claros dejaré un ejemplo de su utilización. Aplicando el comando:
El bot elige una respuesta al azar, devuelve al ganador y su comentario:
Ahora quiero hacer énfasis en la diferencia entre respuestas y comentarios, veamos el siguiente caso, sobre la misma publicación.
La usuario nestorgarcia esta respondiendo directamente a la publicación, mientras que todos los comentarios inferiores son respuestas a sus respectivos comentarios superiores. Para no complicarlo, el usuario pcojines no esta dando una respuesta a la publicación, si no a uno de sus comentarios. Mientras nestorgarcia entraría en el sorteo, pcojines sería excluido.
Otra característica del comando es que también excluye al mismo autor de post, me pareció que no tendría sentido incluirlo.
Código (esto te lo puedes saltar)
Hasta aquí la parte funcional, ahora procederé a describir un poco la parte técnica, la cual es muy sencilla por si alguien quiere implementarlo. He utilizado Hive-js para la implementación, además claro discord.js
Cada una de los enlaces hacia una de las publicaciones de Hive tiene la siguiente estructura.
https://hive.blog/@autor/permlink
En primer lugar es importante separar el autor y el permlink, en mi casi recibo el link en args[0]
Algunos usuarios se confunden y en lugar de dar directamente el link, dan el enlace referenciado hacia alguno de sus comentarios, esto aparece con un # despúes del permlink, así que por si acaso limpiamos también esa indormación
Ahora utilizaremos la función
Como notan, recibe como parámetros el autor, el permlink y nos permite introducir una función con el error y el resultado para manipular la respuesta. Esencialmente esto es lo importante, el código posterior es bastante básico. Recopilamos las respuestas arreglos, en mi caso utilicé.
Noten que excluyo al autor.
Primero eliminamos repeticiones, para no dar preferencia a ningún usuario por muchas respuestas que publique, es decir no incentivamos el spam. Una vez hecho ésto, elegimos a alguien al azar.
Ahora extraemos el comentario que ha emitido el usuario ganador, nota que vuelvo a repasar todas las respuestas ya que el índice no coincide debido a que eliminamos repeticiones. Finalmente anunciamos al ganador.
Les dejo el código en el siguiente enlace: CODIGO
Consideraciones
Me vi tentado a añadir la condición de que el ganador haya votado el post y seguido la cuenta, sin embargo el objetivo primordial del comando es simplemente motivar la interacción mediante comentarios, quizás sería adecuado hacerlo en un comando distinto. ¿Tú qué opinas? ¿Consideras que los sorteos son una buena forma de incentivar la interacción? ¿Crees que se debe realizar alguna mejora al comando? ¿Tienes alguna sugerencia de comando para el bot? No dudes en dejar tus respuestas y peticiones en los comentarios.
Próximamente estaré realizando algún sorteo una vez que encuentre una comunidad que me permita usar su sala para realizarlo, así que sígueme para estar enterado.