لماذا يحتاج تحويل مرشّحات Adblock إلى Polipo أكثر من التعبيرات النمطية
حافظ على الاستثناءات وسياق الطلب عند تقييم تحويل مرشّحات Adblock إلى Polipo.
على المحوِّل أن يحافظ على معنى القاعدة لا أن يترجم حروفها فقط. فقد تعتمد قائمة تصفية في المتصفح على الصفحة التي تحمّل المورد ونوع المورد وقواعد الاستثناء. أما قائمة الحجب المعتمدة على عنوان URL وحده فتحمل معلومات أقل.
في تثبيت Polipo القائم، يعرّف دليله مدخلات forbiddenFile بأسماء النطاقات أو بتعبيرات POSIX النمطية الموسّعة. ولذلك فإن تعبيرًا نمطيًا أُنشئ لمحرك Python ليس صالحًا تلقائيًا في ذلك الملف.
ابدأ بمجموعة فرعية معلنة
- لا تترجم أنماط حجب عناوين URL غير المشروطة إلا بعد تحديد مثبّتاتها وسلوك الفاصل فيها.
- حافظ على قواعد الاستثناء التي تبدأ بـ @@. فإضافة أنماطها إلى ملف حجب تعكس معناها.
- أبقِ القواعد ذات خيارات السياق، مثل قيود النص البرمجي أو النطاق، خارج التحويل المعتمد على URL وحده ما لم يستطع الهدف تمثيل تلك الشروط.
- استبعد قواعد إخفاء العناصر: فاختيار عناصر DOM في صفحة ما يتطلب آلية مختلفة.
قد يؤدي حذف خيار غير مدعوم إلى توسيع قاعدة مشروطة لتصبح حجبًا غير مشروط. أبلغ عن تلك القواعد المتخطاة بدلًا من ادعاء تحويل كامل بصمت.
تستطيع حزمة adblockparser التاريخية تحليل مجموعة فرعية من قواعد Adblock Plus وتقييمها. ويوثّق ملف README الخاص بها قواعد إخفاء العناصر المتجاهَلة، والمطابقة المعتمدة على الخيارات، وقيودًا أخرى؛ وقد أُرشف مستودعها في 24 يونيو 2026. تعامل مع مخرجاتها بوصفها مادة تُقاس على المحرك الهدف، لا وعدًا بتحويل أمين للقائمة كاملة.
احسب ما يراه الوسيط
في أنفاق HTTPS العادية يرى تصفية الأنفاق في Polipo اسم المضيف والمنفذ، لا مسار URL المشفّر. وملف forbiddenTunnelsFile سطح سياسة منفصل. والتعبير عن المسار المترجم بإتقان لا يستطيع مطابقة محتوى لا يراه الوسيط أبدًا.
وثّق المجموعة الفرعية المحتفظ بها، وافحص كلا الحجبين المقصودين والاستثناءات المقصودة عند تقييم أي تحويل. فتحميل الملف يثبت قبول الصياغة، لا تكافؤ التصفية.