أنواع المصادر

استخدم اسم المصدر الدقيق في الحمولة لعوامل تصفية الوارد، وافهم عائلة الوجهة قبل إعادة إرسال الدردشة.

ما المقصود بـ type?

type هو معرّف المصدر القياسي في حمولة Social Stream الواردة. تستخدمه التراكبات وعوامل تصفية URL وواجهات API وEvent Flow للتمييز بين المنصات وأشكال المصادر.

{
  "type": "youtubeshorts",
  "chatname": "Ava",
  "chatmessage": "Hello from Shorts"
}
الاسم المعنى لا تخلطه مع
type مصدر الحمولة الواردة، مثل youtube أو instagramlive. تسمية عرض أو وضع اتصال أو اسم حدث.
event ما حدث، مثل superchat, gift، أو viewer_update. المنصة التي أنتجته.
sourceName اسم عرض اختياري للقناة أو الغرفة أو المصدر. القيمة الثابتة التي يستخدمها محفز From Source.
tid معرّف علامة التبويب الأصلية أو نافذة مصدر سطح المكتب المستخدم للرد واستبعاد المصدر. نوع منصة.
التطبيق المكتبي target الفئة المحفوظة المستخدمة لاختيار رابط ووضع وبرنامج التقاط. ضمان أن كل حمولة صادرة تحمل السلسلة النصية نفسها.

مهم: محفز Event Flow من المصدر (From Source) يقارن قيمته المُهيَّأة مباشرة مع message.type. استخدم قيمة الحمولة الدقيقة بأحرف صغيرة.

الأنواع الشائعة والمربكة

اسم الالتقاط أو الواجهة نوع الحمولة لماذا قد يكون الأمر مفاجئًا
دردشة YouTube المباشرة youtube تصف DOM واستقصاء API وWebSocket/التدفق طريقة النقل، وليست أنواعًا منفصلة.
دردشة YouTube Shorts المباشرة youtubeshorts وهو متميز في عوامل تصفية الوارد ووجهات تمرير Event Flow، بينما تظل عناصر تحكم YouTube المشتركة تتعامل مع الشكلين كعائلة واحدة عند الحاجة.
Instagram Live / InstaFeed live instagramlive تستخدم تعليقات منشورات وموجز Instagram instagram.
TikFinity tiktok TikFinity هو الموصل؛ وتظل المنصة الموحّدة TikTok.
X x، أو القيمة القديمة twitter مع خيار هوية Twitter قد تحتفظ عوامل التصفية الحالية بالاسم الأقدم عمدًا.
خيارات Bilibili الإقليمية bilibili قد تستخدم أهداف تطبيق سطح المكتب وبرامجه تسمية bilibilicom أو bilibilitv، بينما تُوحَّد الحمولات.
أحداث نظام OBS obs ليست مصادر دردشة، لكنها قد تدخل Event Flow بأحداث مثل scene_changed.

استخدم مرجع الأحداث لعقد الحقول و المواقع المدعومة لأسماء إعداد المنصات العامة.

YouTube Shorts وEvent Flow

مطابقة الوارد تامة: استخدم youtubeshorts في محفز From Source لرسائل Shorts، و youtube لدردشة YouTube المباشرة العادية.

مطابقة الصادر تامة أيضًا: يتعامل Relay Chat معهما كوجهتين منفصلتين.

  • الوجهة youtube يرسل فقط إلى نوافذ دردشة YouTube المباشرة العادية.
  • الوجهة youtubeshorts يرسل فقط إلى نوافذ دردشة YouTube Shorts المباشرة.
  • للوصول إلى كليهما، أضف إجراء لكل وجهة أو مرّر إلى جميع المنصات مع استبعاد المصدر.

قد تتعامل عناصر تحكم YouTube العامة الأخرى مع النوعين عمدًا كعائلة منصة واحدة. لا يغير ذلك المطابقة التامة في Event Flow المذكورة أعلاه.

حل مشكلات الإصدارات الأقدم

كانت الإصدارات الأقدم تجمع وجهتي التمرير، لذا كان بإمكان إجراءين الإرسال مرتين إلى كل نافذة YouTube. حدّث Social Stream Ninja إذا حدث ذلك. يمنع Reflection Filter حلقات التمرير، لكنه لا يصحح تداخل مطابقة الوجهات في تلك الإصدارات الأقدم.

محرر Social Stream Ninja Event Flow مع عقد محفز وتصفية وإجراء متصلة
يقرأ From Source نوع الحمولة الواردة؛ ويختار Relay Chat نوافذ المصادر الصادرة.

تابع مع دليل Event Flow أو دليل إعداد YouTube.

Instagram Live مقابل تعليقات Instagram

استخدم instagramlive لدردشة الغرف المباشرة التي يلتقطها مصدر Instagram Live أو InstaFeed live. استخدم instagram للموجز غير المباشر أو المنشورات أو التعليقات الثابتة.

  • تدفق الدردشة المباشرة: From Source = instagramlive.
  • تدفق المنشورات والتعليقات: From Source = instagram.
  • كلاهما: استخدم محفزين يغذيان إجراء واحدًا مشتركًا، أو محفز Any Source يتبعه عامل تصفية يراعي النوع.

ظهور اسم Instagram وحده لا يكفي لاختيار النوع؛ فسياق المحتوى يميز بينهما.

