Kodėl „Adblock“ filtrų konvertavimas į „Polipo“ reikalauja daugiau nei regex
Išsaugokite išimtis ir užklausos kontekstą vertindami „Adblock“ filtrų konvertavimą į „Polipo“.
Konverteris turi išsaugoti taisyklės prasmę, o ne vien perkelti jos simbolius. Naršyklės filtravimo sąrašas gali priklausyti nuo to, kokį išteklių puslapis įkelia, nuo ištekliaus tipo ir nuo išimčių taisyklių. Blokavimo sąraše, pagrįstame vien URL, informacijos mažiau.
Esamoje „Polipo“ instalacijoje jos vadovas forbiddenFile įrašus apibrėžia kaip domenų vardus arba POSIX išplėstines reguliariąsias išraiškas. Todėl „Python“ varikliui sukurtas regex tame faile automatiškai negalioja.
Pradėkite nuo deklaruoto poaibio
- Bekompromisius URL blokavimo šablonus konvertuokite tik apibrėžę jų inkarus ir skyriklio elgseną.
- Išsaugokite išimčių taisykles, prasidedančias @@. Jų šablonų pridėjimas prie draudimų failo apverčia jų prasmę.
- Taisykles su konteksto parinktimis, pavyzdžiui, script ar domeno apribojimais, laikykite už konvertavimo, pagrįsto vien URL, ribų, nebent tikslas gali atvaizduoti tas sąlygas.
- Pašalinkite elementų slėpimo taisykles: puslapio DOM elementams parinkti reikia kito mechanizmo.
Nepalaikomos parinkties ištrynimas gali išplėsti sąlyginę taisyklę iki besąlyginio blokavimo. Praneškite apie tas praleistas taisykles, o ne tyliai tvirtinkite, kad konvertavimas atliktas visas.
Istorinis paketas adblockparser gali išanalizuoti ir įvertinti „Adblock Plus“ taisyklių poaibį. Jo README dokumentuoja ignoruojamas elementų slėpimo taisykles, nuo parinkčių priklausantį sutapatinimą ir kitus apribojimus; jo saugykla buvo suarchyvuota 2026 m. birželio 24 d. Traktuokite jo išvestį kaip medžiagą, kurią reikia palyginti su tikslo varikliu, o ne kaip pažadą tiksliai konvertuoti visą sąrašą.
Atsižvelkite į tai, ką mato tarpinė serveris
Įprastuose HTTPS tuneliuose „Polipo“ tunelių filtravimas mato prieglobos vardą ir prievadą, o ne užšifruotą URL kelią. Jo forbiddenTunnelsFile yra atskiras politikos paviršius. Tobulai išversta kelio išraiška vis tiek negali sutapti su turiniu, kurio tarpinė serveris niekada nemato.
Dokumentuokite išlaikytą poaibį ir vertindami konvertavimą patikrinkite ir numatytus blokavimus, ir numatytas išimtis. Failo įkėlimas įrodo sintaksės priėmimą, o ne lygiavertį filtravimą.