Assistir ao 'primeiro post' em uma tag não funciona em tópico existente?

Juro que juro que isso funcionava nos meus testes iniciais, pois é fundamental para o meu fluxo de trabalho: eu podia marcar uma postagem existente, e os usuários com watching_first_post nessa tag receberiam uma notificação.

Agora descobri que não funciona dessa maneira (…mais..?)

Ou talvez esteja sendo ignorado quando já existem postagens de resposta nesse tópico?

Imagino que eu possa mover tópicos para uma categoria onde todos estão em ‘watching first post’, mas…

  1. As notificações são acionadas apenas na criação do tópico?
  2. Não tenho certeza se a presença de postagens de resposta faria com que o gatilho de ‘primeira postagem’ fosse ignorado.
  3. Eu realmente queria manter tópicos relacionados em uma categoria e “escalar” alguns por meio de tags.

Estou disposto a executar um script para iniciar as notificações cada vez, mas o Askbot :robot: não conseguiu me ajudar a criar um que funcione.

Aceitaria qualquer sugestão ou solução alternativa..!

image

Mas como isso funcionaria? E se houver 10.000 tópicos antigos com a tag, você é notificado imediatamente?

Assistir apenas ao primeiro post notifica apenas sobre o post absoluto inicial no tópico.

1 curtida

Isso é bem definitivo, então devo estar me lembrando errado e criei tópicos de teste com a tag rastreada presente.

Ah, não - não estou sugerindo que definir um usuário para ‘watch first post’ por tag deva fazer algo retroativo.

Mas certamente é comum que tópicos postados sejam marcados por funcionários posteriormente. Eu apenas imaginei que, quando uma tag ‘watch first post’ é aplicada a um tópico existente, ela geraria uma notificação desse tópico para usuários que já estão WFP-ing a tag.

Ainda estou trabalhando com o Askbot para criar um script ad-hoc para essas ocasiões…

Após cerca de 60 iterações, Askbot e eu temos um script Rails quase funcionando.

O script abaixo — para o tópico 239 e a tag ‘tagtest’ — gera as notificações esperadas de “Novo Tópico” com o título correto do tópico e gera e-mails relacionados.

Alguns elementos parecem inertes (message: e display_username: não aparecem em nenhuma saída), mas quase funciona.

O ponto crítico é que os e-mails não chegam com o título real do tópico no cabeçalho. Ele aparece como " %{topic_title} ". Aparentemente, topic_title não é um campo válido para o método Notification, então não tenho certeza qual é o código mínimo necessário para incluí-lo no e-mail. (Askbot tentou adicionar métodos de e-mail cada vez mais elaborados, com erros cada vez maiores.)

Se alguém pudesse ajudar com esse detalhe, isso me manteria à tona até que eu aprenda a limpar isso adequadamente…!


topic_id = 239

Tag.where(name: 'tagtest').each do |tag|
  TagUser.where(tag_id: tag.id, notification_level: TagUser.notification_levels[:watching_first_post]).each do |tag_user|
    user = User.find(tag_user.user_id)
    puts "Username: #{user.username}, ID: #{user.id}"

    # Busca o título do tópico
    topic = Topic.find(topic_id)
    topic_title = topic.title

    # Cria uma notificação para o tópico
    Notification.create!(
      user_id: user.id,
      notification_type: Notification.types[:watching_first_post],
      topic_id: topic_id,
      post_number: 1, # Assumindo que você deseja notificar sobre o primeiro post do tópico
      data: {
        message: 'Você tem uma nova notificação para um tópico que está acompanhando.',
        display_username: 'system'
      }.to_json
    )

  end
end

No momento da marcação também há risco, por exemplo, a marcação em massa de 500 tópicos, então há 500 notificações, adeus às suas notificações.

Ou ainda pior, 100 marcações por um administrador com 10 segundos de diferença.

É um problema complicado, teríamos que agrupar as notificações com muito cuidado para alterar o recurso dessa forma.

