كيفية الترحيل من mailman2 إلى discourse

مرحبًا،

mailman2discourse هو أداة سطر أوامر لاستيراد ملف إعدادات mailman2 (الموجود في ملف config.pck) إلى فئة في discourse متوفر على PyPI. يتم إنشاء مستخدم لكل عضو في قائمة البريد الإلكتروني، ويتم إخطارهم عند نشر رسالة جديدة في الفئة (ما لم تكن خيار mailman2 الخاص بهم هو عدم استلام أي بريد على الإطلاق). يصبح مشرفو قائمة البريد الإلكتروني الخاصة أعضاء في مجموعة discourse يمكنهم مراجعة كل منشور جديد. إذا كانت أرشيفات قائمة البريد الإلكتروني غير عامة، فإن فئة discourse تكون مرئية فقط لمجموعة discourse تحاكي قائمة أعضاء mailman2.

التثبيت

$ pipenv install mailman2discourse

الاستخدام

المتطلبات:

  • مفتاح API (من /admin/api/keys/new) مع مستوى مستخدم All Users
  • مستخدم مدير (مثل admin)
  • حاوية مستورد mbox تحتوي على:
    • DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE: 60000000
    • DISCOURSE_MAX_REQS_PER_IP_MODE: none
    • غير شامل لـ “templates/web.ratelimited.template.yml”
  • ملف config.pck الخاص بقائمة البريد الإلكتروني mailman2

للاستيراد من قائمة البريد الإلكتروني mailman2 listname@example.com:

    $ mailman2discourse --url http://172.19.0.2 --api-key APIKEY --api-user admin \
                      --mailman-config config.pck \
                      --list listname --domain example.com

الاستيراد متكرر النتيجة (idempotent)، مما يعني أنه آمن تشغيله عدة مرات، على سبيل المثال إذا تم إيقافه أو عند تحديث ملف config.pck.

يمكن بعد ذلك استيراد محتوى الأرشيف.

استيراد الأرشيف

يمكن استيراد أرشيفات قائمة البريد الإلكتروني باستخدام مستورد mbox. يجب وضع ملفات .mbox و .mbox.gz في مجلد يحمل نفس اسم الفئة التي أنشأها mailman2discourse.

تقارير الأخطاء

أفضل مكان للإبلاغ عن المشاكل هو مُتتبع المشكلات، لكن النشر في هذا الموضوع مقبول أيضًا.

بدأت العمل على هذا السكربت العام الماضي (Working on a mailman2 to discourse migration script) وكان لدي الفرصة لاختباره في مايو 2021 أثناء نقل (Les listes de diffusion évoluent : Mailman -> Discourse - SPIP Blog) قوائم البريد الخاصة بـ Spip. لا يزال السكربت في مراحله الأولى، لكنني الآن واثق من أنه قابل للاستخدام.

لا تزال هناك العديد من الخطوات اليدوية المشاركة في عملية الاستيراد، وأود أن يكون لدي شيء مثل discourse import --mailman2 config.pck mbox-archives-directory يعمل “ببساطة”. ومع ذلك، لا أخطط لتنفيذ ذلك. أنا سعيد بـ (https://lab.enough.community/dachary/rezo-import/-/blob/master/rezo-import) سكريبتات shell المخصصة ولا أرى كيف يمكن تعميمها. وعلى أي حال، فإن المنطق الذي يطبقه (Client Challenge) mailman2discourse هو جزء من اللغز كان مفقودًا، وأنا سعيد بوجوده :slight_smile: