صندوق استطلاع RSS

:information_source: الملخص يعرض RSS Polling Onebox استيرادات RSS Polling على شكل “onebox” للمقال الأصلي، مع ملخصات اختيارية للقنوات، ووصفات يوتيوب، وتنسيقات للعناوين
:hammer_and_wrench: رابط المستودع Peter-Petrik/discourse-rss-onebox
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

الميزات

  1. عرض Onebox: تصبح استيرادات RSS Polling في الفئات التي تختارها عبارة عن onebox لروابط المقالات - العنوان، الصورة، والوصف من صفحة المقال - بدلاً من نص القناة المقطوع عند أول فقرة. تبقى الاستيرادات في الفئات الأخرى دون تغيير.
  2. إخفاء “عرض المشاركة الكاملة” في الفئات المختارة فقط.
  3. ملخصات القنوات (اختياري): عندما لا تحتوي صفحة المقال على وصف خاص بها، يظهر الملخص من القناة داخل الـ onebox، أو أسفل الرابط إذا تعذر بناء onebox.
  4. وصفات يوتيوب (اختياري): يظهر الوصف الكامل للفيديو من قناة القناة أسفل المشغل، مع سطور جديدة وروابط قابلة للنقر.
  5. تنسيقات العناوين (اختياري): تنسيقات منفصلة لمواضيع المدونات ويوتيوب باستخدام %{title} و %{source}، على سبيل المثال %{source} blog: %{title}. تكون إعادة التسمية صامتة - بدون مراجعة، أو رفع، أو إشعار - وتظل الروابط القديمة تعمل.
  6. أسماء العرض: تتيح صفحة الإدارة عرض كل قنوات RSS Polling مع اسمها المنشور، حيث يمكنك تحديد الاسم المستخدم لـ %{source}. يؤدي الحفظ إلى إعادة عرض عناوين تلك القناة.
  7. الحماية من تحديثات القنوات: لم تعد المشاركات المصدرية المعدلة أو تغييرات تنسيق القناة تكتب فوق الموضوع المعروض كـ onebox.
  8. مهام Rake للمواضيع الموجودة مسبقاً: يحول rss_onebox:convert الاستيرادات السابقة إلى oneboxes، بينما يملأ rss_onebox:enhance الملخصات والأوصاف والعناوين. كلاهما يعمل افتراضياً كتنفيذ جاف (dry run).

المبررات

ندير منتدى يجلب مدونات الأعضاء وقنوات يوتيوب في فئة واحدة. عرضت مقتطفات RSS Polling العديد من القنوات بشكل سيئ - تنسيق مكسور، صور مفقودة، وزر “عرض المشاركة الكاملة” يعيد كشف الصفحة - بينما أنتجت نفس الرابط المصقوب في مشاركة onebox نظيفة. تجعل هذه الإضافة كل استيراد يبدو كذاك الرابط المصقوب، وتملأ ما لم تستطع الصفحات وحدها توفيره.

الإعدادات

بعد التثبيت، انتقل إلى الإدارة → الإضافات → RSS Polling Onebox:

  1. الإعدادات: فعّل الإضافة، اختر الفئات التي يجب أن تكون استيراداتها onebox، وفعّل الميزات الاختيارية.
  2. أسماء العرض: حدد الاسم المستخدم لـ %{source} في العناوين، لكل قناة، أو اتركه فارغاً لاستخدام الاسم الذي تنشره القناة. تحديث الأسماء المنشورة يقرأ كل القنوات المفعلة.

للمواضيع المستوردة قبل التثبيت، شغّل rake rss_onebox:convert ثم rake rss_onebox:enhance داخل الحاوية (كلاهما تنفيذ جاف؛ أضف APPLY=1 للكتابة). يوثق README كل إعداد ومهمة، ويحدد CHANGELOG كل إصدار.

