Anular notificações proceduralmente para um grupo

TLDR: Em fevereiro de 2024, o Google mudará sua taxa de spam aceitável para 0,3%. Quero reduzir o volume de e-mails de saída para evitar ser sinalizado. (3 sinalizações de spam/1000 e-mails colocarão seu domínio na lista negra). Preciso alterar proceduralmente ‘acompanhar primeira postagem’ para determinados grupos.

Minha organização sem fins lucrativos é uma organização física que usa o Discourse para facilitar o engajamento de membros/comunidade. Em particular, optamos por novos membros em notificações obrigatórias sobre nossa organização (pautas de reuniões, votações e atualizações críticas. Temos permissão legal e somos obrigados a enviar esses e-mails).

  • Atualmente: Nosso portal de membros adiciona novos usuários do Discourse via API e os atribui ao grupo ‘membros atuais’, desde que estejam em situação regular.
  • O grupo de membros atuais está definido para Categorias: Acompanhar Primeira Postagem: Anúncios Oficiais.

Até aqui tudo bem.

  • Quando eles saem/expiram, nós (API) os movemos para ‘ex-membros’ para uma variedade de permissões. Quando os membros expiram/saem/etc., mantemos a conta deles ativa como um nível de permissão de ‘membro público não associado’, para que eles ainda possam interagir com a comunidade.
  • Objetivo: Remover a opção de acompanhar primeira postagem ao adicionar um grupo.
Capturas de tela


As configurações do grupo não atribuem acompanhamento.


O membro do grupo ainda tem o acompanhamento.

  • Mover para um grupo parece ser apenas aditivo. Existe uma maneira de designar ‘remover’ rastreamento com base na adição ao grupo?
  • Existe uma maneira de remover configurações de rastreamento que foram adicionadas pela associação ao grupo? (ou seja, ao sair do grupo, desfazer o que foi adicionado).

Alternativamente, poderíamos usar marcação @, mas seria muito fácil de abusar acidentalmente. Ter os grupos gerenciando o nível de notificação seria o mais fácil.

Acho que é isso que você deve fazer. Remova essas categorias observadas quando eles saírem. Você pode Engenharia reversa da API do Discourse para encontrar a chamada de API para alterar suas categorias observadas.

O problema é que tenho centenas de usuários nessa situação. Configurar isso para o futuro é um bônus, mas ter uma lista vazia nula explícita seria um ótimo recurso.

Então um comando do Rails que removesse os watches dos usuários do grupo expirado pode ser uma solução. Não me lembro se alterar a configuração do grupo oferecerá aplicá-la a todos os membros. Você pode tentar isso (fazer o grupo expirado assistir a categoria e então remover esse watch?)

Vou tentar. Sei que a adição de um watch oferecerá recursividade. Não consegui encontrar uma maneira de remover um watch que não estivesse lá. Você está certo, pode ser uma questão de adicionar e remover.

Esta é a mágica. Adicionar a um grupo que não possui a flag não afirma a remoção da flag - isso seria um pesadelo para manter… mas aplicar retroativamente a flag e, em seguida, remover a flag do grupo funciona como uma boa solução alternativa se eu só tiver que fazer isso anualmente.

#feature-request - a capacidade de afirmar uma categoria ou tag de ‘anular’ na adição de grupo seria ótima.