Varias entradas repetidas de resumen en el correo

Aquí hay otro que acaba de enviarse a una cuenta de usuario de prueba inactiva:

  • última vez visto 2024-09-12
  • Frecuencia del resumen: diario
  • “Incluir contenido de nuevos usuarios en los correos electrónicos de resumen”: marcado
  • sin etiquetas relevantes silenciadas

Temas populares:

“IA: ¿es mejor lo más grande?” – repetido 3 veces. El tema tiene 3 etiquetas, 0 respuestas, 0 me gusta.
“Desafíos de ingeniería social” – repetido 2 veces. El tema tiene 2 etiquetas, 1 respuesta, 0 me gusta.

Nuevo para ti:

“Solicitudes de nuevas etiquetas” – no repetido. El tema tiene 0 etiquetas, 0 respuestas, 0 me gusta.

1 me gusta

En el último resumen que recibió una de mis cuentas, ninguno de los temas se duplicó, pero los comentarios debajo de ellos sí (“Publicaciones populares”). Había cinco espacios y dos duplicados (tres publicaciones únicas), ambos del mismo tema.

Editar: Estoy revisando algunos resúmenes históricos que se enviaron a diferentes cuentas de prueba/administrador:

  • El anterior también tiene dos duplicados en las Publicaciones populares, también del mismo tema.
  • El anterior tenía un tema duplicado pero ninguna publicación popular duplicada. Hay un duplicado en “Nuevo para ti”.
  • El anterior no tiene duplicados.
1 me gusta

@j127, sería interesante saber cuántas etiquetas tenían tus temas del resumen. En mis muestras recientes, la duplicación se corresponde con el número de etiquetas de un tema. Podría ser una coincidencia, o no.

3 Me gusta

He podido reproducir el problema en mi sitio local de Discourse añadiendo una etiqueta a la configuración del sitio digest suppress tags y luego creando un tema con varias etiquetas.

El siguiente código causa el problema: discourse/app/models/topic.rb at main · discourse/discourse · GitHub

    if SiteSetting.digest_suppress_tags.present?
      tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
      if tag_ids.present?
        topics =
          topics.joins("LEFT JOIN topic_tags tg ON topics.id = tg.topic_id").where(
            "tg.tag_id NOT IN (?) OR tg.tag_id IS NULL",
            tag_ids,
          )
      end
    end

Editar: No creo que sea necesario un LEFT JOIN aquí. Las columnas de la tabla topic_tags unida no parecen utilizarse más adelante en el método. La solución podría ser tan simple como:

if SiteSetting.digest_suppress_tags.present?
tag_ids = Tag.where_name(SiteSetting.digest_suppress_tags.split("|")).pluck(:id)
  if tag_ids.present?
  topics =
    topics.where.not(id: TopicTag.where(tag_id: tag_ids).select(:topic_id))
  end
end

Dejaré que el equipo de Discourse determine el mejor enfoque. El método for_digest se ejecuta muchas veces y necesita ser eficiente.

4 Me gusta

Sí, todas las publicaciones duplicadas tenían dos etiquetas.

2 Me gusta

@simon – ¡muchas gracias por investigar esto! :smiley: Estoy seguro de que fue mucho para revisar. Esperaré a que el equipo de Discourse regrese y actúe sobre tu análisis.

1 me gusta

Solo confirmo que quitar la etiqueta que tenía en digest suppress tags ha devuelto los resúmenes a la normalidad. (Mientras tanto, confío en digest suppress categories.)

4 Me gusta

@simon tenía razón :+1: Ese fue efectivamente el error

7 Me gusta

¡Grandes noticias! :smiley:

No tengo claro cuándo los commits fusionados están disponibles en el canal beta. Si estoy en 3.4.0.beta3-dev (53f9c81790) y no solicita una actualización de la GUI, ¿una actualización de la línea de comandos recogerá este cambio?

Aún puedes extraer la interfaz de usuario sin que te la pida, y extraerá los nuevos commits. Pero también hacer una reconstrucción de la CLI los extraerá.

2 Me gusta

Este tema se cerró automáticamente después de 3 días. Ya no se permiten nuevas respuestas.