Kit de construcción para Discord Bot 🤖

Lo siento, lenguaje de foro de la vieja escuela, Hilos (Threads) siendo Temas de Discourse (Discourse Topics) no Hilos de Discord (Discord Threads).

Estoy feliz de pagar por funcionalidad personalizada, pero creo que he encontrado una solución alternativa simplemente moviendo el tema después de que se crea :thinking: siento que eso fue demasiado simple

¿Los hilos de Discord existían hace 2 años? demonios, me estoy haciendo viejo :laughing: perdiendo la noción del tiempo

Pero sí, me pregunto si sería fácil agregar soporte para imágenes y menciones :thinking: ?

dame un presupuesto :wink:

image


1 me gusta

¡Sí, por favor, continúa esta conversación aquí en Discourse!

¡Yo también estoy implementando este plugin para sincronizar con un servidor de Discord!

¿Significa esto que los roles en Discord se copian en Discourse? ¿O viceversa? Al final, sería mejor permitir ambas opciones de todos modos.

1 me gusta

Espero tu PR

1 me gusta

¿Como el mío? ¿PR? ¿Qué PR?

@merefield ¡Hola! Gran trabajo en esto. Como muchos, estoy seguro, encontré esta publicación tratando de buscar plugins o bots que puedan conectar Discourse y Discord de una forma u otra.

En este punto, estaba a punto de rendirme y contratar a un desarrollador para que lo hiciera por mí, pero creo en el código abierto y estoy agradecido de haber encontrado este tema primero.

En una de las comunidades de Discord que ayudo a moderar, hay múltiples bibliotecas de diferentes autores cuyas comunidades se superponen y, por lo tanto, usan ese Discord y el canal relevante para soporte técnico de esa biblioteca.

La solución ideal para SEO, creación de bases de conocimiento y conveniencia sería que todos usaran un foro de Discourse, pero en igualdad de condiciones, la gente simplemente prefiere publicar sus preguntas en Discord y la parte que responde se queda buscando alguna solución manual para replicar esa conversación en Discourse.

En un esfuerzo por combatir esta ineficiencia sin forzar una mala experiencia de usuario (por ejemplo, “Bienvenido a Discord, ahora usa Discourse y repite la misma pregunta de nuevo”), me gustaría que el comentario principal de cada canal de biblioteca tuviera el potencial de generar automáticamente un nuevo tema en el foro de Discourse. Esto generaría spam rápidamente, así que querría que solo se activara si:

  1. se convierte en un hilo (lo que implica que fue una pregunta que realmente tuvo respuesta)

  2. fue respondido con un emoji elegido por un rol autorizado (soporte técnico, moderador, administrador, etc.)

A partir de ahí, los comentarios de seguimiento en ese hilo de Discord se seguirían automáticamente y se publicarían como respuestas en el mismo tema principal de Discourse. (Nota: No es importante que existan cuentas de usuario; enviarlo como “sistema” o un bot designado sería aceptable, siempre y cuando mencione el nombre de usuario de origen en el cuerpo de las publicaciones)

Basado en estos requisitos, tengo algunas preguntas:

  1. ¿el bot en cuestión en este tema está listo para esto?

  2. Si no, ¿qué partes no están listas todavía o no están planificadas? (Veo que los hilos son algo “en proceso”, pero si se trata de prioridades financieras, puedo publicar una buena recompensa para hacerlo realidad)

  3. Si se necesita publicar dicha recompensa para el desarrollo, ¿cuál es el método apropiado para la comisión? ¿Cuáles son los requisitos y expectativas (costos, plazos, etc.)?

Agradezco el trabajo que tú (¡y todos!) han hecho hasta ahora y espero tu pronta respuesta.

~carrot

Hola @carrotcypher,

Este plugin gratuito lo mantengo yo (como parte de Pavilion) sobre la base de mejores esfuerzos.

No hay hoja de ruta y el trabajo en las funcionalidades solo ocurre cuando hay un patrocinador externo.

Tu caso de uso es interesante.

Este “bot” depende de esta gema de Ruby, que es una dependencia crítica.

Esto aún no es compatible con Threads en una versión oficial, sin embargo, parece que se ha agregado algo de soporte a la rama principal, pero no estoy seguro hasta qué punto, eso sería un trabajo en sí mismo para averiguarlo y quizás discutirlo con ellos si planean un lanzamiento en algún momento. Su documentación solo se actualiza en cada lanzamiento. No es suficiente tener soporte en la rama principal, idealmente necesitan actualizar la gema.

Si te tomas en serio este proyecto, te recomiendo que discutas el proyecto con el equipo de gestión de proyectos de Pavilion en primera instancia, aunque eres libre de publicar en Marketplace, por supuesto.

Ve aquí y haz clic en contacto y sigue las instrucciones: https://pavilion.tech/solutions/

