受信メールの件名を削除しますか?

フォラムの皆様、

メーリングリストからのメールをDiscourseにポーリングしており、メールの件名が新しいトピックを生成しています。これは正常に動作しています。
次に、件名の最初の部分を削除する必要があります。それは単にメーリングリストの名前であるためです。
「[mailinglist] 実際のトピック」という形式で、ここでは「実際のトピック」のみを抽出したいと考えています。

オンラインで適切な解決策を見つけることができませんでした。ご存知の方がいらっしゃいますか?
よろしくお願いいたします、
マルコ

その部分を削除するコードが入っていたと思ったのですが、mbox の移行は 3 年ぶりです。

タイトルは ...mbox/importer.rb で設定されます:

    def map_first_post(row)
      mapped = map_post(row)
      mapped[:category] = category_id_from_imported_category_id(row['category'])
      mapped[:title] = row['subject'].strip[0...255]
      mapped
    end

タイトル行を以下のように変更できます:

  mapped[:title] = row['subject'].strip[0...255].gsub(/^[.*?\]/,"")

正規表現は最初に正しく書けることはめったにありませんので、少しテストを行ってください(http://rubular.com/ で試すのも良いでしょう)。

ご指摘ありがとうございます。
おそらく、"[…] " のように行の先頭にあるすべてに一致する RegEx は /^\[(.*?)\]\s/ のようになると思います。

私の環境(ローカルの Ubuntu VM で「30 分未満のインストール」ガイドを使用)において、importer.rb がどこにあるか詳しく教えてください

コンテナ内にある場合

cd /var/discourse
./launcher enter app

スクリプトを実行している場所から以下を試してください:

find . -name importer.rb

mbox/importer.rb を修正した正規表現で変更し、受信トピックに変更がないまま静的な置換文字列でも試しました。

以下を明確にします:

  • 関連する Discourse カテゴリのメールアドレス(受信メール用のカスタムアドレス;カテゴリがメーリングリストをミラーリング)を既存のメーリングリストに登録しました
  • Discourse がこれらのメールを受信し、対応するトピックを作成します
  • メーリングリストがメールの件名にプレフィックスを追加するため、Discourse がトピックを作成する前にそれを削除したいと考えています

現在の質問:

  1. ./script/import_scripts/mbox/importer.rb は正しいインポーターですか?
  2. .gsub("remove this prefix ","") の構文は正しいですか?

以下を試しました:
mapped[:title] = row['subject'].strip[0...255].gsub(/^\[(.*?)\]\s/,"")

しかし、これまで何も変化していません…
再度、ありがとうございます。

インポータはこれとは無関係です。topic_created ウェブフック用のプラグイン(数行のコードで済むはずです)または、API を使用してトピックのタイトルを変更できるコンシューマーが必要になります。

完全に誤解していました。あなたがインポートしていたのが mbox ファイルだと思っていたのです。私の発言はすべてあなたの状況には当てはまりません。申し訳ありません。