למה המרת מסנני Adblock ל-Polipo דורשת יותר מ-regex
שמרו על החריגים ועל הקשר הבקשה בעת הערכת המרת מסנני Adblock ל-Polipo.
ממיר חייב לשמר את משמעות הכלל, ולא רק להעביר את התווים שלו. רשימת סינון בדפדפן עשויה להיות תלויה במשאב שהדף טוען, בסוג המשאב ובכללי חריגה. רשימת חסימה המבוססת על URL בלבד מכילה פחות מידע.
בהתקנת Polipo קיימת, המדריך שלה מגדיר רשומות forbiddenFile כשמות מתחם או כביטויים רגולריים מורחבים של POSIX. לכן ביטוי regex שנבנה עבור המנוע של Python אינו תקף אוטומטית באותו קובץ.
התחילו מתת-קבוצה מוצהרת
- המירו תבניות חסימת URL ללא תנאי רק לאחר שהגדרתם את העוגנים ואת התנהגות המפריד שלהן.
- שמרו על כללי חריגה שמתחילים ב-@@. הוספת התבניות שלהם לקובץ דחייה הופכת את משמעותם.
- השאירו כללים עם אפשרויות הקשר, כגון הגבלות script או מתחם, מחוץ להמרה מבוססת URL בלבד, אלא אם היעד יכול לייצג את התנאים הללו.
- הוציאו כללי הסתרת רכיבים: בחירת רכיבי DOM של דף דורשת מנגנון אחר.
מחיקת אפשרות שאינה נתמכת עלולה להרחיב כלל מותנה לחסימה ללא תנאי. דווחו על הכללים שהושמטו במקום להצהיר בשקט על המרה מלאה.
החבילה ההיסטורית adblockparser יודעת לנתח ולהעריך תת-קבוצה של כללי Adblock Plus. קובץ ה-README שלה מתעד כללי הסתרת רכיבים שמתעלמים מהם, התאמה התלויה באפשרויות ומגבלות נוספות; המאגר שלה הועבר לארכיון ב-24 ביוני 2026. התייחסו לפלט שלה כאל חומר להשוואה מול מנוע היעד, ולא כאל הבטחה להמרה נאמנה של הרשימה כולה.
הביאו בחשבון את מה שהפרוקסי רואה
במנהרות HTTPS רגילות סינון המנהרות של Polipo רואה שם מארח ופורט, ולא את נתיב ה-URL המוצפן. קובץ ה-forbiddenTunnelsFile שלה הוא משטח מדיניות נפרד. ביטוי נתיב מתורגם היטב עדיין אינו יכול להתאים לתוכן שהפרוקסי לעולם אינו רואה.
תעדו את תת-הקבוצה שנשמרה ובדקו גם את החסימות המיועדות וגם את החריגים המיועדים בעת הערכת המרה. טעינת הקובץ מוכיחה קבלת תחביר, לא סינון שקול.