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
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)?
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:
./script/import_scripts/mbox/importer.rb è il corretto script di importazione?
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.