← كل المقالات

ملخص FourA: من 26 يونيو إلى 3 يوليو 2026

تم إطلاق Auto إلى prod: endpoint واحد يختار بين Single أو Proxy Finder أو Browser ويتعامل مع تحديات Cloudflare. بالإضافة إلى 6 لغات جديدة على مواقعنا.

أبرز النقاط

تم إطلاق Auto إلى بيئة الإنتاج هذا الأسبوع. وجّهه إلى أي URL وسيقوم بالتنقل عبر مسار متدرج ومدرك للتكلفة (probe، إيجاد exit، حل عبر browser، ثم replay منخفض التكلفة) ويعيد المحتوى بالإضافة إلى الجلسة التي جلبته. يستغرق فحص Turnstile الأولي على minfin.bg حوالي 5 ثوانٍ عبر Auto؛ الطلب التالي يعيد التشغيل عبر Single بتكلفة 2 credits فقط. أضفنا أيضًا 6 لغات عبر المدونة، التوثيق، وبوابة التحديثات، لننتقل من 7 إلى 13 لغة.

ما الجديد

Auto: نقطة نهاية واحدة، أربعة منتجات، مع إدراك التكلفة

أصبح POST /api/auto متاحًا الآن. تزوّده بعنوان URL فيختار المنتج المناسب (Single، أو Proxy Finder، أو Browser)، ويتعامل مع تحديات Cloudflare عند ظهورها، ويعيد الاستجابة مع كائن session يتضمن معرف proxy، وملفات cookies، وuser agent التي نجحت في العملية. أعد استخدام الجلسة المُعادة في الطلب التالي وسيقوم Auto بإعادة التشغيل عبر Single بتكلفة 2 credits بدلًا من استهلاك الموارد في حل جديد.

تحمل كل استجابة الآن تتبع meta لتتمكن من معرفة أي خطوة نجحت، وما إذا كان قد تم تجاوز نظام الحماية، وعدد الطلبات الفرعية المستغرقة، وإجمالي credits المستهلكة. يمكنك تطبيق قواعد validate الخاصة بك وسيقوم Auto بفرضها في كل خطوة، وليس فقط في الخطوة الأخيرة، بحيث لا تُعتبر صفحة الحظر الجغرافي ذات الرمز 200 نجاحًا كما كان يحدث سابقًا.

حصلت منصة التجارب في Dashboard على تبويب Auto مع تفعيل timeout_ms، وignoreProxies، وreturnSession، وforceProxy، لتتمكن من تجربة Auto عبر واجهة تفاعلية قبل دمجه في الكود البرمجي.

6 لغات جديدة

تمت إضافة الإسبانية، الفرنسية، اليابانية، الكورية، البرتغالية البرازيلية، والروسية إلى المدونة، التوثيق، وبوابة التحديثات، لنصل من 7 إلى 13 لغة عبر مواقعنا العامة. تتم ترجمة المحتوى عبر مسار معالجة يراعي السياق: تعتمد تسميات التنقل على صياغة موجزة للحفاظ على حجم الشريط الجانبي، بينما تحافظ نصوص المقالات على بنية markdown لضمان بقاء كتل الكود والعناوين كما هي.

تمت إعادة بناء محدد اللغة أيضًا. تمت إزالة الأعلام (علم إسبانيا يتجاهل 20 دولة أخرى ناطقة بالإسبانية، والمنطق نفسه ينطبق على البرتغالية، العربية، والإنجليزية). تُعرض اللغات بأسمائها الأصلية الآن، مع عرض اسم كل لغة وفق لغة الواجهة النشطة، بحيث يمكنك العثور على "Deutsch" تحت اسم "немски" من متصفح باللغة البلغارية. اكتب في صندوق البحث بالأعلى لتصفية 13 لغة والوصول إلى اللغة المطلوبة، استخدم مفاتيح الأسهم للتنقل، واضغط enter للتبديل. كل خيار هو رابط <a href> فعلي مع hreflang وlang، لتتمكن محركات البحث وزواحف الذكاء الاصطناعي من تتبع كل إصدار لغوي.

التعامل مع Cloudflare: ما تم إصلاحه فعليًا

