Por que a conversão de filtros do Adblock para o Polipo exige mais que regex
Preserve as exceções e o contexto da requisição ao avaliar uma conversão de filtros do Adblock para o Polipo.
Um conversor precisa preservar o significado de uma regra, não apenas transportar os seus caracteres. Uma lista de filtragem do navegador pode depender de qual recurso a página carrega, do tipo de recurso e de regras de exceção. Uma lista de bloqueio baseada apenas no URL tem menos informação.
Numa instalação existente do Polipo, o manual define as entradas forbiddenFile como nomes de domínio ou expressões regulares estendidas POSIX. Por isso, uma regex criada para o motor do Python não é automaticamente válida nesse ficheiro.
Comece por um subconjunto declarado
- Converta padrões de bloqueio de URL incondicionais apenas depois de definir as suas âncoras e o comportamento do separador.
- Preserve as regras de exceção que começam por @@. Acrescentar os seus padrões a um ficheiro de recusa inverte o seu significado.
- Mantenha as regras com opções de contexto, como restrições de script ou de domínio, fora de uma conversão baseada apenas no URL, a menos que o destino consiga representar essas condições.
- Exclua as regras de ocultação de elementos: selecionar elementos DOM de uma página exige outro mecanismo.
Eliminar uma opção não suportada pode alargar uma regra condicional até um bloqueio incondicional. Comunique essas regras omitidas em vez de afirmar em silêncio uma conversão completa.
O pacote histórico adblockparser consegue analisar e avaliar um subconjunto de regras do Adblock Plus. O seu README documenta as regras de ocultação de elementos ignoradas, a correspondência dependente de opções e outras limitações; o repositório foi arquivado a 24 de junho de 2026. Trate a sua saída como material a confrontar com o motor de destino, e não como promessa de uma conversão fiel de toda a lista.
Considere o que o proxy vê
Nos túneis HTTPS comuns a filtragem de túneis do Polipo vê o nome do anfitrião e a porta, não o caminho de URL cifrado. O forbiddenTunnelsFile é uma superfície de política separada. Uma expressão de caminho traduzida na perfeição continua a não conseguir corresponder a conteúdo que o proxy nunca vê.
Documente o subconjunto retido e verifique tanto os bloqueios previstos como as exceções previstas ao avaliar uma conversão. O ficheiro carregar prova a aceitação da sintaxe, não uma filtragem equivalente.