Esta es una pregunta que recibimos con \u003cem\u003emucha frecuencia\u003c/em\u003e: Discourse y Discord. Suenan bastante similares, pero ¿son lo mismo?
\u003chr\u003e \u003csmall\u003eEste es un tema de discusión complementario para la entrada original en \u003ca href=\"https://blog.discourse.org/2021/05/discord-and-discourse-better-together/\"\u003ehttps://blog.discourse.org/2021/05/discord-and-discourse-better-together/\u003c/a\u003e\u003c/small\u003eMe encanta que estén abordando este tema tan actual. Pero siento que aún falta contar con buenos flujos de trabajo, mejores prácticas y, lo ideal, herramientas para hacer que trabajar con estos dos productos separados sea más eficiente, agradable y fluido. Esto es cierto a pesar de un artículo de blog muy similar (aunque más amplio) publicado hace tres años, que generó algo de discusión (y algunas solicitudes similares a las que voy a desarrollar a continuación).
Voy a proponer algunos ejemplos de lo que idealmente me gustaría poder hacer para armonizar, por ejemplo, Discord y Discourse, reconociendo que quizás nada de esto sea realmente posible debido a limitaciones de las API de Discord o Discourse, o por otras razones. Pero creo que vale la pena pensar y hablar más sobre esto y entrar en detalles, porque la sincronía/asincronía es un problema presente para muchas comunidades y aún no existen soluciones ideales.
Lo primero y más importante sería contar con algunas herramientas (aparentemente) sencillas que faciliten el paso de un sistema al otro. Poder enlazar a una #categoría de Discourse en Discord así como así, y viceversa, con un canal de Discord en Discourse, para que no tenga que copiar y pegar un enlace en uno u otro. Mejor aún, una búsqueda de temas integrada en Discord para que pueda encontrar y publicar un enlace sin salir de Discord. También poder generar una invitación a uno desde el otro de inmediato, solo con un atajo de teclado o algo similar, en cualquiera de los dos sistemas.
Su propio artículo anterior Effectively using Discourse together with group chat sugiere cosas como:
Nuevo usuario: ¿Cómo puedo hacer X?
Usuario de ayuda: Buena pregunta. Por favor, vuelve a publicar esto en nuestro foro público para que cualquier respuesta que recibas pueda ser buscada y leída por cualquier otra persona que pueda estar haciendo la misma pregunta.
Esta es una buena política para abordar parte del problema, pero desde una perspectiva de experiencia de usuario (UX) no es ideal para el usuario. En cambio, me encantaría poder hacer clic en su mensaje en Discord y, con un solo comando, generar un enlace de invitación al foro, enviándolo a la categoría correcta, e idealmente incluso iniciar la acción de “Nuevo tema” después de que se registre. Y puntos extra por copiar el contenido real de su mensaje desde Discord al tema de Discourse.
Quizás también se incline automáticamente hacia la integración de inicio de sesión con Discord; por ejemplo, el usuario hace clic en el enlace en Discord, se abre una nueva ventana del navegador en el foro con una ventana emergente que dice: “¡Te han invitado a unirte a la comunidad Discourse X! Haz clic en Unirte e inicia sesión con tu cuenta de Discord, o elige una opción de inicio de sesión alternativa a la derecha”. Una vez que se registra, lo lleva al nuevo tema, quizás.
La sugerencia de “esperar a que terminen los chats y luego generar un resumen” también podría beneficiarse mucho de las herramientas. Veo que ya tienen una herramienta para Slack que hace parte del trabajo de forma semiautomática, lo cual es excelente. No la he usado, así que no sé cómo maneja cosas como los nombres de usuario, que idealmente deberían conectarse con cualquier nombre de usuario existente en Discourse, pero lo más importante sería tener esa capacidad para Discord. En ese artículo anterior veo una invitación a la colaboración de otras aplicaciones de chat, pero supongo que eso no ocurrió. ¿Qué se necesitaría para incentivarlo lo suficiente? ¿Podría hacerse aún más potente, operando sobre una selección en lugar de “los últimos 20 mensajes”? Y, si esto no forma parte ya de la versión de Slack, sería agradable generar automáticamente un enlace de regreso al chat en la publicación del foro.
Realmente solo estoy lanzando ideas al aire, pero creo que al menos parte de esto ayudaría mucho.
Personalmente, a largo plazo, espero que surja una única herramienta que combine mejor ambos enfoques, sincrónico y asincrónico. Sé que ha habido discusiones recientes sobre la posibilidad de que los temas de alto volumen en Discourse puedan transformarse en chats, quizás con cierta efimeridad. Espero que todo este concepto reciba una consideración profunda y un enfoque de “cielo azul” para ofrecer el mejor conjunto de herramientas a las comunidades para que realmente integren los valores de ambos enfoques.
Para mí, esto se materializaría idealmente dentro de Discourse. Quizás uno pudiera generar un chat en cualquier lugar, conectado a un tema existente o no (un chat a nivel de categoría sería genial). Podría funcionar un poco como los hilos de Slack, en el sentido de que “se ramifica” en algún lugar; es decir, estás leyendo un tema y llegas a una “respuesta” que en realidad es un resumen visual de un chat en tiempo real que ocurrió: “Chat generado: 243 mensajes el 31/05/21 con los usuarios x, y, z [avatares]” o algo así. Una modificación de la barra de resumen de temas existente, específica para chat, con estilos para diferenciarla, y al hacer clic se abre la ventana del chat para revisarlo, o se expande en línea, o algo similar.
Los chats podrían archivarse automáticamente o incluso eliminarse, si se desea. Pero idealmente se proporcionarían herramientas para resumir un chat de vuelta al tema, quizás usando funciones familiares de edición de mensajes en Discourse (selección múltiple, etc.). Los moderadores podrían hacer esto, o los usuarios podrían seleccionar uno o varios de sus propios mensajes para contribuir de nuevo al tema, si lo desean. Si no lo hacen después de un período de tiempo establecido, todo se archiva (opcionalmente). Para chats basados en categorías, también se podría “promover” un mensaje de chat a un tema.
Bueno, hay un millón de ideas posibles. Pero esto parece ser un área de gran valor potencial si se puede hacer bien dentro de Discourse. Reducir la tensión entre, por ejemplo, Discord y Discourse, y la “rigidez” del enfoque de Discourse, manteniendo al mismo tiempo los beneficios de ambos, y creo que sería un gran logro. Más fácil decirlo que hacerlo, pero ¡sin duda un desafío digno!
Edición: También sé que ha habido un montón de discusiones variadas sobre temas similares en el pasado, por ejemplo:
etc.
Babble es genial, aunque no parece estar tan bien soportado. Lo más importante es que no resuelve la mayoría de los problemas de los que estoy hablando arriba, aunque al menos integra todo en un solo lugar, lo que facilita el paso entre modos de interacción…
Edición 2: Además, también, probablemente debería haber categorías/“canales” solo para chat. Pero de nuevo con la posibilidad de “promover” un mensaje (o una serie de mensajes?) a un tema. Y ahora me pregunto si no debería haber publicado esto como un nuevo tema en algún lugar. Bueno, da igual. ![]()
Quizás te interese Discord Bot Construction Kit 🤖
Es un plugin de integración general que puede vincular Discord con Discourse de varias formas.
Está diseñado para ser extensible. Utiliza el marco de eventos de Discourse y la gema Ruby de la API de Discord.
Se aceptan PRs para funciones adicionales.
¡Qué bien, gracias! Definitivamente espero una integración más profunda y sofisticada, que podría estar fuera del alcance de lo que has desarrollado. Pero sin duda es un excelente complemento mientras tanto.
Por cierto, de manera más general, posteriormente descubrí esta publicación anterior de Sam, que muestra que esto ha estado en la mente del equipo de Discourse durante bastante tiempo. Hay excelentes detalles sobre su razonamiento en ese hilo; esto es solo una parte:
¿Podrías por favor elaborar un poco más al respecto? ¿Qué quieres decir con una integración “más profunda” y “más sofisticada”?
Siéntete libre de enviar PRs o considera especificar (y posiblemente financiar) características para hacer crecer el plugin.
Escribí un plugin que resuelve este problema en cierta medida. Al menos en lo que respecta a los permisos: aquí tienes una introducción sobre cómo funciona: https://www.youtube.com/watch?v=C5paAvTYty4
Conecta los sistemas de permisos de ambas plataformas.
Creo que una buena idea sería tomar esto y darle la vuelta. En lugar de dirigir a las personas de Discord a Discourse, podríamos tratar las conversaciones que ocurren en Discord como un activo. Es un enorme tesoro de contenido que puede utilizarse para crear hilos automáticamente en Discourse.
Cuando escribí el plugin para sincronizar los roles de Discord con los grupos de Discourse, reconocí lo potente que es la API de Discord. Podemos reaccionar a cualquier evento que ocurra en el servidor de Discord. Por ejemplo, podríamos crear hilos en Discourse cada vez que alguien use un signo de interrogación. Creo que las preguntas y sus respuestas son probablemente la fruta más accesible y valiosa del lado de Discord que podríamos recoger y colocar en la cesta de frutas de Discourse. Esto también ampliaría el embudo hacia la comunidad, ya que de repente las partes más valiosas de las conversaciones de Discord se volverían accesibles desde la web normal. Las conversaciones de Discord no están indexadas por los motores de búsqueda en este momento, por lo que esto podría abrir una gran oportunidad.
¡Claro! De hecho, esboce algunas de estas ideas anteriormente. Por ejemplo:
Pero, para intentar esbozarlo en general (y teniendo en cuenta que soy consciente de que parte de esto podría ser imposible o más difícil de lo que vale, esta es la visión idealizada):
Capacidad para que los administradores, moderadores o cualquier persona (según la configuración de permisos) creen instantáneamente temas en Discourse a partir de uno (o varios) mensajes en Discord con una interfaz de usuario súper sencilla, por ejemplo, con un clic derecho.
- Interfaz para seleccionar la categoría y las etiquetas (opcionalmente) para el nuevo tema.
- La selección múltiple podría usarse para identificar varios mensajes a incluir.
- La versión básica podría simplemente crear un tema desde un usuario no personal del sistema u otro de Discourse, con el contenido de 1 o más mensajes de Discord como un único mensaje que inicia un nuevo tema.
- La versión avanzada, idealmente, emparejaría a los usuarios de Discord con los de Discourse y crearía un tema a partir del primer mensaje seleccionado, atribuyéndolo al usuario coincidente correcto, con los otros mensajes seleccionados como respuestas, nuevamente atribuidos correctamente.
- En cualquier caso, se publicaría un mensaje en Discord como: “Una conversación aquí acaba de convertirse en un tema de Discourse. ¡Pásate allí para continuar la discusión si te gusta! [enlace].”
Desplázate hacia abajo en esta página hasta “Encadenamiento retroactivo” para ver un buen ejemplo (tanto en concepto como en interfaz) de lo que tengo en mente:
https://quill.chat/
Objetivos ambiciosos:
- Otra característica agradable sería notificar al usuario o usuarios cuyo(s) mensaje(s) se están convirtiendo en un tema de Discourse dentro de Discord, con un enlace al nuevo tema.
- También sería agradable permitir que el usuario o usuarios cuyos mensajes fueron seleccionados para la creación del tema nieguen o se retiren de la acción.
- Opción para invitar automáticamente a los autores de los mensajes seleccionados a Discourse si aún no tienen una cuenta (o no se puede encontrar una que coincida, lo cual podría abordarse en el registro si sí tienen una cuenta, pero con un correo electrónico diferente, etc.).
- Integración con el comportamiento de sugerencia de hilos existente (recientemente agregado) de Discord, donde dice (cuando las personas responden a un mensaje anterior) “¿Quieres facilitar el seguimiento de esta conversión de X respuestas? Inicia un [hilo]”, añadiendo otra opción, por ejemplo: “Inicia un [hilo] o un nuevo [tema] en nuestro foro.”
- Detección de mensajes largos que se están redactando en Discord y luego ofrecer la sugerencia, por ejemplo: “Parece que estás escribiendo un mensaje de chat muy largo. ¿Quieres [iniciar un tema del foro] en su lugar?”
- Vistas de temas en línea, expandibles (ventana emergente, con desplazamiento?) para temas que están vinculados a un mensaje/hilo de Discord; es decir, muestra una vista previa normal de tipo “onebox”, pero puedes hacer clic en ella para ver más de la conversación real de alguna manera, como en una ventana emergente con desplazamiento.
El objetivo general es facilitar, si no hacer transparente, que las personas inicien nuevos temas a partir de conversaciones existentes en Discord y continúen sus conversaciones más profundas en una plataforma donde tenga más sentido. Y, idealmente, también proporcionar indicaciones contextuales pero no intrusivas (al igual que ya hace Discord) sobre cuándo las personas podrían querer continuar una conversación en los foros en lugar de en Discord. No pretendo que parte de esto no sea en sí mismo un poco engorroso o incómodo, pero creo que sería una mejora sobre lo que tenemos.
Aún está por verse cómo será el chat integrado en el propio Discourse, así como cuánto se adoptará, por ejemplo, para comunidades que desean tener un componente en tiempo real activo además del foro, en comparación con aquellas que, por ejemplo, comenzaron en Discord o ya tienen una comunidad fuerte tanto en Discord como en el foro. ¿Será la integración suficiente para que los nuevos desarrolladores de comunidades solo usen Discourse tanto para funciones en tiempo real como de foro? Lo veremos. Pero la utilidad de gran parte de lo que he propuesto anteriormente podría depender en gran medida de ese resultado.
No soy programador, pero sí pienso con frecuencia en financiar cosas. El problema es que tengo numerosas cosas que quiero ver agregadas/mejoradas en Discourse y, ciertamente, no tengo suficiente dinero para financiarlas todas.
Así que priorizo… Las características de integración con Discord son más bien algo de interés para mis clientes de consultoría, así que espero que algún día pueda convencer a uno de ellos para que financie alguna expansión allí.
Sí, me topé con esto en algún momento, no estoy seguro de si fue antes o después de mi publicación anterior. Es útil, así que gracias por eso. Solo cubre parte del “problema”, pero definitivamente es parte de una posible solución.
Estoy de acuerdo contigo en gran medida, pero soy cauteloso con las publicaciones/republicaciones automatizadas. Cauteloso pero interesado en las posibilidades, ciertamente. Si pudiera basarse en reglas, como describes, podría ser más útil.
¡Eso es muy interesante! No estoy familiarizado con la API de Discord, así que no sé qué es posible, pero lo que describes suena como si podría permitir algunas soluciones útiles. Algo basado en reglas, como menciono anteriormente, sería una buena opción.
Sin embargo, sigo pensando que las herramientas poderosas para que los moderadores/administradores “curaten” manualmente el contenido de Discord podrían ser lo más importante o útil. Ciertamente, es lo que tenemos menos capacidad para hacer ahora, porque Integromat (por ejemplo) ya puede hacer esencialmente lo que describes: mirar los temas de Discord que se publican, buscar texto particular (por ejemplo, ?) o incluso reacciones particulares (por ejemplo, una reacción con un emoji restringida a moderadores/administradores que se activa a través de Integromat para publicar solo esos temas en Discourse) y luego crear un tema de Discourse a partir de eso. Así que, aunque sería agradable tener esa funcionalidad en un complemento/integración nativa, siento que es menos emocionante como área de enfoque para mí que lo que he descrito anteriormente.
Esto es lo que tenía en mente.
No estoy seguro de si te he entendido correctamente: ¿quieres decir que el clic derecho debería ocurrir en Discord o en la interfaz de Discourse?
También creo que debería ser curado. Pero el problema es que no podemos agregar funciones a la interfaz de usuario de Discord. Eso está fuera de nuestro control. Por lo tanto, necesitaríamos usar la API de Discord para importar todos los mensajes de Discord a Discourse. Y luego podríamos tener una especie de “centro de análisis de Discord” en el panel de administración/moderación de Discourse, que permita navegar por los mensajes de Discord, analizarlos y crear hilos automáticamente a partir de ellos. Quizás también podría haber una notificación para un moderador cada vez que alguien use un signo de interrogación u otro símbolo en Discord. La notificación los llevaría a una página donde podrían convertir la pregunta y las respuestas en un hilo de Discourse inmediatamente o descartar la notificación.
Gracias por la respuesta detallada @oshyan
Sí, Discord no es de código abierto y creo que modificar el cliente oficial va en contra de sus términos de servicio.
(Aplaudamos por un momento la refrescante diferencia en la forma en que Discourse se gestiona y se expone para su modificación).
Podrías construir o modificar un cliente alternativo, pero es una gran empresa mantenerse al día con las características del cliente oficial (¡mientras se añaden más!). No estoy tan familiarizado con los clientes alternativos, pero si puedes sugerir uno que esté bien mantenido y tenga un sistema de complementos…
Así que, de entrada, diría que las modificaciones de la interfaz de usuario en el lado de Discord serán más complicadas.
Sin embargo, estoy a punto de lanzar un nuevo cambio en el complemento de bot de Discord que te permite copiar los x últimos mensajes de Discord en un nuevo tema en Discourse.
Esto se logra mediante un comando de “bot” en lugar de un clic en un menú.
Respeta y hace coincidir las cuentas de usuario y te permite especificar el título del tema de destino o la categoría.
En esta versión también hay una función para copiar automáticamente el chat de Discord a Discourse si los nombres del canal y de la categoría coinciden.
Ya existe la capacidad de publicar nuevos temas en un canal de anuncios.
En Discord.
Sí, no era consciente de eso, pero lo sospechaba. Eso es parte de la razón por la que no he expuesto todo esto hasta ahora. Dicho esto, parece que @merefield ha logrado bastante con esta actualización reciente. ¡Eso es muy emocionante!
Esta es una idea interesante, pero parece ser una solución un poco “pesada”… (admito que la mía también es pesada a su manera, y la tuya al menos es factible en el sentido de que Discourse es de código abierto mientras que Discord no lo es).
¡Estoy de acuerdo con eso!
Desafortunadamente, los clientes de terceros parecen ir en contra de los Términos de Servicio de Discord y los únicos que he visto están o bien abandonados, o son de código cerrado (y probablemente serán prohibidos en algún momento de todos modos). Matrix tiene un puente a Discord, pero eso es todo.
Sí, eso tiene sentido. Lo que describí fue mi caso ideal, pero imaginé que probablemente no era factible.
¡Vaya, no esperaba esto! ¡Fantástico! Aunque quizás no sea tan conveniente o personalizable como imaginé, parece que esto podría cumplir la mayoría de los objetivos básicos que tenía en mente para las mejoras. Me alegra mucho saber que esto también ha parecido lo suficientemente útil para otros como para que hayas trabajado en ello. ¡Gracias!
Cuando dices que empareja las cuentas de usuario, ¿crea un solo tema con el mensaje más antiguo de Discord en el conjunto como el primer mensaje, y el resto como respuestas?
Vaya, interesante. ¿Entonces convierte cada mensaje en un nuevo tema, o qué? Si no es así, ¿cómo determina qué es un iniciador de tema y qué son respuestas?
Gracias de nuevo por trabajar en esto. Estoy emocionado de probar las actualizaciones cuando estén disponibles.
Al decir que coincide con las cuentas me refiero a que si la persona inicia sesión usando sus credenciales de Discord, de modo que exista un inicio de sesión asociado, entonces el mensaje en Discord se atribuirá correctamente y estará acompañado por el Avatar correcto en Discourse.
No, esto sería un desperdicio, creo que apunta a un único Tema en la Categoría.
Sí, entendí eso. Lo que me preguntaba es que usas “cuentas” en plural, y la modificación importa los “últimos x mensajes”. ¿Qué pasa si esos mensajes son de 5 personas diferentes? ¿Crea entonces un solo tema con 5 mensajes separados (como respuestas), cada uno atribuido a una cuenta de Discourse coincidente (si está disponible)?
Estoy de acuerdo. Asumí que no funcionaba así, pero no tengo claro cómo funcionan los detalles. Dicho esto, creo que tiene sentido que espere hasta que lo lancen y, si en ese momento tengo alguna pregunta restante, entonces puedo preguntar. ¡Gracias de nuevo! ![]()
Esas actualizaciones se publicaron: Discord Bot Construction Kit 🤖 - #82 by merefield