Sabendo o número de observadores

Acho que eu levantei isso muito tempo atrás, quando comecei a testar a plataforma.
Haverá alguma forma de saber quantas pessoas estão se inscrevendo (assistindo) a um tópico específico?

Tenho sido questionado sobre essa informação com mais frequência ultimamente.

2 curtidas

Isso parece pouco provável de ser adicionado como visível para não administradores.

A liberdade dos usuários individuais de escolher como desejam consumir o fórum é importante, e dar consideração especial a acompanhar um tópico, tornando o número visível para todos, provavelmente criará padrões de comportamento indesejados. (A Síndrome do Número Subindo é muito poderosa.)

Você deve ser capaz de criar uma consulta no Data Explorer que obtenha esses dados e marcá-la como executável por moderadores ou funcionários, se for de quem vêm as solicitações.

3 curtidas

Nunca quereríamos isso para usuários não administradores. Vou testar isso com o DE.

2 curtidas

Essa funcionalidade já foi adicionada ao sistema de relatórios do Discourse?

Houve alguma atualização sobre isso?

Olá Tom,

Isso não foi adicionado como um relatório padrão de DE. No entanto, encontrei um tópico que fornece uma consulta básica de DE para extrair essas informações, talvez isso seja útil:

2 curtidas

Olá Mark,

Obrigado. Então, com base nisso, parece que não consigo executar esta função no nível do tópico. Está correto?

Tom,

Não, você pode obter essas informações em nível de tópico trocando ‘topic’ por ‘category’ assim:

SELECT
  COUNT(topic_id)
FROM
  topic_users
WHERE
  notification_level = 3

Novamente, esta é uma consulta muito básica que retorna apenas uma contagem total de observadores de… neste caso… todos os tópicos. Se você quiser especificar um tópico em particular, você pode adicionar à cláusula WHERE, por exemplo:

WHERE
  notification_level = 3
  AND topic_id = 29
8 curtidas

Isto é ótimo!

Obrigado!

1 curtida

Isso é muito útil, obrigado @MarkDoerr. Modifiquei a consulta para relatar todos os quatro níveis de notificação em uma única passagem e para aceitar uma matriz de topic_ids, se necessário.
A tabela de saída completa da grade não é bonita, mas tem todas as informações de que preciso.

editar: claro, assim que postei, o Discourse gentilmente me mostrou seis links com outras maneiras de resolver isso! Continue a consulta!

SELECT 
  topic_id,
  notification_level,
  COUNT(CASE WHEN notification_level = 0 THEN topic_id END) AS Muted_0,
  COUNT(CASE WHEN notification_level = 1 THEN topic_id END) AS Normal_1,
  COUNT(CASE WHEN notification_level = 2 THEN topic_id END) AS Tracking_2,
  COUNT(CASE WHEN notification_level = 3 THEN topic_id END) AS Watching_3
FROM 
  topic_users 
WHERE 
  topic_id IN (9831, 9572, 9424, 7567) -- Adicione seus topic_ids aqui
GROUP BY
  topic_id, notification_level
1 curtida