مراجعة - أضف غرف صوتية على غرار ديسكورد إلى مجتمعك 🎙

مرحباً بالجميع! أشارك معكم Resenha، وهو إضافة تجريبية تضيف غرف دردشة صوتية ومرئية مباشرة إلى Discourse — دون الحاجة إلى تطبيقات خارجية، فقط تقنية WebRTC بين الأقران في شريطك الجانبي.

output

جرّبها مباشرة

:point_right: https://discourse-on-a-pi5.falco.dev/

(نعم، تعمل على Raspberry Pi 5 — وهذا مدى خفتها.)

كيف تعمل

انقر على غرفة في الشريط الجانبي للانضمام، وانقر مرة أخرى للمغادرة. بشكل افتراضي، تنتقل جميع الوسائط بين الأقران عبر WebRTC — حيث يتعامل خادم Discourse الخاص بك فقط مع الإشارات، وليس الوسائط. يمكن للمواقع التي تحتاج إلى مكالمات أكبر توجيه الغرف اختياريًا عبر خادم وسائط LiveKit — إما LiveKit Cloud أو خادم مستضاف ذاتيًا. يتم إنشاء غرفة “Watercooler” افتراضية عند التثبيت حتى يتمكن مجتمعك من بدء المحادثة فوراً.

الميزات

  • تجربة مستخدم تركز على الشريط الجانبي — الغرف وصور المشاركين المباشرة مباشرة في الشريط الجانبي، على غرار Discord، مع مؤشرات كلام متحركة
  • مشاركة الفيديو والشاشة — فيديو كاميرا اختياري ومشاركة الشاشة/العلامة مع صفحة غرفة كاملة، وتخطيطات موزاييك/عرض، ودعم ملء الشاشة
  • أداة مكالمة دائمة — مكالمة مصغرة قابلة للتحريك والتغيير في الحجم تتبعك أثناء تصفح المنتدى، بما في ذلك الفيديو
  • إعدادات الصوت والفيديو - منتقي الأجهزة، اختبار الميكروفون المباشر، بواب حساسية الإدخال، كبت الضوضاء WebAssembly (DTLN)، وضبابية الخلفية MediaPipe — جميعها تتم معالجتها محلياً في المتصفح
  • دردشة الغرفة — تحصل كل غرفة على دردشة نصية مدعومة بقنوات وموضوعات دردشة Discourse الحقيقية
  • غرف المسرح — غرف متحدث/جمهور مع قائمة طلب التحدث، لجلسات الأسئلة والأجوبة والمكالمات المجتمعية
  • أذونات الغرفة — غرف عامة، مقيدة بالمجموعات، وخاصة، مع شارات قفل في الشريط الجانبي وهاشتاقات الغرف لربط الغرف في المنشورات
  • تحكم المشاركين - قائمة السياق مع مستوى الصوت لكل مستخدم، كتم الصوت، الإصمات، والطرد؛ بالإضافة إلى كتم الصوت/الانقطاع التلقائي عند عدم النشاط والحالة التلقائية للمستخدم
  • إدارة الغرفة — إنشاء الغرف من قبل المستخدمين مقيد بالمجموعات، واجهة CRUD للموظفين، وواجهة REST كاملة للتحكم البرمجي
  • بنية تحتية صفرية بشكل افتراضي — WebRTC في المتصفح فقط مع تشفير DTLS-SRTP، لا حاجة لـ SFU/MCU
  • تكامل LiveKit اختياري — قم بتضمين الغرف فردياً أو قم بتوجيه كل شيء عبر LiveKit Cloud أو خادم LiveKit الخاص بك للمكالمات الكبيرة، مع لوحة صحة المسؤول ومصالحة تعتمد على webhooks

الحالة

:warning: بيتا — تم اختبار وضع الأقران الافتراضي ويعمل بشكل جيد مع المجموعات الصغيرة (2-10 مشاركين). للغرف الأكبر، وجه الإضافة إلى LiveKit (Cloud أو مستضاف ذاتيًا) — كل شيء آخر يستمر في العمل بشكل متطابق.

التثبيت

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/xfalcox/resenha.git

قم بتفعيلها في الإدارة > الإعدادات > الإضافات > تمكين resenha.

نرحب بالتغذية الراجعة

هذا تجريبي — الأخطاء والأفكار والأسئلة موضع ترحيب في هذا الموضوع. طلبات السحب أيضاً!


ملاحظة: هذه ليست إضافة official.

54 إعجابًا

مراجعة، رائع أحببتها شكرًا لك يا ابن بلدي

12 إعجابًا

