كيفية دمج المواضيع بشكل جماعي إلى المواضيع الأصلية لاستيراد Yahoo Groups؟

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

أو ربما تكون الطريقة الأفضل هي ببساطة تحديد جميع المواضيع التي ترغب في دمجها، ثم السماح للنظام بجمعها جميعًا في موضوع واحد، مع جعل أقدم رسالة تاريخيًا هي الموضوع الرئيسي واسم/موضوع الموضوع الأصلي، مع تحديد الترتيب بناءً على التواريخ الموجودة.

على سبيل المثال، تكون رسائلي في الغالب على هذا النحو:

  • اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما
  • [اسم القائمة البريدية] اسم موضوع ما

لذا، يجب أن أتمكن ببساطة من تحديد جميع هذه العناصر واستخدام أداة المفتاح الإنجليزي على الجانب الأيمن والنقر على “دمج” لتحقيق الهدف.

هل هذه الوظيفة مفقودة أم أنني أغفلت شيئًا ما؟

يتيح لك Discourse نقل المشاركات إلى مواضيع جديدة أو موجودة. لست متأكدًا مما إذا كان هذا هو الحل لمشكلتك، ولكن إذا كان كذلك، فهناك دليل لنقل المشاركات هنا: Moving posts to a new or existing topic.

شكرًا لك على لفت انتباهنا إلى ذلك. للأسف، كنتُ على دراية مسبقًا بكيفية عمل هذه الآلية. المشكلة الحقيقية تكمن في أن ما تُظهره في ذلك الدليل هو كيفية التعامل مع المنشورات داخل موضوع معين.

تخيل للحظة أن لديك 100 موضوع متطابق بنفس العنوان أو بعناوين متشابهة قليلاً.

المشكلة هي أن عملية استيراد mbox / Yahoo Groups لم تتم بدقة صحيحة. ربما يعود ذلك إلى معرفات غير صحيحة في رسائل البريد الإلكتروني، أو ربما لسبب آخر، لكن النتيجة هي أن بعضنا يملك آلافًا أو عشرات الآلاف من الرسائل التي انفصلت عن بعضها البعض بشكل خاطئ. نحن بحاجة إلى طريقة لدمج هذه الرسائل.

للأسف، قد لا يكون الدمج التلقائي مثاليًا بناءً على أسطر العناوين فقط. ربما نحتاج إلى مراجعتها بصريًا واختيار العديد منها يدويًا، ثم إخبار النظام بدمجها جميعًا في موضوع مشترك.

يبدو أن أفضل مكان (في الواقع المكان الوحيد) للقيام بذلك هو داخل العرض الفعلي للموضوع ضمن فئة معينة. القيام بذلك عبر الطريقة التي عرضتها في الدليل مرهق للغاية وغير عملي، حيث يتعين عليك الدخول إلى موضوع يحتوي على منشور واحد فقط، ثم المرور بعملية اختيار ذلك المنشور، ثم عزل المنشور الأصلي، وأخيرًا دمجه. تصبح الأمور أكثر تعقيدًا عندما يكون هناك عشرات أو مئات المنشورات التي تحمل بالفعل نفس سطر العنوان.

لذا، ما نحتاجه هو وظيفة “حدد المواضيع…” في عرض الفئة، تعمل بطريقة مشابهة لكيفية عمل وظيفة “حدد المنشورات…” داخل عرض الموضوع.

هل هذا منطقي؟

يبدو لي أنك تقف عند مفترق طرق. يجب أن تقرر مدى أهمية أن تكون رسائل ياهو القديمة هذه مُحتواة بشكل صحيح ومنظم ضمن موضوع واحد.

إذا كان ذلك مهماً، فإن اقتراحي هو أن تعود خطوة إلى الوراء لإصلاح ملفات mbox. ثم قم باستيرادها بعناية على دفعات صغيرة.

والطريقة الأفضل للقيام بذلك هي على الأرجح استيرادها إلى Mozilla Thunderbird والتلاعب بها هناك. كل مجلد في Thunderbird هو ملف mbox منفصل، لذا يمكنك نقل جميع الرسائل ذات الصلة إلى مجلد واحد، ثم فتح ملف mbox هذا في محرر نصوص وإجراء بحث واستبدال لتصحيح معرف الرسالة، والذي يستخدمه برنامج الاستيراد لتحديد الرسائل التي تنتمي معاً ضمن موضوع واحد.

في الحقيقة، الحل الأفضل هو العودة بالزمن وإقناع المبرمجين الذين طوروا Outlook ببذل جهد أكبر لاتباع معايير البريد الإلكتروني السائدة.

شيء واحد يتساءل عنه: @pfaffman هل أنت على علم بأي طريقة للقيام بذلك برمجيًا في هذه المرحلة؟ قد أكون مستعدًا لاستخدام نهج «الرش» حيث أقول ببساطة: «ادمج جميع المواضيع التي تحمل نفس عنوان الرسالة مع هذا التذييل».

ما أعنيه بذلك هو ما ورد في منشوري الأول أعلاه، حيث ألاحظ كيف أن بعض المواضيع بعنوان «اسم موضوع معين» تُسبق بـ «[اسم القائمة البريدية]». في الأساس، يمكنني ببساطة استخدام خيار دمج «نووي» لسحب كل ما هو محتمل أن يكون ذا صلة، ثم فصلها عندما يستخدم المستخدمون عن غير قصد أسماء أو عناوين مواضيع متشابهة…

هاها، نعم، ليست اقتراحًا سيئًا @tobiaseigen، لكن لا يوجد أي أمل في أن أتمكن من إيجاد الوقت لأتخذ هذه الخطوة الشاقة مع وجود عشرات الآلاف من الرسائل. ملفات mbox وحدها تتجاوز 500 ميجابايت. سأحاول حظي بإصلاح الأمور تدريجيًا من داخل Discourse، حيث يمكن للمدراء الآخرين المساعدة أيضًا بهذه الطريقة. آمل أن نجد اقتراحات أخرى كما في سؤالي الأخير، أو سنعمل على تنفيذ إضافة إذا لم تكن هناك خيارات أخرى.

أوصي بالبدء من جديد وإجراء الاستيراد بشكل صحيح من البداية؛ فما يقترحه @tobiaseigen يبدو واعداً. لقد مر وقت طويل منذ أن قمت باستيراد mbox كبير، وقمت بالكثير من العمل مسبقاً لإصلاح أشياء مثل ما تصفه. وإذا لم يكن ذلك خياراً متاحاً، فيمكنك تجربة شيء على جانب Rails، حيث تجمع جميع المنشورات التي تعتقد أنها تنتمي معاً، ثم ترتبها حسب التاريخ وتنشئ موضوعاً جديداً (أو تختار الأول)، وتنقل جميع المنشورات إلى الموضوع الجديد.

سيستغرق مني بعض الوقت للتوصل إلى كود فعلي.

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

سأبحث بنفسي عن طريقة في Rails في وقت ما قريبًا، ثم أشارك ما أكتشفه، ما لم يقترح أحد فكرة قبل أن أتمكن من القيام بذلك. سنترك الأمور “غير مرتبة” خلال العطلات إذا لزم الأمر، وحتى نحل هذه المشكلة الغريبة.