1 me gusta

@merefield Hola, instalé el plugin pero no consigo que el bot responda a los comandos en mi servidor.
Muestra correctamente el mensaje “¡El bot administrador de Discourse ha comenzado su turno!”, pero después de eso no reacciona a nada.

Curiosamente, funciona cuando le envío un mensaje directo en Discord. He comprobado los permisos en el servidor y parecen estar configurados correctamente (le di al bot permisos de administrador).

Extraño, lo he comprobado en la última versión de Discourse y se comporta.\n\n¿Qué sucede cuando escribes Ping! en Discord (mayúsculas importantes)?\n\nRevisa tus registros, ¿ves algún mensaje de error?

no reacciona a Ping! (pero funciona en mensajes directos)

registros

Parece que está teniendo problemas con el token en tu configuración de alguna manera.

¿Pusiste algún carácter extraño o no lo ingresaste en absoluto?

image

Lo dejé. De todos modos, no creo que fuera la herramienta adecuada para mi caso de uso.
No sé por qué no funcionó. Hice todo con cuidado, varias veces.
¿Quizás Discord está actuando de forma extraña?
De todos modos, gracias por intentar ayudarme.

1 me gusta

¿Qué intentabas hacer funcionalmente?

Sí, buena solución, y el comando requerido es este:

::DiscordBot::Bot.discord_bot.stop

Eso detendrá el bot adicional en la sesión de la consola de Rails y dejará funcionando el servidor principal actual.

@satonotdead, podrías apreciar esta solución.

He añadido esta información al OP.

2 Me gusta

Lo siento, estoy revisando las publicaciones aquí y me di cuenta de que te di un consejo incorrecto y desde entonces he implementado ganchos que responden a eventos de Discourse que pueden actuar en Discord. Algunas de estas ya pueden ser útiles para ti y esta técnica se puede extender a otros eventos:

1 me gusta

Con agradecimiento a mi patrocinador y por ayuda adicional de @RGJ, les traigo algunas actualizaciones importantes:

  • CARACTERÍSTICA; Añade la capacidad de copiar fácilmente hilos discretos de Discord a Discourse, extendiendo y mejorando el comando !disccopy existente
  • MEJORA: Actualiza el plugin con el último código de discordrb (3.5.0)
  • CARACTERÍSTICA: Añade soporte multisitio (¡¡gracias @RGJ!!)
  • CARACTERÍSTICA: Reinicia el hilo del bot si se cambia el token o si se habilita (para que no necesites reiniciar el servidor host) (¡¡gracias de nuevo @RGJ!!)

@klausagnoletti, @Fma965 con esta actualización de la API finalmente tenemos la capacidad de interactuar con los hilos de Discord a través de la API, que son esencialmente solo “canales” adicionales.

2 Me gusta

¡Ah, por fin!

¡Una verificación funcional para evitar que el bot se inicie en puntos inapropiados del proceso*!

Ya no iniciarás un nuevo bot cuando:

  • migrando cambios en la base de datos
  • abriendo la consola de Rails (así que ahora no hay necesidad de detenerla).

Como resultado, el parloteo del bot de reconstrucción se reduce en al menos un 50%, por lo que ahora solo debería anunciarse dos veces :sweat_smile:

Avísame si tienes algún problema con este último cambio.

¡Crédito a @RGJ por la sugerencia! :pray:

\u003csup\u003e*¡en su mayoría! :slight_smile:

1 me gusta

Solo para decir que recientemente:\n\n* CORREGIDO: sincronización automática de mensajes de Discord a Discourse, ¡que aparentemente se había roto desde la última actualización!\n* CARACTERÍSTICA: Se agregó un nivel de soporte para la sincronización automática de Discord Embeds.\n\n¡Disfruta!

Hola, ¡buen trabajo con el script! Gracias por crearlo. Tenía algunas preguntas… ¿con qué frecuencia sincroniza el bot a los miembros en los roles? Acabo de configurar Discourse y este fue uno de los primeros plugins que instalé. Creé un grupo en www, me agregué y si escribo manualmente !discsync, agregará la etiqueta de Discord a mi nombre sin problemas, ahora si me elimino del grupo en www, o agrego a alguien más… no sucede nada a menos que escriba manualmente !discsync en Discord. ¿Está eso como se esperaba o debería sincronizarse cada pocos minutos, cada 10 minutos?

Es manual.

Podrías echar un vistazo a este fork: Discord Sync: sync a Discourse forum with a Discord server pero creo que no tiene mantenimiento y está roto (también le pedí a esa persona que hiciera un PR, ¡pero bueno!).

Siéntete libre de hacer un PR para una solución más automatizada o puedes contratarme para trabajar en ello, o Marketplace

Después de todo, es un “kit de construcción” :slight_smile: