Я получаю письма из рассылки в Discourse, и темы писем создают новые обсуждения. Это работает отлично.
Теперь мне нужно удалить первую часть темы, так как это просто название рассылки:
«[mailinglist] актуальная тема», и я хочу извлечь только «актуальную тему».
Я пока не смог найти подходящее решение в интернете — есть ли у кого-то идеи?
Спасибо,
Марко
Я редко с первого раза правильно пишу регулярные выражения, поэтому вам стоит провести немного тестирования (и, возможно, поэкспериментировать на http://rubular.com/).
Спасибо, что обратили на это внимание.
Предполагаю, что регулярное выражение будет выглядеть как /^\[(.*?)\]\s/, чтобы совпадать со всем в начале строки, например "[…] ".
Не могли бы вы подробнее рассказать, где найти файл importer.rb в моей установке (я использовал руководство «установка менее чем за 30 минут» на локальной виртуальной машине Ubuntu)?
Я изменил mbox/importer.rb, используя исправленное регулярное выражение, а также попробовал статическую строку замены, но это не привело к изменению входящих тем.
Позвольте мне уточнить:
Я подписал адрес электронной почты соответствующей категории Discourse (пользовательский адрес для входящих писем; √ категория зеркалит рассылку) на существующую рассылку
Discourse получает эти письма и создаёт соответствующие темы
Так как рассылка добавляет префикс к теме письма, я хочу удалить его до того, как Discourse создаст тему
Теперь мои вопросы:
Является ли ./script/import_scripts/mbox/importer.rb правильным импортером?
Правильна ли синтаксически конструкция .gsub("remove this prefix ","")?
Я попробовал: mapped[:title] = row['subject'].strip[0...255].gsub(/^\[(.*?)\]\s/,"")
Импортёр не имеет к этому никакого отношения. Вам понадобится плагин (это должно быть не больше нескольких строк кода) или обработчик для вебхука topic_created, который мог бы использовать API для изменения заголовка темы.