Como alterar os níveis de notificação para todos os usuários em um tópico?

Alguém sabe uma maneira segura de definir os níveis de notificação para todos os usuários em um tópico para um único valor? Imagino que seria algo no console do Rails.

Quero definir todos os usuários em um tópico para “Silenciar” ou “Normal” em vez de “Observando” ou “Rastreando”.

O objetivo é reduzir a atividade em um tópico grande em uma situação de moderação complexa.

1 curtida

Menu do administrador
Configurações
Preferências do usuário


Espere, desculpe, você quer dizer apenas 1 tópico. Sim, imagine que precise de rails

1 curtida

E quanto a habilitar o Modo Lento? Isso não ajudaria a reduzir a atividade? :thinking:

Essa situação é complexa e não quero uma indicação visual que gere uma discussão pública sobre isso, que pode consumir horas de tempo de moderação. (Já estou completamente sobrecarregado.) O resultado ideal é que as pessoas simplesmente não sejam lembradas de que o tópico existe.

1 curtida

Eu removeria o tópico da lista. Assim, ele fica oculto do fórum e, provavelmente, a maioria dos usuários não o verá mais lá. Mas, quando tiverem um link para esse tópico (por exemplo, porque receberam uma notificação), ainda poderão abri-lo.

2 curtidas

Embora, só para constar, se eles estiverem assistindo, eles ainda receberão notificações quando for não listado.

Eu acho que agora você pode usar o endpoint /t/TOPIC_ID/notifications para definir o nível de notificação para um usuário em um tópico específico, se essa for uma opção mais atraente do que o console do Rails?

Detalhes adicionais
  • O usuário da API deve ser um administrador (portanto, deve ter escopo global) para poder alterar o nível de notificação de outro usuário.
  • URL do endpoint: siteurl/t/<topic_id>/notifications
  • Tipo de solicitação: POST
  • Parâmetros:
    • username ou external_id do usuário alvo. Se vazio, o nível de notificação do próprio administrador para o tópico será alterado.
    • notification_level: valor inteiro correspondente ao nível
      • muted: 0,
      • regular: 1,
      • normal: 1, # alias para regular
      • tracking: 2,
      • watching: 3,

Mas para o console do Rails, acho que seria isto: (lembre-se de fazer um backup, caso antes de tentar mudar coisas no rails :warning:)

TopicUser.where(topic_id: TOPIC_ID).update(notification_level: 1)

(1 é normal, 0 é mudo)

Isso mudaria os níveis de tópico, mas pode haver níveis de categoria e tag que ainda podem afetar quem recebe um ping para novas atividades.

E uma pequena consulta ao explorador de dados para verificar os níveis dos usuários em um tópico, se isso for útil também:

SELECT 
    topic_id,
    user_id,
    notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID
3 curtidas

Obrigado pela resposta detalhada. Tentarei a API amanhã.

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.