/abp2blocklist

Code to convert Adblock Plus filter lists to WebKit content blocker lists

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

abp2blocklist

This is a script to convert Adblock Plus filter lists to WebKit block lists.

Note that WebKit content blockers are fairly limited. Hence, not all filters can be converted (in a compatible way), and some differences compared to Adblock Plus for other browsers are expected.

This script is used to convert the filter lists for Adblock Plus for iOS.

Requirements

The required packages can be installed via NPM:

npm install

filterClasses.js

The filterClasses module in node_modules/filterClasses.js is generated from the module in the adblockpluscore repository. It has been generated using JS Hydra, and small modifications made. If you need to re-generate the file run this command (adjusting the paths as appropriate):

python buildtools/jshydra/abp_rewrite.py adblockpluscore/lib/filterClasses.js | grep -vi filterNotifier > ../abp2blocklist/node_modules/filterClasses.js

You will then need to remove any references to the utils module from the generated file by hand.

Usage

Create a WebKit block list output.json from the Adblock Plus filter list input.txt:

node abp2blocklist.js < input.txt > output.json

Tests

Unit tests live in the tests/ directory. To run the unit tests ensure you have already installed the required packages (see above) and then type this command:

npm test