Kit de construcción para Discord Bot 🤖

¿Podemos usarlo sin generar al usar la consola en Discourse?

Veo que el bot me dice errores cuando intento hacer un remap :smiling_face_with_tear:

No estoy completamente seguro de a qué te refieres. La única interacción se supone que debe ocurrir en Discord.

Sin embargo, ¿qué errores estás recibiendo? Le echaré un vistazo en algún momento.

1 me gusta

Yo también tengo este problema, entrar en el contenedor de discourse e iniciar el prompt de rails c hace que aparezca otra instancia del bot. Esto resulta en que comandos como Ping! devuelvan Pong! dos veces y otras cosas como no poder cambiar el nombre de usuario o apodo a través de discordrb.

Ejecutar el comando ::DiscordBot::Bot.discord_bot.stop hace que la instancia generada por rails c salga, pero no puede interactuar con el bot generado cuando Discourse se inicia.

1 me gusta

Gracias por el informe. Registraré esto como un problema conocido (editar: hecho - añadido a la sección “Problemas conocidos” del OP). Sospecho que se ha comportado así desde el principio, y dado que solo se ha informado un par de veces y muy recientemente, sospecho que no se considera generalmente un gran problema, ya que es un caso extremo.

Dado que parece ser técnicamente capaz, se aceptan PR si puedes resolverlo.

1 me gusta

Podría ser un problema central con Discordrb, para ser honesto, no veo forma de listar otros bots en ejecución o incluso seleccionarlos en su documentación, si lo descubro te lo haré saber. En cuanto a este bot, he bifurcado el proyecto y lo he modificado lo mejor que he podido para que funcione como un puente de chat en lugar de un puente de publicación.


1 me gusta

Sí, lo que necesitamos hacer es poder probar si una instancia se está ejecutando y no ejecutar una nueva si ya existe.

Ese es un peligro de condiciones de carrera, pero sería una mejora realmente agradable.

Si tuviera más tiempo, lo miraría antes, pero si quieres intentarlo, siéntete libre.

Parece que cuando se inicia la consola de Rails, vincula la variable @@DiscordBot a otro bot en otro hilo, mientras que el original se deja solo. No estoy seguro de si es posible detectar que la consola de Rails se está iniciando y no iniciar un segundo bot, pero esto explica por qué puedo ejecutar el comando de detener en el bot a través de Rails y no afectar al que se inició con Discourse.

1 me gusta

Hola,

Buen trabajo, quiero usar esto pero primero tengo una pregunta que está algo relacionada, más o menos…

Uso Discourse WP-Connect para usar Wordpress como mi “maestro” para SSO (esto también puede usar el inicio de sesión de Discord), ¿sabes qué “variables de usuario” necesitaría pasar en la solicitud SSO para que este plugin coincida con un usuario de Discord? ¿o es solo el correo electrónico (supongo que no)?

Ya envío algunos valores adicionales, ¡así que espero poder enviar solo uno adicional!

Según el OP, requiere autenticación a través de Discord (usando la lógica central incorporada) para establecer la relación.

Un SSO codificado de forma rígida desde Wordpress lo impedirá, especialmente para los nuevos usuarios.

Se agradecen las PR o la documentación adicional si encuentras una manera de evitarlo.

Buen trabajo, bien hecho. Es una idea útil.

Bien, en realidad no es lo que pregunté, tal vez sea mejor preguntar en soporte ya que el inicio de sesión de Discord ahora está integrado en Discourse.

1 me gusta

Sí, está fuera del alcance de este plugin dar soporte a Wordpress SSO.

Pero para orientarte, necesitas una entrada en esta tabla:

Esto se hace automáticamente cuando inicias sesión a través de Discord.

Dudo que Wordpress SSO pudiera poblar eso en nombre de Discord, pero estoy preparado para que me demuestren lo contrario.

1 me gusta

También tengo una fuente OAuth que necesito que los usuarios utilicen en lugar de Discord. Para evitar esto, tengo el OAuth de Discord según lo especificado en el OP, pero he usado CSS personalizado para ocultar todas las demás fuentes de inicio de sesión, excepto la que quiero que mis usuarios utilicen con la opción CSS display: none;. La capacidad de OAuth con Discord está “técnicamente” todavía en el HTML, pero un usuario final normal nunca la encontrará.

Los usuarios pueden entonces “conectar” su Discord a la cuenta que mi otra fuente OAuth crea en las preferencias de su usuario.


image

Genial, esa podría ser una solución alternativa, aunque podría investigar una solución de código real. ¿Esto se muestra en las preferencias de Discourse entonces? ¿Quizás podríamos enviarnos un mensaje directo para no saturar este tema?

¿Por qué vinculas los canales de Discord con las categorías de Discourse en lugar de con los temas? ¿Es porque puede haber temas con nombres duplicados? Me gustaría que 5 canales fueran a los temas relevantes en 3 categorías, pero parece que esto no es posible.

¿Porque los anuncios de un solo Tema serían bastante aburridos?

Es deliberadamente de alto nivel para que puedas anunciar Nuevos Temas en Categorías específicas.

2 Me gusta

Lo siento, me refiero a esto
image

2 Me gusta

Esa fue una solicitud de un cliente :money_bag:

Todo el chat, si mal no recuerdo, va en un solo tema por categoría para evitar un desorden en demasiados temas.

2 Me gusta

Entendido

Por supuesto, sin embargo, como está utilizando categorías, no puedo tener, por ejemplo, un hilo “#ford-support” en mi categoría “Ford” que se sincronice desde el canal #ford-support en Discord. Ruby no es mi lenguaje de elección, así que dudo que pueda bifurcarlo y modificarlo (como hago con muchas otras cosas que no están en Ruby).

¿Sería fácil hacer que lo hiciera en función del nombre del tema/hilo en su lugar? ¿O hay alguna limitación quizás?

Nota al margen: las imágenes (curiosamente los GIF sí) no se sincronizan con el tema, ¿no sé si esto se sabe?

EDITAR: oh espera, parece que puedo mover el tema después de que se crea.

Threads no estaban disponibles en la API de Discord de Ruby la última vez que revisé, pero me dijeron que “estaba en desarrollo” (¡hace dos años!).

Definitivamente agradecería una PR para agregar soporte para Threads cuando sea posible.

Me temo que hoy en día estoy demasiado ocupado para centrarme en la creación de muchas funciones en plugins fuera del trabajo remunerado, pero estaré encantado de revisar una PR.

1 me gusta