GitHub - armandgrillet/Adios-Engine: ABP rules => Safari content blocker rules

2 min read Original article ↗

A small library to transform standard AdBlock Plus rules like EasyList into rules working in Safari.

Demo

You can visit this website to try the engine.

Working example

If you want to see how to use Adios Engine, check this project.

Installation

npm install adios-engine --save

Usage

var parser = require('adios-engine');
var rule = 'savevideo.me,sddt.com,~search.yahoo.com,yahoo.com,youthedesigner.com,yuku.com##.ads';
var rules = ['@@|http://example.com', 'http://example.com/banner/foo/bar/img?param'];
var wrongRule = '|http://*.com^*|*$script,third-party,domain=lύ.com';

for (var rule of parser.parseRule(rule)) {
	console.log(rule); // The original rule created two parsed rules, parseRule() always returns an array even if the output is only one parsed rule.
}

for (var rule of parser.parseRules(rules)) {
	console.log(rule); // Will print all the parsed rules from the original rules array, can be used to parse an entire list like EasyList.
}

for (var rule of parser.parseRule(wrongRule)) {
	console.log(rule); // Nothing will be printed because the array returned is empty, the original rule contains characters that are not ASCII compliant.
}

Documentation

Only two functions:

parseRule(rule): takes a String as an argument and returns an array containing the parsed rules. If the rule given cannot be parsed the method returns an empty array.

parseRules(rules): takes a String array as an argument and returns the same thing as parseRule().

Tests