المصادر العامة والمخصصة وغير المسماة

sources/generic.js هو بديل واسع لالتقاط DOM. يبحث عن صفوف الدردشة والأسماء والرسائل والصور الشخصية والمدخلات الشائعة. يبدأ بـ generic، ثم يشتق عادةً نوعًا بأحرف صغيرة من منصة معروفة أو اسم مضيف الصفحة.

  • استخدمه لإثبات إمكانية التقاط دردشة DOM عادية قبل كتابة مصدر مخصص.
  • لا تتوقع دعمًا موثوقًا للأحداث أو الإشراف أو الحذف أو القوائم الافتراضية أو shadow DOM المغلق.
  • النوع المشتق من اسم المضيف مريح، لكنه ليس عقدًا عامًا دائمًا. تحقق من الحمولة الصادرة قبل بناء عوامل تصفية تعتمد عليه.
  • إذا لم يكن للمصدر اسم منصة معتمد، فاختر قيمة ثابتة واحدة بأحرف صغيرة لـ type. استخدم sourceName لتسمية الغرفة أو القناة التي يراها المستخدم.
  • إذا لم توجد هوية ثابتة بعد، فإن generic أكثر أمانًا من تغيير النوع مع كل رسالة. تستخدم التكاملات الخارجية عادةً قيمة مقصودة مثل external.

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

حقن البرامج النصية في تطبيق سطح المكتب

يحفظ تطبيق سطح المكتب للمصدر target، ويختار واحدًا أو أكثر من sourceFile/sourceFiles، ويفتح نافذة مصدر، ويحقن برامج الالتقاط المشتركة من هذا المشروع. ينقل جسر توافق Chrome-runtime الرسائل الملتقطة وأوامر الرد بين الصفحة والتطبيق.

  • لا يلزم أن يطابق اسم الهدف وملف البرنامج نوع الحمولة. الهدف youtubeshorts يحمّل sources/youtube.js، الذي يصدر youtube أو youtubeshorts من سياق الصفحة.
  • تُربَط أهداف Bilibili كذلك ببرامج مشتركة أو إقليمية مع إصدار bilibili.
  • sources/inject/*.js هي مساعدات تعمل في سياق الصفحة للمقابس أو متغيرات الصفحة. يظل غلاف المصدر مسؤولًا عن الحمولة القياسية.
  • عند حقن عدة برامج نصية، تجنب جعل كل مساعد يعلن دعم الوجهة الصادرة نفسها. هوية الالتقاط والقدرة على الرد مسألتان منفصلتان.
  • تنتمي تغييرات التقاط المصادر إلى ملفات sources/ في هذا المستودع. يستخدمها تطبيق سطح المكتب؛ ونسخته الاحتياطية المضمّنة ليست المرجع المعتمد.
إدخالات مصادر تطبيق سطح المكتب Social Stream Ninja تعرض أوضاع الاتصال
يحتفظ كل مصدر في تطبيق سطح المكتب بهدفه ورابطه ووضع اتصاله وبرنامج التقاطه.

يمكن للمشرفين على المشروع تتبع الإعداد في index.html عند إنشاء نافذة المصدر في تطبيق سطح المكتب، ثم main.js و preload.js للحقن والربط بالجسر.

الرد والتمرير إلى المصادر

هوية الوارد والقدرة على الإرسال مرتبطتان، لكنهما ليسا العقد نفسه.

الإجراء كيف يختار الفشل الشائع
الرد على المصدر يستخدم tid لمخاطبة علامة التبويب أو النافذة الأصلية تحديدًا. لا tid، أو أن وضع الالتقاط ذلك لا يستطيع إرسال الدردشة.
التمرير إلى منصة يسأل المصادر المفتوحة عما إذا كانت تدعم الوجهة الصادرة تلك. لا توجد نافذة مصدر مفتوحة مطابقة للشكل المحدد، أو لا يستطيع المصدر إرسال الدردشة.
التمرير إلى الجميع ما عدا المصدر يبث إلى المصادر القابلة للتوجيه ويستبعد tid. المصدر لا يقبل إدخالًا آليًا، أو تُلتقَط رسالة مرتدة مجددًا.
  • القيمة getSource إشارة إلى قابلية التوجيه الصادر. قد تجمع عناصر تحكم YouTube المشتركة الشكلين، بينما يضيف Relay Chat سياق رابط Shorts الدقيق لمطابقة الوجهة.
  • يمكن للالتقاط العام العثور على حقول إدخال محتملة وتركيزها، لكن ذلك لا يضمن قبول الموقع للإرسال الآلي.
  • قد ترسل أوضاع API/WebSocket عبر واجهات API للمنصات بدلًا من الكتابة في الصفحة المرئية.
  • في تطبيق سطح المكتب، بوت للرد فقط (دون التقاط) يبقي المصدر متاحًا للردود والحالة مع منع رسائله الملتقطة العادية.
  • اختبر دعم الرد بنافذة مصدر واحدة قبل بناء تمرير متعدد المنصات.

أين تجد التفاصيل الدقيقة

عند التشخيص، افحص حمولة خامًا واحدة وسجّل type, event, sourceName، و tid. يفصل ذلك عادةً بين مطابقة الوارد وتوجيه الصادر وتكرار الالتقاط.