¿Eliminar el asunto de los correos electrónicos entrantes?

Estimado foro,

Estoy recuperando correos electrónicos de una lista de correo hacia Discourse; los asuntos de los correos generan nuevos temas. Esto está funcionando correctamente.
Ahora necesito eliminar la primera parte del asunto, ya que solo contiene el nombre de la lista de correo:
“[lista_de_correo] tema_real”, y quiero extraer solo el “tema_real”.

Hasta ahora no he encontrado la solución adecuada en línea. ¿Alguien tiene alguna idea?
Gracias,
Marko

Pensé que había código para eliminar eso, pero han pasado 3 años desde que hice una migración de mbox.

El título se establece en ...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

Puedes cambiar la línea del título a algo como:

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

Rara vez acierto las expresiones regulares a la primera, así que querrás hacer algunas pruebas (y quizás experimentar en http://rubular.com/).

Gracias por señalarlo.
Supongo que la expresión regular sería algo como /^\[(.*?)\]\s/ para coincidir con todo al principio de la línea, como "[…] ".

¿Podrías por favor detallar dónde encontrar el archivo importer.rb en mi instalación? (Usé la guía de instalación en “menos de 30 minutos” en una máquina virtual local con Ubuntu).

Si estás dentro del contenedor

cd /var/discourse
./launcher enter app

desde donde estés ejecutando el script, intenta:

find . -name importer.rb

He modificado mbox/importer.rb utilizando la expresión regular corregida y también intenté una cadena de reemplazo estática, pero sin ningún cambio en los temas entrantes.

Intentaré aclararlo:

  • Suscribí la dirección de correo electrónico de la categoría de Discourse relacionada (dirección personalizada para correos entrantes; √ la categoría refleja la lista de correo) a la lista de correo existente.
  • Discourse recibe estos correos y crea los temas correspondientes.
  • Como la lista de correo añade un prefijo al asunto del correo, quiero eliminarlo antes de que Discourse cree el tema.

Mis preguntas ahora son:

  1. ¿Es ./script/import_scripts/mbox/importer.rb el importador correcto?
  2. ¿Es correcta la sintaxis de .gsub("remove this prefix ","")?

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

Hasta ahora, no ha cambiado nada…
Gracias de nuevo.

El importador no tiene nada que ver con esto. Necesitarás un plugin (no debería ser más que un par de líneas de código) o un consumidor para el webhook topic_created, el cual podría usar la API para modificar el título del tema.

Lo entendí totalmente mal. Pensé que tenías archivos mbox que estabas importando. Todo lo que dije es incorrecto para tu situación. Lo siento.