Estou coletando e-mails de uma lista de distribuição para o Discourse, e os assuntos dos e-mails geram novos tópicos. Isso está funcionando bem.
Agora preciso remover a primeira parte do assunto, pois se trata apenas do nome da lista de distribuição: “[lista de distribuição] tópico real”, e quero extrair apenas o “tópico real”.
Ainda não encontrei a solução correta online — alguém tem alguma sugestão?
Obrigado,
Marko
Eu raramente acerto expressões regulares na primeira tentativa, então você vai querer fazer alguns testes (e talvez experimentar em http://rubular.com/).
Obrigado por apontar isso.
Acho que a expressão regular seria algo como /^\[(.*?)\]\s/ para corresponder a tudo no início da linha, como "[…] ".
Você poderia, por favor, detalhar onde encontrar o importer.rb na minha instalação (usei o guia de instalação “em menos de 30 minutos” em uma VM local do Ubuntu)?
Alterei o arquivo mbox/importer.rb usando a expressão regular corrigida e também tentei uma string de substituição estática, sem nenhuma mudança nos tópicos recebidos.
Vou tentar esclarecer:
Inscrevi o endereço de e-mail da categoria do Discourse relacionada (endereço personalizado para e-mails recebidos; √ a categoria espelha a lista de distribuição) na lista de distribuição existente.
O Discourse recebe esses e-mails e cria os tópicos correspondentes.
Como a lista de distribuição adiciona um prefixo ao assunto do e-mail, quero removê-lo antes que o Discourse crie o tópicos.
Minhas perguntas agora:
./script/import_scripts/mbox/importer.rb é o importador correto?
A sintaxe .gsub("remove this prefix ","") está correta?
O importador não tem nada a ver com isso. Você precisará de um plugin (não deve ser mais do que algumas linhas de código) ou de um consumidor para o webhook topic_created, que poderia usar a API para modificar o título do tópico.