Eliminare l'oggetto delle email in arrivo?

Gentile forum,

Sto recuperando le email da una mailing list su Discourse; gli oggetti delle email generano nuovi argomenti. Questo funziona bene.
Ora devo rimuovere la prima parte dell’oggetto, poiché si tratta solo del nome della mailing list
“[mailinglist] argomento reale” e voglio estrarre solo l’“argomento reale”.

Non sono riuscito a trovare la soluzione giusta online finora - qualcuno?
Grazie,
marko

Pensavo che ci fosse del codice per rimuoverlo, ma sono passati 3 anni dall’ultima migrazione mbox.

Il titolo viene impostato in ...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

Puoi modificare la riga del titolo in qualcosa come:

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

Raramente riesco a scrivere le espressioni regolari al primo tentativo, quindi dovresti fare qualche test (e magari sperimentare su http://rubular.com/).

Grazie per averlo segnalato.
Immagino che la RegEx sia qualcosa come /^\[(.*?)\]\s/ per corrispondere a tutto all’inizio della riga come "[…] "

Potresti per favore specificare dove trovare importer.rb nella mia installazione (ho usato la guida “installazione in meno di 30 minuti” su una VM Ubuntu locale)?

Se sei all’interno del contenitore

cd /var/discourse
./launcher enter app

da dove stai eseguendo lo script, prova:

find . -name importer.rb

Ho modificato mbox/importer.rb utilizzando l’espressione regolare corretta e ho anche provato una stringa di sostituzione statica, senza però osservare alcuna variazione negli argomenti in arrivo.

Cercherò di chiarire:

  • Ho iscritto l’indirizzo email della categoria Discourse correlata (indirizzo personalizzato per le email in arrivo; ✓ la categoria replica la mailing list) alla mailing list esistente
  • Discourse riceve queste email e crea gli argomenti corrispondenti
  • Poiché la mailing list aggiunge un prefisso all’oggetto dell’email, vorrei rimuoverlo prima che Discourse crei l’argomento

Le mie domande sono:

  1. ./script/import_scripts/mbox/importer.rb è il corretto script di importazione?
  2. La sintassi .gsub("remove this prefix ","") è corretta?

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

Finora non ha prodotto alcun cambiamento…
Grazie ancora.

L’importatore non c’entra nulla con questo. Avrai bisogno di un plugin (non dovrebbe essere più di un paio di righe di codice) o di un consumer per il webhook topic_created, che potrebbe utilizzare l’API per modificare il titolo dell’argomento.

Ho frainteso completamente. Pensavo che avessi file mbox che stavi importando. Tutto ciò che ho detto è errato per la tua situazione. Scusa.