Estender o uso do modo lento para combater a batalha do "chat ao vivo"

Adoramos o recurso de modo lento e gostaríamos de expandir seu uso. Queremos ter o modo lento permanente em todas as categorias — não apenas para novos tópicos delas, mas também para todos os tópicos existentes.

Primeiro, vamos explicar por que queremos fazer isso.

Atualmente, temos cerca de 10 mil membros e 13 mil tópicos. Alguns de nossos usuários não estão acostumados a desenvolver discussões significativas e reflexivas. Em vez disso, eles fazem chat ao vivo e tratam todo o fórum como um aplicativo de mensagens. Isso não é o que gostamos de ver — queremos discussões significativas em nossa comunidade. No entanto, na maioria dos casos, “suspender” ou “silenciar” são medidas muito drásticas e não aplicáveis. É aqui que o recurso de modo lento entra. Graças a esse recurso, podemos desacelerar e evitar que o chat ao vivo fique mais intenso. Pelo que entendemos — corrija-nos se estivermos errados —, existem duas maneiras de ativar o modo lento:

  • ativar manualmente para um tópico específico, e
  • fazer isso no nível da categoria: uma vez que a configuração é ativada para uma determinada categoria, todos os NOVOS tópicos sob essa categoria terão o modo lento ativado automaticamente.

Atualmente, nossos moderadores identificam “tópicos quentes” (tópicos que viraram chat ao vivo) e os colocam em modo lento manualmente. O problema é que, como nem todos os tópicos existentes estão em modo lento, outros tópicos que não estão em modo lento sobem e se tornam chat ao vivo novamente. Assim, alguns usuários começam a reclamar: “por que alguns tópicos continuam subindo, mas não recebem modo lento (punição)?”, “por que este tópico está em modo lento com 4 horas restantes, enquanto outro tem apenas 1 hora?”, etc. Além disso, surgem teorias da conspiração sobre isso, e nossa equipe é muito criticada (não que não estejamos acostumados a isso) devido à forma “aleatória” como o modo lento é ativado. E isso só vai piorar, já que temos recursos muito limitados, enquanto o número de usuários e tópicos continua aumentando.

Queremos resolver o problema, ou pelo menos deixar as coisas em melhor estado, adotando as seguintes abordagens:

  1. ter TODOS os tópicos públicos em modo lento: isso visa evitar o chat ao vivo e incentivar discussões significativas.
  2. definir a página inicial padrão como “Novos” (ou qualquer coisa que não seja “Mais recentes”) para todos os usuários e para o site: isso permitirá que os usuários interessados em encontrar conteúdos reais (não apenas threads de “haha” e “oi”) tenham uma melhor experiência ao visitar nosso site. No início, definimos “Mais recentes” como a página inicial padrão do site. Observamos que isso fazia com que os usuários vissem “tópicos quentes” por padrão. Além disso, como temos muitos desses “tópicos quentes”, novos usuários ou usuários com pouco tempo para visitar nosso site podem pensar que todos os tópicos que veem são conversas sem sentido, ou achar que é normal/aceitável ter chat ao vivo aqui — infelizmente, isso está prejudicando gravemente nossa comunidade. Esperamos que mudar a página inicial padrão para “Novos” possa aliviar o problema. Pelo menos, por padrão, os usuários verão algo diferente de threads de chat ao vivo primeiro.

Para o item 1, planejamos:

1a. ativar o modo lento em todas as categorias — isso cuidará de todos os novos tópicos.

1b. atualizar em lote todos os tópicos públicos existentes para ativar o modo lento. → Esta é uma etapa que não sabemos como fazer. Não encontramos a opção de modo lento ao fazer a atualização em lote de tópicos por meio da interface do usuário. Atualizar manualmente cada tópico um por um através da interface do usuário não é uma opção, considerando nossos recursos limitados e a quantidade de tópicos existentes. Alguém sabe o que podemos fazer para fazer isso acontecer? Por exemplo, conectar-se ao banco de dados e alterar alguns campos talvez? Queremos apenas fazer a alteração nos tópicos públicos. Mensagens privadas não devem ser afetadas. Ou, faz sentido adicionar a opção “modo lento” na interface de atualização em lote?

Para o item 2, faremos:

2a. nas configurações do site, fazer com que “Novos” seja o primeiro item no menu superior.

2b. atualizar em lote a página inicial padrão para todos os usuários. → Esta também é uma etapa para a qual precisamos de orientações sobre como realizar.

Precisamos de ajuda para os itens 1b e 2b e gostaríamos de receber qualquer sugestão sobre soluções melhores. Qualquer coisa pode ser útil. Agradecemos!

6 curtidas

Acho que gostaria de ver algo nessa linha nas configurações da categoria:


Acredito que você possa resolver o 1b modificando os tópicos pelo console do Rails. Testei localmente para ver se funcionava como esperado, mas ainda recomendo fortemente que você teste em um ambiente de staging antes de tentar isso no seu Discourse em produção ou aguardar a confirmação de alguém da equipe do Discourse de que essa é uma boa solução. (E provavelmente ainda teste em staging mesmo que eles confirmem.)

Assumindo que você esteja usando um servidor Linux com uma instalação padrão, faça SSH ou acesse o shell do servidor e use o seguinte:

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

Em seguida, no console do Rails resultante:

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

120 é o número de segundos antes que outra postagem seja permitida, então substitua conforme desejado. Se você também quiser evitar definir isso para certas categorias, pode encadear isso com .where.not(category_id: n), por exemplo, para evitar definir o modo lento para as categorias 3 e 4, você modificaria o acima assim:

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

Você pode obter o ID de uma categoria visitando-a no seu navegador e olhando na barra de endereços para encontrar algo como “c/staff/3”.

3 curtidas

Obrigado, @Simon_Manning! Sua resposta nos ajudou e orientou a encontrar uma solução semelhante para 2b.

É isso que faremos para 2b (caso alguém esteja interessado). Após entrar no console do Rails:

UserOption.update_all(homepage_id: 4)

O homepage_id 4 corresponde a “New” no nosso site de testes. Não tenho certeza se isso é consistente devido a configurações diferentes do site, mas é fácil verificar. Basta ter um usuário com a página inicial padrão definida como “New” e acessar o banco de dados para verificar o homepage_id desse usuário. As instruções amigáveis sobre como acessar o banco de dados e verificar os dados podem ser encontradas aqui.

2 curtidas

Estou aberto a automatizar isso, para que os tópicos sejam forçados ao modo lento automaticamente. Mas, por favor, ajude-me a decidir:

  • como o sistema sabe quando mudar para o modo lento?
  • quais pontos de dados o sistema analisa para decidir mudar para o modo lento?
1 curtida