Isso não é o mesmo se você mover tópicos em massa para outra categoria? Mover tópicos para outra categoria dispara notificações de assistir primeiro post.

Sim, acho que, em geral, a recategorização é muito mais rara do que a re-marcação, então a escala do problema é um tanto mitigada. Alguma chance de você fazer uma captura de tela rápida do que acontece quando você recategoriza em massa 3 tópicos para “assistir primeiro”?

Eu não sonharia em marcar 500 tópicos em massa, mas estou curioso, isso causaria mais sobrecarga do que postar em uma categoria de Anúncios que todos Observam?
(Editar: Ops, Moin postou enquanto eu estava compondo.)

Meu próprio caso de uso é talvez uma postagem por semana para “escalar” via e-mails de notificação.

Parece semelhante à discussão anterior sobre tópicos recategorizados:
(Editar: que você já sabe, desculpe.)

…que foi abordado por CORREÇÃO: Notificação ausente para usuários que observam a primeira postagem quando o tópico é recategorizado · discourse/discourse@147ea37 · GitHub

Estou apenas visando usar uma tag em vez de ter duas categorias para tópicos semelhantes. (Eles pertencem juntos, mas alguns são, após a postagem, considerados dignos de serem enviados aos nossos usuários silenciosos, às vezes apenas por e-mail.)

1 curtida

Apenas por curiosidade/comparação, estou testando o comportamento de ‘assistir ao primeiro post na categoria, e ele não está notificando ao recategorizar.

Minha janela de tempo de e-mail em minutos é 10, e estou deixando 15 minutos entre as etapas.
Repeti isso várias vezes agora…

  • Criar novo tópico em categoria sandbox não assistida. Esperar 15 min.
  • Mover o tópico para uma categoria que um usuário está Assistindo: aciona notificações imediatas, envia e-mail 10 minutos depois.

  • Criar outro novo tópico em categoria sandbox não assistida. Esperar 15 min.
  • Mover o tópico para uma categoria onde um usuário está ‘Assistindo ao Primeiro Post’: não faz nada, nunca.

(Instalação padrão auto-hospedada, 3.4.0.beta2-dev (0c019b2e45), testes-passados.)

Talvez seja algo sobre o meu processo, mas não consigo imaginar o quê. É possível que a funcionalidade que foi corrigida em 2018 tenha sido desfeita?

1 curtida

É muito possível, esta é uma área particularmente complexa do aplicativo.

A notificação sobre re-marcação / re-categorização precisa de muitas salvaguardas.

  • Devemos notificar sobre um tópico de 8 anos?
  • Devemos enviar 50 notificações de uma vez? No período de 1 hora?

Precisamos começar descobrindo qual é o comportamento desejado e quais devem ser as salvaguardas.

Para que conste, adicionar uma tag a um tópico existente deve enviar uma notificação para qualquer pessoa que esteja “Observando a Primeira Publicação” para essa tag.

Acabei de testar isso no meu site de teste (3108e3a6b6) e ainda parece estar funcionando corretamente.

Só para verificar, você alterou a configuração de administrador disable tags edit notifications em algum momento? (E disable category edit notifications para a versão da categoria).

4 curtidas

O.

M.

G.

Vou me enterrar em algum lugar.

Eu tinha esquecido que essas configurações existiam. Imagino que, quando as desativei, estava pensando apenas em notificações como "um administrador adicionou uma tag ou alterou a categoria do seu tópico" – não em ações como Watching ou notificações WFP.

Acho que ainda pode haver algumas inconsistências, pois Watching uma categoria pareceu substituir disable category edit modifications, enquanto WFP não. Como penitência, testarei isso mais a fundo e entrarei em contato com outras pessoas que mencionei sobre o assunto.

(Além disso, @sam meio que apoiou minha conclusão :sweat_smile:)

Mas obrigado @JammyDodger por me salvar de mais horas mexendo em scripts do rails. Meu próximo passo seria vender meu sofá e pagar @pfaffman para me ajudar.

6 curtidas

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