Ao ativar a configuração expressões regulares para palavras monitoradas, expressões regulares inválidas quebram completamente a categoria específica de palavra monitorada.
Passos para reprodução
- Ative ‘expressões regulares para palavras monitoradas’.
- Adicione um padrão de palavra monitorada a ‘Requer Aprovação’, por exemplo,
mesmo problema. - Adicione um padrão de palavra monitorada inválido, por exemplo,
*ban*(como seria o caso se houver caracteres curinga nas palavras monitoradas antes de ativar as expressões regulares). - Observe que uma postagem contendo ‘mesmo problema’ ignorará a fila de aprovação e também será ignorada pelo formulário ‘Testar’.
- Remova a palavra monitorada inválida.
- Observe que ‘mesmo problema’ agora corresponderá corretamente.
Passos para reprodução (pior cenário):
- Ative ‘expressões regulares para palavras monitoradas’ e tags.
- Adicione um padrão de palavra monitorada inválido a ‘Tag’, por exemplo,
*tebex.io*→pago. - Tente criar um novo tópico. Isso retornará ‘Erro 500’ com o seguinte resultado em
/logs:
RegexpError (alvo do operador de repetição não especificado: /*tebex.io*/)
app/services/word_watcher.rb:116:in `initialize'
app/services/word_watcher.rb:116:in `new'
app/services/word_watcher.rb:116:in `matches?'
lib/topic_creator.rb:184:in `block in setup_tags'
lib/topic_creator.rb:183:in `each'
lib/topic_creator.rb:183:in `setup_tags'
lib/topic_creator.rb:46:in `create'
lib/post_creator.rb:501:in `create_topic'
Nota de rodapé
Acho que seria bom que, mesmo com as expressões regulares desativadas, ainda fosse possível inserir uma regex válida de forma semelhante aos caracteres curinga, caso seja envolvida em um bloco /, especialmente porque a alternância pode quebrar de forma grave se houver palavras monitoradas antigas que já contenham caracteres curinga.