إزالة موضوع البريد الوارد؟

أهلاً بالمنتدى،

أقوم بسحب رسائل البريد الإلكتروني من قائمة بريدية إلى منصة ديسكورد، حيث تولّد عناوين الرسائل مواضيع جديدة. هذا يعمل بشكل جيد.
الآن أحتاج إلى إزالة الجزء الأول من العنوان، لأنه مجرد اسم القائمة البريدية
“[القائمة البريدية] الموضوع الفعلي” وأريد استخراج “الموضوع الفعلي” فقط

لم أستطع العثور على الحل المناسب عبر الإنترنت حتى الآن - هل لدى أحدكم اقتراح؟
شكراً لكم،
ماركو

ظننت أن هناك كودًا لإزالة ذلك، لكن لم أقم بعملية هجرة 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(/^[.*?\]/,"")

نادرًا ما أحصل على التعبيرات النمطية (regex) صحيحة من المحاولة الأولى، لذا ستحتاج إلى إجراء بعض الاختبارات (وربما التجربة على http://rubular.com/).

شكرًا لك على التنبيه.
أفترض أن التعبير النمطي (RegEx) سيكون مثل /^\[(.*?)\]\s/ لمطابقة كل شيء في بداية السطر مثل "[…] ".

هل يمكنك التكرم بتوضيح مكان العثور على ملف importer.rb في تثبيتك (استخدمت دليل التثبيت في أقل من 30 دقيقة على جهاز Ubuntu محلي افتراضي)؟

إذا كنت داخل الحاوية

cd /var/discourse
./launcher enter app

من أي مكان تقوم فيه بتشغيل السكربت، جرّب:

find . -name importer.rb

لقد قمت بتعديل ملف mbox/importer.rb باستخدام تعبير نمطي (RegEx) مُصحّح، كما جربت استبدالاً ثابتاً للنص دون أي تغيير في المواضيع الواردة.

سأحاول التوضيح:

  • قمت بالاشتراك بعنوان البريد الإلكتروني الخاص بفئة 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 تقوم باستيرادها. كل ما قلته كان خاطئًا بالنسبة لحالتك. آسف.