بالمناسبة، لا أعرف مدى انشغال منتدىكم أو عدد مرات نشر روابط تويتر (x/twitter) التي يتم تحويلها تلقائيًا، ولكن خطة تويتر المجانية الأساسية تعمل لعمليات التحويل التلقائي الافتراضية - إنها فقط تحد من الطلبات إلى حوالي طلب تحويل تلقائي واحد كل 15 دقيقة. لديّها تعمل على منتدى مزدحم نسبيًا ويبدو أنها تحد فقط عندما يحاول الأشخاص نشر أكثر من رابط تحويل تلقائي واحد في المنشور.
للأسف، اكتشفت للتو أن هذا يمنع تضمين الكثير من روابط يوتيوب (أي https://youtu.be/) لأن الروابط تعيد التوجيه إلى يوتيوب.
ينشر الناس روابط يوتيوب أكثر بكثير مما ينشرون روابط X. لذلك قمت بتعطيله في الوقت الحالي وسأقوم ببساطة بتعديل x.com إلى twitter.com في الوقت الحالي.
نادرًا ما نذكر أي منشورات على x/twitter. وتعمل معاينات Twitter.com، لكن X.com لا تعمل.
هل أنت متأكد؟ أنا لا أعني هذا المكون، بل أعني الـ onebox الأصلي باستخدام رمز مميز لواجهة برمجة تطبيقات خطة تويتر المجانية ومع تعطيل هذا المكون. أنت تقول إنك تستضيف - يجب أن يكونوا قادرين على إعداد الـ oneboxing الافتراضي كما هو موجود هنا في Meta.
لدي تضمين X/Twitter الغني مجانًا على موقعين مختلفين مستضافين ذاتيًا. أستخدم هذا المكون عندما تتعطل واجهة برمجة تطبيقات X/Twitter لأي سبب، ثم أقوم بتشغيله وإيقافه حسب الحاجة.
لقد قمت بإعداد حساب مطور مجاني لـ X. أتساءل كيف تحصل على مربع تويتر واحد للتضمين؟
لدي مكون التضمين الأصلي لتويتر يعمل بشكل جيد، ولكني أرغب في النشر في الوضع المظلم.
يبدو أنه في بعض إصدارات Discourse الحديثة، فإن تعطيل الـ oneboxes الخاصة بتويتر/X لا يعمل بشكل جيد.
أيضًا، لا يعمل مكون السمة هذا بشكل صحيح على الـ oneboxes الموجودة مسبقًا.
لقد أضفت بعض الوظائف التي، بالإضافة إلى استبدال الروابط المجردة بتضمين أصلي، تبحث أيضًا عن oneboxes تويتر، ثم تقوم بنفس الشيء.
هذا يعني أنه لم يعد هناك حاجة لتعطيل الـ oneboxing أو إعادة بناء المنشورات القديمة.
رابط طلب السحب هنا Feature: support existing oneboxes by communiteq · Pull Request #1 · Lhcfl/discourse-twitter-native-embed · GitHub
شكرًا لك! عذرًا على الانتظار لمدة شهر. كنتُ مريضًا في المستشفى، وقد خرجتُ للتو ورأيت هذا الطلب. تم دمجه!
مرحباً بالجميع… هل يواجه أي منكم مشاكل مع هذا الإضافة؟ يبدو أن شيئاً ما انكسر ولم تعد تظهر الوسائط المضمّنة سواء على x.com أو twitter.com. هل صدرت نسخة جديدة من Discourse تسببت في هذا الخلل؟
أؤكد أن المشكلة لا تزال قائمة حتى اليوم (26 سبتمبر 2026).
في نسختي، أصبح المكوّن يرمي خطأً نشطاً بدلاً من الفشل بصمت — حيث يعرض Discourse الشريط المخصص للمشرفين فقط:
قد لا يتم عرض المنشورات بشكل صحيح لأن أحد مُزيّنات المنشورات (post decorators) على موقعك رمى خطأً. السبب: “Twitter/X Einbindung” [تضمين Twitter/X].
يحدث هذا بشكل متكرر ويثير تحذيرات شبيهة بوضع الأمان على مستوى الموقع بأكمله، وليس مجرد تضمين مفقود. إصدار Discourse: 2026.10.0.
هل وجد أحدكم إصلاحاً أو حلاً بديلاً يتجاوز تعطيل المكوّن بالكامل؟
سأنتقل إلى تضمينات Nitter بعد حل بعض مشاكل ipv6 لدى مزوّد الخدمة، وسأمتنع تمامًا عن استخدام تويتر.
منذ أن قيّد ماسك بشكل كبير وصول واجهة برمجة التطبيقات (API) بسبب رسائل الروبوتات المزعجة المستمرة، عانى كل شكل من أشكال الوصول الخارجي إلى المنصة.
أفهم القرارات المتعلقة بالأعمال والأمن، لكنني لا أفهم غياب الخيارات الرسمية للتضمين الخارجي.
أعرف Nitter، لكنه ليس مريحًا مثل نسخ ولصق روابط X الأصلية.
قد يكون من المنطقي لفريق مشروع Discourse نفسه أن يتواصل مع شركة X ويقدم إضافة رسمية.
إلا ذلك، لا أرى مستقبلًا حقيقيًا للتعاون بين الأنظمة هنا. وX هي، دون أدنى شك، أهم منصة إخبارية في العالم الغربي
يرجى ملاحظة أن مشروع Nitter تلقى خطاباً قانونياً بوقف النشاط في الشهر الماضي وقد لا يستمر لفترة أطول: X sends cease-and-desist to open source project Nitter over alleged scraping | TechCrunch
يبدو الأمر مشروعًا. لقد محوا كميات هائلة من بياناتهم دون أي تفسير أو إمكانية استرجاع، والجهات التي تقف وراء هذا الأمر مظلمة حقًا.
المشروع المجتمعي الذي أشرت إليه أكثر حيوية من أي وقت مضى. منصة Codeberg، يقودها المجتمع.
حتى يغيّر X شيئًا، ويغيب Zed عن أداء عمل الاستخراج الشاق الفعلي.
حسنًا، المقاومة تقاوم ما دامت المقاومة ممكنة. كان Autistic (Inventati) يعمل من أجل البشرية لعقود حتى لم يعد من الممكن الاستمرار.
أعتقد أن Nitter سيُحافظ على تشغيله لمدة عام على الأقل دون أي مشاكل إضافية. فهم لا يدفعون إلى خدمات ضخمة، والاستضافة الذاتية لا يكون لها ذلك الأثر.
أنشأت نسخة معدّلة صغيرة من هذا المكوّن تُصلح عطل وضع الأمان (قيمة فارغة غير محمية بسبب غياب خاصية)، بالإضافة إلى بعض المشكلات الأصغر: GitHub - terraboss/discourse-x-native-embed: X embedding · GitHub — يعمل بشكل جيد حتى الآن، وأرحّب بأي ملاحظات.
تحديث: أول معلم في نسختي المعدّلة (fork)
شكرًا لكم على الملاحظات. حافظت نسختي المعدّلة حتى الآن على إخفاء شريط وضع الأمان (safe-mode). أفضل تخميني للسبب لا يزال هو غياب سمة data-onebox-src، لكن هذا لم يُؤكَّد بعد، لذا يُرجى التعامل معها على أنها تجريبية.
منذ ذلك الحين، أضفت بعض الأشياء، بعضها كان مطلوبًا سابقًا في هذا الموضوع:
- يختفي الرابط العادي فوق التغريدة بمجرد تحميل التغريدة (يبقى إذا تعذّر الوصول إلى X)
- تقليل القفزات أثناء تحميل التغريدات، وعدم تكرار التضمينات (embeds)
- الوضع الداكن للتضمينات
- تضمين روابط X الصرفة التي لم تُحوّل Discourse إلى onebox أيضًا
- الاستشهاد بمشروع يحتوي على رابط X لم يعد يستبدل اقتباسك بالتغريدة
كل الفضل للفكرة الأصلية يعود إلى @Lhc_fl. تم بناء النسخة المعدّلة بمساعدة جزئية من الذكاء الاصطناعي (Claude). يسعدني أن أسمع كيف تعمل لدى الآخرين.
قفزات موضع التمرير عند التمرير لأعلى في المواضيع الطويلة
عند التمرير لأعلى في موضوع طويل، تقفز الصفحة بشكل متكرر قليلاً إلى الأسفل بمجرد إعادة بناء المنشورات الأقدم خارج الشاشة (على الأرجح مرتبط بإخفاء المنشورات). الأمر مزعج لدرجة يصعب معها قراءة موضوع طويل من الأسفل إلى الأعلى.
شككت في البداية بمكوّن سمة (تغيير حجم تضمينات X/Twitter الأصلية بعد إعادة التحميل)، لكن القفزة تبدو وكأنها تحدث بشكل مستقل عن ذلك أيضًا. التمرير لأسفل لا يظهر نفس المشكلة، فقط لأعلى.
إصدار Discourse: الأحدث والأفضل. هل واجه أحدكم هذا من قبل، أم أنه مشكلة معروفة؟
ربما يكون هناك بديل يتمثل في إضافة كلمة استبدال عامة، بحيث يتم استبدال https://x.com بـ https://fixupx.com؟
شكرًا على الاقتراح! للأسف، لا أعتقد أن بديلاً من هذا النوع يناسب هذا المشروع. فالهدف الأساسي من هذه المكوّن هو تضمين التغريدات مباشرةً من X/تويتر. وكيل طرف ثالث مثل fixupx لا يحل المشكلات الجذرية، بل يضيف طبقة إضافية في المنتصف: خدمة إضافية يمكن أن تفشل أو تتغير، وطرفًا إضافيًا يرى الطلبات. كما أنه سيعيد كتابة الروابط المخزنة في المنشورات نفسها.
ما أفضّله فعليًا هو نسخة محلية من التغريدات. هذا سيساعد في تحسين أوقات التحميل والتخزين المؤقت، ويجعل التضمينات أكثر مقاومة للانقطاعات، ويحافظ على أرشيف للمحتوى. لكنه سيتطلب وصولًا إلى واجهة برمجة التطبيقات المدفوعة وتوضيحًا لجانب حقوق النشر ومسؤولية المحتوى، ولا أستطيع توفير أيٍّ منهما. لذلك، سيظل المكوّن يعتمد على التضمين المباشر في الوقت الحالي.
إذا كان شخص ما يحتاج فقط إلى معاينات الروابط البسيطة ويرضيّه استخدام وكيل، فقد يعمل استبدال الكلمات المرصودة لذلك، لكن هذا هدف مختلف عن هدف هذا المكوّن.