ملاحظات

  1. تم الاختبار على Discourse 2026.7 ESR؛ تم التحقق من التوافق مع main حتى سبتمبر 2026 في الكود. الإصدارات الأقدم غير مختبرة.
  2. تتطلب RSS Polling، المدمجة مع Discourse.
  3. بعض الميزات تغلف أجزاء داخلية من RSS Polling و TopicEmbed لأن الخطافات الموثقة غير موجودة بعد؛ راجع RSS Polling: نقاط امتداد للإضافات.
  4. قراءة وصفات يوتيوب بشكل أصلي في RSS Polling قيد النقاش في RSS Polling: قراءة وصف الفيديو من قنوات يوتيوب؛ إذا تم إدراجه في النواة، ستستخدمه هذه الإضافة.
  5. جودة الـ onebox تعتمد على وسوم Open Graph في صفحة كل مقال.

الأسئلة والمشاكل: رد هنا، أو افتح مشكلة على GitHub.

3 إعجابات

أعجبني الفكرة، وأتساءل عن إمكانية استخدامه مع النماذج اللغوية الكبيرة (LLM) لإنشاء ملخص مصمَّم بعناية بدلاً من مقتطف عشوائي.

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

شكرًا لمشاركتك!

إعجابَين (2)

يبدو هذا رائعًا. كنت أتساءل، إذا كان موقعك عامًا، فهل يمكننا ربما الاطلاع عليه لنراه يعمل على أرض الواقع؟

بما أنه يتطلب إضافة استطلاع RSS (RSS Polling)، فهل يحتاج إلى إعداد البث (feed) في كلتا الإضافتين؟ أم في إضافتك فقط؟

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

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

فكرة استخدام ملخص من الذكاء الاصطناعي التوليدي كخيار هي فكرة مثيرة للاهتمام. تلخيصات Discourse AI تُلخص محتوى الموضوع، والذي هنا هو مجرد رابط، لذا سيتطلب الأمر أن يقوم الإضافة بقراءة المقال وتسليمه إلى النموذج المُهيأ للمنتدى. سأفضل أن يكون هذا الخيار اختياريًا (opt-in)، لأنه يستهلك الرموز (tokens) ويستبدل كلمات المؤلف بأخرى مولّدة - لكنني دوّنت هذه الملاحظة.

للأسف لا - منتدانا مخصص للأعضاء فقط، لذا فإن لقطات الشاشة أعلاه مأخوذة مباشرة من المواضيع الحية. يسعدني نشر المزيد إذا كان هناك شيء محدد تودّ رؤيته.

في RSS Polling فقط. تقوم بإضافة وإدارة الخلاصات هناك تمامًا كما تفعل اليوم؛ هذه الإضافة ليس لديها خلاصات خاصة بها. إنها تعمل على ما تستورده RSS Polling إلى الفئات التي تختارها، وصفحة أسماء العرض (Display names) تعرض ببساطة خلاصات RSS Polling حتى تتمكن من تسميتها.

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

رائع يا بيتر، شكرًا لك على مراعاة هذا الأمر! كما ترى، يمكن معالجة الأمر (prompt) بحيث لا يغيّر نبرة الكاتب، ويُحافظ على أن يكون الناتج مستمدًا فقط من البيانات المحددة في الروابط.

هذا هو النهج المستخدم في https://ask.discourse.com، حيث تكون الردود مرتبطة ارتباطًا وثيقًا بالتوثيقات وقاعدة معرفية مُنتقاة. لا يستخدم النموذج بيانات التدريب الخاصة به تقريبًا أبدًا، وأعتقد أن هذا هو الأذكى والأكثر إنتاجية في استخدام هذه التكنولوجيا فعليًا.

كما أن هناك نماذج غير مكلفة تتقن الملخّصات حقًا. لذا آمل أن يتم تنفيذ هذه الفكرة؛ إذ يمكنها تحسين تجربة القراءة، كما أنها تحسّن أيضًا ممارسات تحسين محركات البحث (SEO) وتحسين محركات البحث الداخلي (IA-SEO).