Extender el uso del modo lento para luchar contra la batalla del "chat en vivo"

Nos encanta la función de modo lento y nos gustaría ampliar su uso. Queremos tener el modo lento permanente para todas las categorías, no solo para los nuevos temas, sino también para todos los temas existentes.

Primero, expliquemos por qué queremos hacerlo.

Actualmente contamos con unos 10 000 miembros y 13 000 temas. Algunos de nuestros usuarios no están acostumbrados a desarrollar discusiones significativas y reflexivas. En su lugar, mantienen chats en vivo y tratan todo el foro como una aplicación de mensajería. Esto no es lo que nos gustaría ver; queremos discusiones significativas en nuestra comunidad. Sin embargo, en la mayoría de los casos, «suspender» o «silenciar» son medidas demasiado duras y no aplicables. Aquí es donde entra en juego la función de modo lento. Gracias a esta función, podemos ralentizar y evitar que los chats en vivo se vuelvan más intensos. Según nuestra comprensión, corríjanos si estamos equivocados, hay dos formas de activar el modo lento:

  • activarlo manualmente para un tema específico, y
  • hacerlo a nivel de categoría: una vez que la configuración está habilitada para una categoría determinada, todos los NUEVOS temas bajo esa categoría tendrán el modo lento activado automáticamente.

Actualmente, nuestros moderadores detectan «temas calientes» (temas que se convierten en chats en vivo) y los ponen en modo lento manualmente. El problema es que, como no todos los temas existentes están en modo lento, otros temas que no lo están suben y vuelven a convertirse en chats en vivo. Así, algunos usuarios comienzan a quejarse: «¿por qué algunos temas siguen subiendo pero no reciben modo lento (castigo)?», «¿por qué este tema está en modo lento con 4 horas restantes mientras otro tiene 1 hora?», etc. Además, surgen teorías de conspiración al respecto y nuestro equipo recibe muchas críticas (aunque no estamos acostumbrados a ello) debido a lo «aleatorio» que resulta la activación del modo lento. Y esto solo empeorará, ya que tenemos recursos muy limitados mientras el número de usuarios y temas sigue aumentando.

Queremos resolver el problema, o al menos mejorar la situación, adoptando los siguientes enfoques:

  1. tener TODOS los temas públicos en modo lento: esto es para evitar los chats en vivo y fomentar discusiones significativas.
  2. establecer la página de inicio predeterminada como «Nuevos» (o cualquier opción que no sea «Últimos») para todos los usuarios y el sitio: esto permitirá que los usuarios interesados en encontrar contenido real (no solo hilos de «ja ja» y «hola») tengan una mejor experiencia al visitar nuestro sitio. Al principio, establecimos «Últimos» como la página de inicio predeterminada del sitio. Observamos que esto hacía que los usuarios vieran «temas calientes» por defecto. Además, dado que tenemos demasiados de estos «temas calientes», los nuevos usuarios o aquellos con tiempo limitado para visitar nuestro sitio podrían pensar que todos los temas que ven son conversaciones sin sentido, o considerar que es normal/aceptable tener chats en vivo aquí; lamentablemente, esto está dañando gravemente nuestra comunidad. Esperamos que cambiar la página de inicio predeterminada a «Nuevos» pueda aliviar el problema. Al menos, los usuarios, por defecto, verán primero algo distinto a los hilos de chat en vivo.

Para el punto 1, planeamos:

1a. activar el modo lento para todas las categorías; esto se encargará de todos los nuevos temas.

1b. actualizar en lote todos los temas públicos existentes para activar el modo lento. → Este es un paso que no sabemos cómo realizar. No encontramos la opción de modo lento al actualizar temas en lote a través de la interfaz de usuario. Actualizar manualmente cada tema uno por uno a través de la interfaz de usuario no es una opción, considerando nuestros recursos limitados y la cantidad de temas existentes. ¿Alguien sabe qué podemos hacer para lograr esto? Por ejemplo, ¿conectarnos a la base de datos y modificar algunos campos? Solo queremos hacer el cambio en los temas públicos. Los mensajes privados no deben verse afectados. ¿O tendría sentido agregar la opción de «modo lento» en la interfaz de actualización en lote?

Para el punto 2, haremos:

2a. en la configuración del sitio, hacer que «Nuevos» sea el primer elemento del menú superior.

2b. actualizar en lote la página de inicio predeterminada para todos los usuarios. → Este también es un paso sobre el cual necesitamos asesoramiento para saber cómo lograrlo.

Necesitamos ayuda para los puntos 1b y 2b, y nos gustaría recibir cualquier sugerencia sobre soluciones mejores. Cualquier aporte será útil. ¡Agradecemos su ayuda!

6 Me gusta

Creo que me gustaría ver algo similar a esto en la configuración de las categorías:


Creo que puedes resolver el 1b modificando los temas a través de la consola de Rails. Lo probé localmente para ver si funcionaba como esperaba, pero te sugiero encarecidamente que lo pruebes en un entorno de staging antes de intentarlo en tu Discourse en vivo o esperar la confirmación de alguien del equipo de Discourse de que esta es una buena solución. (Y probablemente deberías probarlo en staging incluso si ellos lo confirman.)

Asumiendo que estás usando un servidor Linux con una instalación estándar, usa SSH u otro método para acceder a una shell en el servidor y utiliza lo siguiente:

cd /var/discourse
./launcher enter app
rails c

Luego, en la consola de Rails resultante:

Topic.where.not(archetype: "private_message").update_all(slow_mode_seconds: 120)

120 es el número de segundos antes de que se permita otra publicación, así que cámbialo según sea necesario. Si también quieres evitar establecer esto para ciertas categorías, puedes encadenarlo con .where.not(category_id: n), por ejemplo, para evitar establecer el modo lento para las categorías 3 y 4, modificarías lo anterior de la siguiente manera:

Topic.where.not(archetype: "private_message").where.not(category_id: 3).where.not(category_id: 4).update_all(slow_mode_seconds: 120)

Puedes obtener el ID de una categoría visitándola en tu navegador y mirando la barra de direcciones para encontrar algo como “c/staff/3”.

3 Me gusta

¡Gracias, @Simon_Manning! Tu respuesta nos ayudó y nos guió para encontrar una solución similar para 2b.

Esto es lo que vamos a hacer para 2b (por si alguien está interesado). Después de entrar en la consola de Rails:

UserOption.update_all(homepage_id: 4)

El homepage_id 4 corresponde a “New” en nuestro sitio de pruebas. No estoy seguro de que sea consistente debido a la configuración de diferentes sitios, pero es fácil verificarlo. Simplemente, ten un usuario con la página de inicio predeterminada configurada como “New” y accede a la base de datos para comprobar el homepage_id de ese usuario. Las instrucciones amigables sobre cómo acceder a la base de datos y consultar los datos se encuentran aquí.

2 Me gusta

Estoy abierto a automatizar esto, para que los temas se vean forzados a entrar en modo lento automáticamente. Pero, por favor, ayúdenme a decidir:

  • ¿cómo sabe el sistema cuándo cambiar al modo lento?
  • ¿qué puntos de datos examina el sistema para decidir cambiar al modo lento?
1 me gusta