Suprimir pings de usuário em posts importados

Estamos importando um monte de posts, e o conteúdo frequentemente contém texto como @global ou similar (o tópico da nossa instância de discourse está relacionado a programação, e @ é um símbolo nessa linguagem).

Existe uma maneira agradável e limpa de suprimir o ping de usuários? Não me importo em pré-processar os posts antes de importar.

Como uma espécie de solução alternativa suja, descobri que inserir uma tag bbcode vazia após o @ funciona (como @[b][/b]global). Não parece uma solução muito boa e exigiria que eu analisasse/tokenizasse o markdown, já que o bbcode não deve ser inserido se a string estiver dentro de um bloco de código. Portanto, não é uma boa solução. Um espaço de largura zero também não é uma solução, pois levará a erros estranhos quando os usuários copiarem o trecho de código em seu próprio código-fonte.

Se estiver em um bloco de código, não é um problema. Se você puder garantir que esteja sempre em um bloco de código, estará em boa situação. Você precisa executar um analisador real para saber quando está em um bloco de código, no entanto.

Ah, ou desative a configuração Permitir que usuários mencionem outros usuários enquanto importa os dados.

1 curtida

Claro, se o @name estiver em um bloco de código, não é um problema. O problema é detectar quando está e quando não está, para que eu possa evitar o ping fora dos blocos de código, inserindo a tag invisível [b][/b] entre o @ e o name. Isso realmente exigiria um analisador/tokenizador markdown completo.

Hmm, isso ainda se aplica mesmo quando a postagem é posteriormente reaquecida ou isso levaria a pings aleatórios nesse caso?

Tenho quase certeza de que, quando eles são reaquecidos, é com uma troca para evitar solavancos e menções, mas nunca verifiquei o código nem tentei.

Não vejo nada impedindo os pings, as alterações são publicadas diretamente nos clientes, tanto quanto entendo (mas estou longe de ser um especialista em ruby ou em discourse, então, por favor, me corrija se eu estiver errado):

Eu acho que isso

Eu acho que bypass bump também impede que mentores aconteçam novamente, mas um trigger post process tem

`new_post: false,`

Então eu acho que você está seguro.

2 curtidas

Ah, bom ponto, perdi essa parte! Perfeito, farei isso então :sparkles:

1 curtida

E pode ser que os scripts de importação já definam isso. Não acho que uma importação cause um zilhão de notificações.

2 curtidas

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