في هذه الصفحة
ما المقصود بـ 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 حلقات التمرير، لكنه لا يصحح تداخل مطابقة الوجهات في تلك الإصدارات الأقدم.
تابع مع دليل 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/في هذا المستودع. يستخدمها تطبيق سطح المكتب؛ ونسخته الاحتياطية المضمّنة ليست المرجع المعتمد.
يمكن للمشرفين على المشروع تتبع الإعداد في index.html عند إنشاء نافذة المصدر في تطبيق سطح المكتب، ثم main.js و preload.js للحقن والربط بالجسر.
الرد والتمرير إلى المصادر
هوية الوارد والقدرة على الإرسال مرتبطتان، لكنهما ليسا العقد نفسه.
| الإجراء | كيف يختار | الفشل الشائع |
|---|---|---|
| الرد على المصدر | يستخدم tid لمخاطبة علامة التبويب أو النافذة الأصلية تحديدًا. |
لا tid، أو أن وضع الالتقاط ذلك لا يستطيع إرسال الدردشة. |
| التمرير إلى منصة | يسأل المصادر المفتوحة عما إذا كانت تدعم الوجهة الصادرة تلك. | لا توجد نافذة مصدر مفتوحة مطابقة للشكل المحدد، أو لا يستطيع المصدر إرسال الدردشة. |
| التمرير إلى الجميع ما عدا المصدر | يبث إلى المصادر القابلة للتوجيه ويستبعد tid. |
المصدر لا يقبل إدخالًا آليًا، أو تُلتقَط رسالة مرتدة مجددًا. |
- القيمة
getSourceإشارة إلى قابلية التوجيه الصادر. قد تجمع عناصر تحكم YouTube المشتركة الشكلين، بينما يضيف Relay Chat سياق رابط Shorts الدقيق لمطابقة الوجهة. - يمكن للالتقاط العام العثور على حقول إدخال محتملة وتركيزها، لكن ذلك لا يضمن قبول الموقع للإرسال الآلي.
- قد ترسل أوضاع API/WebSocket عبر واجهات API للمنصات بدلًا من الكتابة في الصفحة المرئية.
- في تطبيق سطح المكتب، بوت للرد فقط (دون التقاط) يبقي المصدر متاحًا للردود والحالة مع منع رسائله الملتقطة العادية.
- اختبر دعم الرد بنافذة مصدر واحدة قبل بناء تمرير متعدد المنصات.
أين تجد التفاصيل الدقيقة
- مرجع الأحداث: الحقول القياسية وأسماء أحداث المنصات.
- دليل Event Flow: المحفزات والإجراءات والقوالب ومعالجة الرسائل المرتدة والاختبارات.
- أوضاع التطبيق المستقل: سلوك نوافذ المصادر وأوضاع الاتصال.
- المواقع المدعومة: أسماء المنصات ومتطلبات الإعداد.
- المصادر العامة والمخصصة: الالتقاط البديل والخارجي.
- نوافذ مصادر تطبيق سطح المكتب: تفاصيل الهدف والبرنامج والجسر والرد فقط.
- إضافة مصدر: عقود المصادر ومساعدات الحقن وملفات manifest والتوثيق.
عند التشخيص، افحص حمولة خامًا واحدة وسجّل type, event, sourceName، و tid. يفصل ذلك عادةً بين مطابقة الوارد وتوجيه الصادر وتكرار الالتقاط.