تمديد استخدام الوضع البطيء لمعركة "الدردشة المباشرة"

نحن نحب ميزة الوضع البطيء ونود توسيع نطاق استخدامها. نرغب في تفعيل الوضع البطيء بشكل دائم لجميع الفئات – ليس فقط للمواضيع الجديدة فيها، بل لجميع المواضيع الموجودة أيضًا.

أولاً، دعونا نوضح سبب رغبتنا في ذلك.

لدينا حاليًا حوالي 10 آلاف عضو و13 ألف موضوع. بعض مستخدمينا غير معتادين على إجراء مناقشات ذات معنى وعمق. بدلاً من ذلك، يقومون بالدردشة المباشرة ويعاملون المنتدى بأكمله كتطبيق رسائل. هذا ليس ما نرغب في رؤيته – فنحن نريد مناقشات ذات معنى في مجتمعنا. ومع ذلك، في معظم الحالات، فإن إجراءات “تعليق” أو “كتم” الصوت تكون قاسية للغاية وغير مناسبة. وهنا تأتي ميزة الوضع البطيء. بفضل هذه الميزة، يمكننا إبطاء وتيرة النقاش ومنع تحول الدردشة إلى ضجة مستمرة. وبناءً على فهمنا، وإذا أخطأنا في ذلك، فهناك طريقتان لتفعيل الوضع البطيء:

  • تفعيله يدويًا لموضوع معين، و
  • تفعيله على مستوى الفئة: بمجرد تفعيل الإعداد لفئة معينة، سيتم تفعيل الوضع البطيء تلقائيًا لجميع المواضيع الجَديدة ضمن تلك الفئة.

حاليًا، يكتشف مشرفونا “المواضيع الساخنة” (المواضيع التي تحولت إلى دردشة مباشرة) ويفعلون الوضع البطيء لها يدويًا. والمشكلة هي أنه نظرًا لأن ليس جميع المواضيع الموجودة في الوضع البطيء، فإن مواضيع أخرى غير مفعّل فيها الوضع البطيء تبرز وتتحول إلى دردشة مباشرة مرة أخرى. وبالتالي، يبدأ بعض المستخدمين بالشكوى: “لماذا تبرز بعض المواضيع باستمرار ولا يتم تفعيل الوضع البطيء عليها (كعقوبة)؟”، “لماذا هذا الموضوع في الوضع البطيء لمدة 4 ساعات المتبقية بينما آخر لمدة ساعة واحدة؟”، وما إلى ذلك. علاوة على ذلك، ظهرت نظريات مؤامرة حوله، وتعرض فريقنا لنقد كبير (رغم أننا لسنا معتادين على ذلك) بسبب كيفية تفعيل الوضع البطيء بشكل “عشوائي”. وستزداد الأمور سوءًا لأن لدينا موارد محدودة جدًا بينما يستمر عدد المستخدمين والمواضيع في الزيادة.

نرغب في حل هذه المشكلة، أو على الأقل تحسين الوضع، باتخاذ النهج التالي:

  1. تفعيل الوضع البطيء لجميع المواضيع العامة: وذلك لمنع الدردشة المباشرة وتشجيع النقاشات ذات المعنى.
  2. تعيين الصفحة الرئيسية الافتراضية على “جديد” (أو أي خيار غير “الأحدث”) لجميع المستخدمين والموقع: وذلك لتمكين المستخدمين المهتمين بالعثور على محتوى حقيقي (وليس مجرد خيوط “ها ها” و"مرحبًا") من تجربة أفضل عند زيارة موقعنا. في البداية، قمنا بتعيين “الأحدث” كصفحة رئيسية افتراضية للموقع. لاحظنا أن هذا يجعل المستخدمين يرون “المواضيع الساخنة” بشكل افتراضي. علاوة على ذلك، نظرًا لوجود عدد كبير جدًا من هذه “المواضيع الساخنة”، قد يعتقد المستخدمون الجدد أو المستخدمون الذين يملكون وقتًا محدودًا لزيارة موقعنا أن جميع المواضيع التي يرونها هي مجرد محادثات بلا معنى، أو يعتقدون أن الدردشة المباشرة أمر طبيعي أو مقبول هنا – للأسف، هذا يؤذي مجتمعنا بشدة. نأمل أن يؤدي تغيير الصفحة الرئيسية الافتراضية إلى “جديد” إلى تخفيف المشكلة. على الأقل، سيحصل المستخدمون بشكل افتراضي على رؤية شيء آخر غير خيوط الدردشة المباشرة أولاً.

بالنسبة للنقطة 1، نخطط لما يلي:

