1.26.19 • Published 9 months ago

@ductri/adblocker-electron v1.26.19

Weekly downloads
-
License
MPL-2.0
Repository
github
Last release
9 months ago

This is forked from AdBlocker

Getting Started

Install: npm install --save @ductri/adblocker-electron.

Usage

For a complete example check-out: @cliqz/adblocker-electron-example.

Creating an instance of ElectronBlocker and start blocking ads!

import { ElectronBlocker } from '@ductri/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'

ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
  blocker.enableBlockingInSession(session.defaultSession);
});

You are ready to block ads!

There are other ways you can create an instance of the blocking engine to start blocking ads.

If you already have filters locally:

import { ElectronBlocker } from '@ductri/adblocker-electron';

const blocker = ElectronBlocker.parse(fs.readFileSync('easylist.txt', 'utf-8'));

Fetching lists from URLs:

import { ElectronBlocker } from '@ductri/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'

const blocker = await ElectronBlocker.fromLists(fetch, [
  'https://easylist.to/easylist/easylist.txt'
]);

Use ready-made configs to block ads and optionally trackers:

import { ElectronBlocker } from '@ductri/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'

let blocker = await ElectronBlocker.fromPrebuiltAdsOnly(fetch); // ads only
blocker = await ElectronBlocker.fromPrebuiltAdsAndTracking(fetch); // ads and tracking

Disabling Blocker in session

To stop blocking ads in a session:

blocker.disableBlockingInSession(session.defaultSession);

Caching Blocker using Serialization

To avoid having to create the same instance of ElectronBlocker all over again, you can serialize it to a byte-array which you can store on disk for faster loading.

import { ElectronBlocker } from '@ductri/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'
import { promises as fs } from 'fs'; // used for caching

ElectronBlocker.fromPrebuiltAdsAndTracking(fetch, {
  path: 'engine.bin',
  read: fs.readFile,
  write: fs.writeFile,
}).then((blocker) => {
  blocker.enableBlockingInSession(session.defaultSession);
});

Or you can do this manually to control the way caching is done:

import { ElectronBlocker } from '@ductri/adblocker-electron';
import fetch from 'cross-fetch'; // required 'fetch'

ElectronBlocker.fromPrebuiltAdsAndTracking(fetch).then((blocker) => {
  const buffer = blocker.serialize();
  const restoredBlocker = ElectronBlocker.deserialize(buffer);
  // `restoredBlocker` is deep-equal to `blocker`!
});
1.26.19

9 months ago

1.26.18

9 months ago

1.26.17

9 months ago

1.26.16

9 months ago

1.26.15

9 months ago

1.26.14

9 months ago

1.26.13

9 months ago

1.26.12

9 months ago

1.26.11

9 months ago

1.26.10

9 months ago

1.26.9

9 months ago

1.26.8

9 months ago

1.26.7

9 months ago

1.26.6

9 months ago