Kit de construcción para Discord Bot 🤖

¡Ups! Borré el enlace incorrecto del primer mensaje. (Había dos plugins; debería haber eliminado el de OAuth, pero en su lugar borré el enlace al bot).

Desinstala ese plugin lo antes posible, ya que Core ahora admite Discord OAuth de forma nativa.

El plugin del bot es ESTE:

He actualizado el primer mensaje en consecuencia. ¡Lo siento mucho!

3 Me gusta

¿Sabemos cuál podría ser el estado de la actualización automática de este plugin para los usuarios en el momento en que se unen a un grupo, en lugar de sincronizarlos manualmente? ¿Y también una forma de indicar qué grupos o roles deben sincronizarse entre sí, en lugar de que el plugin tome el control o cree los roles por sí mismo?

2 Me gusta

Es la primera vez que se solicita algo así, por lo que, como imaginarás, ni siquiera está en la lista de espera, por así decirlo.

Eso sería bastante complicado, ya que el bot se ejecuta en un hilo discreto. Tendrías que agregar un método para enviar mensajes al bot y asegurarte de que esté escuchando la solicitud. Un ejercicio interesante desde el punto de vista técnico, pero no trivial.

Alternativamente, podría ser mejor explorar una alternativa de llamada directa a la API en lugar de usar el bot. Entonces, tendrías que decidir si eso justifica su implementación en un plugin diferente basado en llamadas discretas, no en un bot.

Esa no es una mala idea, pero ¿por qué necesitas que sean diferentes, por curiosidad?

Esto es más práctico.

PR aceptada. Lamentablemente, mi tiempo es muy limitado para trabajar en funciones significativas sin financiación.

3 Me gusta

Bueno, tal como está ahora, parece que basa los roles en el “nombre” en lugar del título. Esto significa que mis roles en Discord terminan con guiones y sin espacios, por ejemplo. Así que supongo que una solución alternativa sería basar los roles no en el nombre, sino en el nombre completo o en el título predeterminado.

Dicho esto, es posible que haya grupos en Discourse que no quiera sincronizar en absoluto con Discord.

Agradezco las respuestas :slight_smile:

2 Me gusta

Esto es intencional para evitar depender de un campo de descripción que puede:

a) Contener espacios
b) No ser único

(y generalmente es una idea terrible en informática)

Sin embargo, si existe una forma segura de mejorar esto, estoy todo oídos. Agradezco que no “se vea” muy bien :slight_smile:

El plugin definitivamente podría tener funcionalidad adicional añadida para desactivar la sincronización para grupos específicos, a discreción del administrador. Se aceptan PRs.

4 Me gusta

¿Podríamos tener al bot sincronizarse automáticamente a una hora programada mientras se explora un método de API? Algo como, verificar una vez cada hora, o 24, etc.?

1 me gusta

Creo que sería posible añadir una funcionalidad como ‘repetir esto de nuevo después de x horas’ sin problemas.

El problema con eso es que se detendrá cada vez que el bot se apague (por ejemplo, al reiniciar).

El enfoque absolutamente mejor sería:

a) agregar una llamada API discreta conectada a un trabajo de Sidekiq a este plugin, o
b) escribir un nuevo plugin que utilice llamadas API normales en lugar de un bot (e incorporar una sincronización por lotes en él).

Cualquiera de esas opciones requerirá patrocinio o una solicitud de extracción (PR).

1 me gusta

Justo. Gracias por la ayuda.

2 Me gusta

Hola.

Estoy usando tu plugin actualmente y tengo todo en un punto funcional. Parece realmente bueno, ¡buen trabajo!

Sin embargo, tengo algunas preguntas: ahora que tengo todo funcionando, necesito que mis usuarios inicien sesión a través de Discord OAuth. Esto crea una nueva cuenta.

¿Cuál es la mejor manera de gestionar esto? ¿Necesito fusionar las cuentas nueva y antigua? Intenté hacerlo con mi cuenta de administrador y obtuve el error “No tienes permiso para ejecutar el comando discsync!” al intentar ejecutar manualmente !discsync.

Además, aún no ha copiado ningún rol desde mi Discourse.

Para tu información, mi cuenta de Discord aparece en mis opciones como una cuenta asociada.

¡Gracias de antemano por tu ayuda!

2 Me gusta

¡Gracias por tu interés en el plugin!

Esto no es una característica del plugin, es una función central. OAuth de Discord viene incluido con Discourse de forma predeterminada:

La configuración anterior aparece independientemente de si agregas este plugin a tu Discourse.

Si inicias sesión con la cuenta de redes sociales, siempre que los correos electrónicos de registro coincidan, la cuenta debería ser reconocida y no se creará una nueva cuenta. Sin embargo, si el usuario se registró en Discord con un correo electrónico diferente al de Discourse, por supuesto, no hay forma de que el sistema sepa que es el mismo usuario, por lo que se creará una nueva cuenta.

¿Tu cuenta de administrador en el servidor de Discord? ¿También autorizaste al bot?

¿Cuál es el resultado de Ping!?

4 Me gusta

Coincido con eso. En el peor de los casos, puedo simplemente fusionar cuentas con correos electrónicos que no coinciden.

Sí, es correcto. Soy el propietario de las instancias de Discord y Discourse. El resultado de “Ping!” es “Pong!”. Ningún rol ha sido migrado de Discourse a Discord.

El bot está en mi servidor de Discord y tiene privilegios de administrador. ¿Puedo aclarar qué quieres decir con «autorizar»?

3 Me gusta

¿Has completado este paso? (solo verifico todos los requisitos previos; casi con seguridad ya lo has hecho).

2 Me gusta

Sí, tengo :slight_smile:

1 me gusta

Mi corazonada es que tus derechos o los del bot en el servidor de Discord no están configurados correctamente de alguna manera. Solo estoy repasando este plugin mientras trabajo en docenas de ellos. ¡Mi último cambio en este fue hace un tiempo!

1 me gusta

¡Roger! He hecho una verificación rápida de mi parte, así que para tu información, figuro como propietario del servidor y tengo derechos de administrador.

EDITA: ¿Podemos aclarar qué derechos requiere el bot? Actualmente figura como administrador (esto le fue otorgado a través de un rol y no mediante la invitación OAuth, sin embargo).

1 me gusta

Mi bot tiene esto:

1 me gusta

Aquí están los míos (lo siento, como soy un nuevo usuario aquí

necesito hacer 3 publicaciones…)

1 me gusta

¿Podrías verificar los permisos del canal? Los permisos del canal en Discord anulan los permisos del servidor.

1 me gusta

Sí, está bien en el canal. No hay permisos desactivados allí que impidan enviar o recibir mensajes.

Puede enviar ¡Pong!, y me indica que no tengo los permisos necesarios para ejecutar !discsync.

1 me gusta

OK, estoy intentando replicarlo, pero hasta ahora puedo ejecutar ambos comandos.

1 me gusta