Skip to content

Commit b94d0d4

Browse files
committed
Adblocker - advanced options (caching or not, additional lists)
1 parent 7b20b93 commit b94d0d4

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

plugins/adblocker/back.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
const { loadAdBlockerEngine } = require("./blocker");
2-
module.exports = (win) => loadAdBlockerEngine(win.webContents.session);
2+
module.exports = (win, options) =>
3+
loadAdBlockerEngine(
4+
win.webContents.session,
5+
options.cache,
6+
options.additionalBlockLists
7+
);

plugins/adblocker/blocker.js

+21-8
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { promises } = require("fs"); // used for caching
1+
const { existsSync, promises, unlinkSync } = require("fs"); // used for caching
22
const path = require("path");
33

44
const { ElectronBlocker } = require("@cliqz/adblocker-electron");
@@ -8,16 +8,28 @@ const SOURCES = [
88
"https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt",
99
];
1010

11-
const loadAdBlockerEngine = (session = undefined) =>
11+
const loadAdBlockerEngine = (
12+
session = undefined,
13+
cache = true,
14+
additionalBlockLists = []
15+
) => {
16+
const adBlockerCache = path.resolve(__dirname, "ad-blocker-engine.bin");
17+
if (!cache && existsSync(adBlockerCache)) {
18+
unlinkSync(adBlockerCache);
19+
}
20+
const cachingOptions = cache
21+
? {
22+
path: adBlockerCache,
23+
read: promises.readFile,
24+
write: promises.writeFile,
25+
}
26+
: undefined;
27+
1228
ElectronBlocker.fromLists(
1329
fetch,
14-
SOURCES,
30+
[...SOURCES, ...additionalBlockLists],
1531
{},
16-
{
17-
path: path.resolve(__dirname, "ad-blocker-engine.bin"),
18-
read: promises.readFile,
19-
write: promises.writeFile,
20-
}
32+
cachingOptions
2133
)
2234
.then((blocker) => {
2335
if (session) {
@@ -27,6 +39,7 @@ const loadAdBlockerEngine = (session = undefined) =>
2739
}
2840
})
2941
.catch((err) => console.log("Error loading adBlocker engine", err));
42+
};
3043

3144
module.exports = { loadAdBlockerEngine };
3245
if (require.main === module) {

0 commit comments

Comments
 (0)