كيفية تغيير مستويات الإشعارات لجميع المستخدمين في موضوع

هل يعرف أحد طريقة آمنة لتعيين مستويات الإشعارات لجميع المستخدمين في موضوع معين إلى قيمة واحدة؟ أخمن أن الأمر سيكون شيئًا ما في وحدة تحكم Rails.

أريد تعيين جميع المستخدمين في موضوع معين إلى “كتم الصوت” أو “عادي” بدلاً من “متابعة” أو “تتبع”.

الهدف هو تقليل النشاط في موضوع كبير في موقف إشراف معقد.

إعجاب واحد (1)

قائمة المسؤول
الإعدادات
تفضيلات المستخدم


انتظر آسف تقصد موضوعًا واحدًا فقط. نعم تخيل أنك بحاجة إلى مساعدة

إعجاب واحد (1)

ماذا عن تفعيل وضع الإبطاء؟ ألن يساعد ذلك في تقليل النشاط؟ :thinking:

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

إعجاب واحد (1)

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

إعجابَين (2)

على الرغم من أنه تجدر الإشارة إلى أنه إذا كانوا يشاهدونه، فسيظلون يتلقون إشعارات عندما يكون غير مدرج.

أعتقد أنه يمكنك الآن استخدام نقطة النهاية /t/TOPIC_ID/notifications لتعيين مستوى الإشعار للمستخدم في موضوع معين، إذا كان ذلك خيارًا أكثر جاذبية من وحدة تحكم Rails؟

تفاصيل إضافية
  • يجب أن يكون مستخدم واجهة برمجة التطبيقات مسؤولاً (لذلك يجب أن يكون لديه نطاق عالمي) لتغيير مستوى إشعار مستخدم آخر.
  • عنوان URL لنقطة النهاية: siteurl/t/<topic_id>/notifications
  • نوع الطلب: POST
  • المعلمات:
    • username أو external_id للمستخدم المستهدف. إذا كان فارغًا، فسيتم تغيير مستوى إشعار المسؤول الخاص بالموضوع.
    • notification_level: قيمة عددية تتوافق مع المستوى
      • muted: 0,
      • regular: 1,
      • normal: 1, # اسم مستعار لـ regular
      • tracking: 2,
      • watching: 3,

ولكن بالنسبة لوحدة تحكم Rails، أعتقد أنها ستكون هذه: (تذكر أخذ نسخة احتياطية في حالة حدوث أي شيء قبل محاولة تغيير الأشياء في Rails :warning:)

TopicUser.where(topic_id: TOPIC_ID).update(notification_level: 1)

(1 هو عادي، 0 هو كتم)

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

واستعلام صغير لمستكشف البيانات للتحقق من المستويات للمستخدمين في موضوع ما إذا كان ذلك مفيدًا أيضًا:

SELECT 
    topic_id,
    user_id,
    notification_level
FROM topic_users
WHERE topic_id = TOPIC_ID
3 إعجابات

شكراً على الرد المفصل. سأجرب واجهة برمجة التطبيقات غداً.

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.