يتعامل Auto الآن مع أربع حالات من Cloudflare كانت تؤدي سابقًا إلى تمرير استجابة غير صحيحة:

  • لم تعد صفحة التحقق البينية "Just a moment" التي تُقدَّم مع رمز حالة النقل 200 تُعتبر نجاحا. يصعّد Auto الطلب تلقائيا إلى مرحلة الحل بدلا من تسليمك صفحة التحدي.
  • يتم تصيير التحديات غير التفاعلية (مثل التجاوز التلقائي لـ "Checking your browser" في marathonbet) من جانب العميل بعد اجتياز الفحص. يستطلع المتصفح عناصر DOM الحية ويكتمل بمجرد وصول cf_clearance، بدلا من انتهاء المهلة بسبب استجابة أولية فارغة.
  • يتم احترام رمز الحالة الحقيقي بعد تجاوز الفحص. إذا تم فرض قيود جغرافية بعد نجاح الفحص، يُرجع النظام 451، وليس 200 بجسم استجابة مشبوه.
  • يتم حل تحدي Turnstile التفاعلي (minfin.bg) بالكامل من البداية إلى النهاية. يحاول Auto الحل أولا عبر متصفح ذي خروج مباشر (إذ تنجح نقطة نهاية خروج موثوقة في اجتياز Turnstile حيث تواجه خوادم مراكز البيانات المجانية تصعيدا للتحدي)، ثم ينتقل إلى المحاولة المتكررة عبر البروكسي كحل بديل في حال الفشل.

MCP: foura_auto والاستكشاف العام

أضاف خادم MCP أداة foura_auto التي تطابق /api/auto. مرر لها URL لتحصل على المحتوى والجلسة. أصبح الاستكشاف (الأدوات، والمطالبات، والقدرات) متاحا بدون مصادقة لتتمكن الوكلاء البرمجية من التصفح قبل المصادقة، كما تتم معالجة خريطة /llms.txt عبر وكيل في المسار الجذري. تم نقل الصفحة المقصودة إلى foura.ai/mcp لتعزيز قيمة الروابط، ويقوم النطاق الفرعي بإعادة توجيه المتصفحات إلى هناك برمز 301.

خلف الكواليس

أحكمنا نطاق الحماية من SSRF حول خدمات الجلب. يحظر جدار حماية للخروج على مستوى النواة (kernel-level) خدمتي إرسال الطلبات من فتح اتصالات مع النطاقات الخاصة، وCGNAT، والارتباط المحلي (link-local)، والبيانات الوصفية للسحابة (cloud metadata). كان الفحص على مستوى التطبيق يغطي URL بالفعل، والآن لا يمكن للمسارات ذات المستوى الأدنى تمرير أي شيء أيضا. يتلقى الحقل proxy في الطلب المعاملة نفسها: يتم رفض مضيف البروكسي الذي يحدده العميل إذا تمت ترجمته إلى عنوان خاص، وذلك قبل إرسال الطلب.

لا يخزن سجل النشاط أبدا رابط البروكسي الخام بعد الآن، حتى إذا أرسله العميل. تتضمن الاستجابة التي تراها دائما معرف البروكسي غير الشفاف بنظام base36، وتتطابق البيانات المخزنة مع ذلك. قمنا أيضا بإزالة ترويسة x-powered-by من كل استجابات API.

الأرقام

  • حل Turnstile التفاعلي على minfin.bg: الرمز 200 مع محتوى الوزارة في حوالي 5 ثوان، ثم رصيدان (2) لكل إعادة تشغيل عبر الجلسة المخزنة مؤقتا.
  • على هدف يخضع لتحديد معدل الطلبات (rate limit) تحت ضغط أحمال متزامنة، يقوم Auto الآن بالتوزيع عبر عدة نقاط خروج (4 نقاط خروج متميزة مستخدمة على مضيف بنقاط خروج محددة، 21 من أصل 24 إعادة تشغيل مقابل رصيدين)، بدلا من تكديس كل الطلبات على نقطة خروج واحدة.
  • 13 لغة متاحة الآن عبر المدونة، والتوثيق، والتحديثات.

يعد Auto هو النموذج النهائي للـ API الذي كنا نعمل على بنائه طوال هذا الربع. حدد رابط URL، واحصل على الاستجابة، واحتفظ بالجلسة. يتركز العمل المثير للاهتمام الآن على الحواف: قياس مدى كفاءة التدرج المحسوب التكلفة مع حركة البيانات الفعلية لديك، واكتشاف أنماط التحقق التي تضبط حالات النجاح الإيجابية الخاطئة التي لا يتنبه لها أحد.