لقد قمت بتثبيته للتو وأصبح جاهزًا للعمل في حوالي نصف ساعة. يبدو أنه يعمل بشكل جيد! أود أن أرى بعض التغييرات/الإضافات على الميزات:

الميزة الحالة
إعادة تسمية غرفة :cross_mark: لم يتم التنفيذ
حذف غرفة :cross_mark: لم يتم التنفيذ
تغيير اسم الغرفة الافتراضي :cross_mark: مُرمز بشكل ثابت
ربط الغرف بفئات Discourse :cross_mark: غير مدعوم
تعيين أذونات لكل غرفة :cross_mark: غير مدعوم
إنشاء غرف تنتهي صلاحيتها تلقائيًا :cross_mark: غير مدعوم
أوصاف/مواضيع الغرف :cross_mark: غير مدعوم
10 إعجابات

هذا مذهل. هل هناك أي خطة للفريق لاعتماد هذا رسميًا بمجرد خروجه من مرحلة ألفا؟

7 إعجابات

لا توجد خطط حاليًا، حيث أن هذا استكشاف لإمكانيات التكنولوجيا وكيف يمكن دمجها مع Discourse.

ومع ذلك، مثل أي شيء آخر، يعتمد الأمر على ما يريده عملاؤنا.

9 إعجابات

هذا رائع جدًا يا فالكو! يمكنني أن أرى عددًا لا بأس به من التطبيقات لهذا الأمر، بناءً على ما أدرجته. إن المكونات الإضافية للميزات كهذه تساعد بالتأكيد في جعل منصة Discourse Meta هي المنصة المفضلة!

4 إعجابات

أين هو الخيار لإنشاء غرفة جديدة؟

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

إعجابَين (2)

ألا ينبغي أن يكون experimental موجودًا في الوقت الحالي؟

إضافة رائعة

3 إعجابات

لقد كنت ألعب بهذا لعدة أيام - وهو رائع!!!

إنه يحل مشكلة “الترقية” السهلة لمناقشة المنتدى/الدردشة إلى محادثة شفهية بشكل جميل. لقد أمضيت سنوات في المعاناة بين الحاجة إلى التبديل إلى منصات أخرى، أو وجود محاولات (تستهلك موارد كبيرة) لعقد مؤتمرات فيديو متكاملة.

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

إضافة الكريز على الكعكة ستكون بالطبع:

  1. خيار للفيديو (من المحتمل ألا يكون ممكنًا تقنيًا بهذه التقنية خفيفة الوزن)

  2. نسخ صوتي بالذكاء الاصطناعي، ذكي بما يكفي لدمج المواضيع والدردشات ذات الصلة. سيكون هذا مذهلاً للغاية ككاتب محاضر للاجتماع.

11 إعجابًا

شكراً على الملاحظات! كان هذا هو هدفي بالضبط من هذا!

بالتأكيد، ستكون هذه خطوة منطقية تالية، مع غرف مؤقتة لدعمها.

إنه قابل للتنفيذ للغاية، سواء بدون SFU/MCU للأشخاص الذين لديهم تحميل كافٍ، أو مع دعم اختياري له.

7 إعجابات

كان هذا مثاليًا، لن أقوم بالتحديث لفترة طويلة، ولكن في فبراير سأقوم بالتحديث للمرة الأخيرة عندما يتم إطلاق ESR لتضمين هذا المكون الإضافي

أنا متحمس جدًا لذلك وآمل أن يأتي.

إعجابَين (2)

هل هناك أي فرصة لتغيير الأيقونة إلى bottle-water لغرفة الدردشة “Watercooler”؟

3 إعجابات

أصبح هناك الآن واجهة مستخدم لإدارة الغرف.

10 إعجابات

شكراً فالكو على هذا المكون الإضافي :heart:

إنه عمل رائع :+1:

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

أنا أختبر في بيئة الإنتاج وسأعود بالتغذية الراجعة! لنراجع :brazil:

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

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

أصبحت هناك الآن شاشة تفاصيل الغرفة تستخدم نمط قائمة الكباب (kebab menu pattern) من Discourse Chat

إعجابَين (2)

إنها لا تتداخل مع السمة الافتراضية، ربما قم بتعديل السمة الخاصة بك للتعامل مع المسافة الأقل للحشو؟

image

تم إصلاح هذا الآن.

3 إعجابات

بناءً على الأخبار الأخيرة، أضفت ميزة جديدة إلى المكوّن الإضافي: مُرشِّح ضوضاء يعمل بالذكاء الاصطناعي.

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

6 إعجابات