1
- const { promises } = require ( "fs" ) ; // used for caching
1
+ const { existsSync , promises, unlinkSync } = require ( "fs" ) ; // used for caching
2
2
const path = require ( "path" ) ;
3
3
4
4
const { ElectronBlocker } = require ( "@cliqz/adblocker-electron" ) ;
@@ -8,16 +8,28 @@ const SOURCES = [
8
8
"https://raw.githubusercontent.com/kbinani/adblock-youtube-ads/master/signed.txt" ,
9
9
] ;
10
10
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
+
12
28
ElectronBlocker . fromLists (
13
29
fetch ,
14
- SOURCES ,
30
+ [ ... SOURCES , ... additionalBlockLists ] ,
15
31
{ } ,
16
- {
17
- path : path . resolve ( __dirname , "ad-blocker-engine.bin" ) ,
18
- read : promises . readFile ,
19
- write : promises . writeFile ,
20
- }
32
+ cachingOptions
21
33
)
22
34
. then ( ( blocker ) => {
23
35
if ( session ) {
@@ -27,6 +39,7 @@ const loadAdBlockerEngine = (session = undefined) =>
27
39
}
28
40
} )
29
41
. catch ( ( err ) => console . log ( "Error loading adBlocker engine" , err ) ) ;
42
+ } ;
30
43
31
44
module . exports = { loadAdBlockerEngine } ;
32
45
if ( require . main === module ) {
0 commit comments