1a. تفعيل الوضع البطيء لجميع الفئات – وهذا سيغطي جميع المواضيع الجديدة.

1b. تحديث دفعي لجميع المواضيع العامة الموجودة لتفعيل الوضع البطيء. → هذه خطوة لا نعرف كيفية تنفيذها. لم نجد خيار الوضع البطيء أثناء إجراء التحديث الدفعي للمواضيع عبر واجهة المستخدم. التحديث اليدوي لكل موضوع على حدة عبر واجهة المستخدم ليس خيارًا عمليًا نظرًا لمواردنا المحدودة وعدد المواضيع الموجودة. هل يعرف أحد ما يمكننا فعله لتحقيق ذلك؟ على سبيل المثال، الاتصال بقاعدة البيانات وتغيير بعض الحقول ربما؟ نرغب فقط في إجراء التغيير على المواضيع العامة. ولا يجب أن تتأثر الرسائل الخاصة. أو، هل من المنطقي إضافة خيار “الوضع البطيء” في واجهة التحديث الدفعي؟

بالنسبة للنقطة 2، سنقوم بما يلي:

2a. في إعدادات الموقع، جعل “جديد” العنصر الأول في القائمة العلوية.

2b. تحديث دفعي للصفحة الرئيسية الافتراضية لجميع المستخدمين. → هذه أيضًا خطوة نحتاج إلى نصيحة حول كيفية تحقيقها.

نحتاج إلى مساعدة في النقطة 1b و2b ونود الحصول على أي مدخلات حول حلول أفضل. أي شيء يمكن أن يكون مفيدًا. نقدر مساعدتكم!

6 إعجابات

أعتقد أنني أود رؤية شيء على هذا المنوال في إعدادات الفئة:


أعتقد أنه يمكنك حل 1b عن طريق تعديل المواضيع عبر وحدة تحكم Rails. لقد اختبرت محليًا للتأكد من أن هذا يعمل بالطريقة التي أتوقعها، لكنني ما زلت أوصي بشدة بأن تختبر في بيئة تجريبية قبل محاولة ذلك على منصة Discourse الحية الخاصة بك، أو أن تنتظر تأكيدًا من أحد أفراد فريق Discourse بأن هذا حل جيد. (وربما تختبر في البيئة التجريبية حتى لو قدموا تأكيدًا.)

بافتراض أنك تستخدم خادم Linux مع تثبيت قياسي، استخدم SSH أو أي طريقة أخرى للدخول إلى shell على الخادم، ثم استخدم الأوامر التالية:

cd /var/discourse
./launcher enter app
rails c

ثم في وحدة تحكم Rails الناتجة:

Topic.where.not(archetype: "private_message").update_all(slow_mode_seconds: 120)

الرقم 120 هو عدد الثواني المسموح بها قبل السماح بنشر رسالة أخرى، لذا استبدله حسب رغبتك. وإذا كنت أيضًا ترغب في تجنب تعيين هذا الإعداد لفئات معينة، يمكنك ربط الأمر بـ .where.not(category_id: n)، على سبيل المثال، لتجنب تعيين الوضع البطيء للفئتين 3 و4، ستعدل الأمر السابق كالتالي:

Topic.where.not(archetype: "private_message").where.not(category_id: 3).where.not(category_id: 4).update_all(slow_mode_seconds: 120)

يمكنك الحصول على معرف الفئة بزيارة الفئة في متصفحك والنظر في شريط العناوين للعثور على شيء مثل “c/staff/3”.

3 إعجابات

شكرًا لك @Simon_Manning! ساعدت ردك وأرشدنا في العثور على طريقة مماثلة لـ 2b.

هذا ما سنفعله لـ 2b (في حال كان أي شخص مهتمًا). بعد الدخول إلى وحدة تحكم Rails:

UserOption.update_all(homepage_id: 4)

الـ homepage_id 4 تعني “جديد” في موقعنا التجريبي. لست متأكدًا مما إذا كان هذا متسقًا بسبب إعدادات المواقع المختلفة. لكن من السهل التحقق. فقط اجعل هناك مستخدمًا واحدًا مع الصفحة الرئيسية الافتراضية مضبوطة على “جديد” ثم ادخل إلى قاعدة البيانات للتحقق من الـ homepage_id لهذا المستخدم. يمكن العثور على التعليمات الودية حول كيفية الدخول إلى قاعدة البيانات والتحقق من البيانات هنا.

إعجابَين (2)

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

  • كيف يعرف النظام متى ينتقل إلى الوضع البطيء؟
  • ما هي نقاط البيانات التي ينظر إليها النظام لاتخاذ قرار الانتقال إلى الوضع البطيء؟
إعجاب واحد (1)