Supprimer l'objet des e-mails entrants ?

Cher forum,

Je récupère des e-mails d’une liste de diffusion vers Discourse, et les sujets des messages génèrent de nouveaux sujets. Cela fonctionne très bien.
Maintenant, je dois supprimer la première partie du sujet, car il s’agit simplement du nom de la liste de diffusion : « [mailinglist] sujet réel », et je veux extraire uniquement le « sujet réel ».

Je n’ai pas encore trouvé la bonne solution en ligne — quelqu’un aurait une idée ?
Merci,
Marko

Je pensais qu’il y avait du code pour supprimer cela, mais cela fait 3 ans que je n’ai pas effectué de migration mbox.

Le titre est défini dans ...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

Vous pouvez modifier la ligne du titre pour quelque chose comme :

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

Je réussis rarement les expressions rationnelles du premier coup, vous voudrez donc faire quelques tests (et peut-être expérimenter sur http://rubular.com/).

Merci de l’avoir signalé.
Je suppose que l’expression rationnelle serait /^\[(.*?)\]\s/ pour tout ce qui se trouve au début de la ligne, comme "[…] ".

Pourriez-vous s’il vous plaît préciser où trouver importer.rb sur mon installation (j’ai utilisé le guide d’installation « moins de 30 minutes » sur une machine virtuelle Ubuntu locale) ?

Si vous êtes à l’intérieur du conteneur

cd /var/discourse
./launcher enter app

Depuis l’endroit où vous exécutez le script, essayez :

find . -name importer.rb

J’ai modifié mbox/importer.rb en utilisant l’expression rationnelle corrigée et j’ai également essayé une chaîne de remplacement statique, sans aucun changement dans les sujets entrants.

Je vais essayer de clarifier :

  • J’ai abonné l’adresse e-mail de la catégorie Discourse concernée (adresse personnalisée pour les e-mails entrants ; √ la catégorie reflète la liste de diffusion) à la liste de diffusion existante
  • Discourse reçoit ces e-mails et crée des sujets correspondants
  • Comme la liste de diffusion ajoute un préfixe à l’objet de l’e-mail, je souhaite le supprimer avant que Discourse ne crée le sujet

Mes questions maintenant :

  1. ./script/import_scripts/mbox/importer.rb est-il le bon importateur ?
  2. La syntaxe .gsub("remove this prefix ","") est-elle correcte ?

J’ai essayé :
mapped[:title] = row['subject'].strip[0...255].gsub(/^\[(.*?)\]\s/,"")

Pour l’instant, cela n’a rien changé…
Merci encore.

L’importateur n’a rien à voir avec cela. Vous aurez besoin d’un plugin (qui ne devrait pas dépasser quelques lignes de code) ou d’un consommateur pour le webhook topic_created, qui pourrait utiliser l’API pour modifier le titre du sujet.

J’ai complètement mal compris. Je pensais que vous aviez des fichiers mbox que vous importiez. Tout ce que j’ai dit est erroné pour votre situation. Désolé.