| LEFT | RIGHT | 
 |   1 /* | 
 |   2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
 |   3  * Copyright (C) 2006-2016 Eyeo GmbH | 
 |   4  * | 
 |   5  * Adblock Plus is free software: you can redistribute it and/or modify | 
 |   6  * it under the terms of the GNU General Public License version 3 as | 
 |   7  * published by the Free Software Foundation. | 
 |   8  * | 
 |   9  * Adblock Plus is distributed in the hope that it will be useful, | 
 |  10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  12  * GNU General Public License for more details. | 
 |  13  * | 
 |  14  * You should have received a copy of the GNU General Public License | 
 |  15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
 |  16  */ | 
 |  17  | 
|   1 "use strict"; |  18 "use strict"; | 
|   2  |  19  | 
|   3 let readline = require("readline"); |  20 let readline = require("readline"); | 
|   4  |  | 
|   5 // Hack to force `require("url")` to return our URL module instead of the |  | 
|   6 // one included with Node.js! We manually load it here and then tweak the cache. |  | 
|   7 let urlModuleKey = require("path").join(__dirname, "node_modules", "url.js"); |  | 
|   8 require("url.js"); |  | 
|   9 require.cache["url"] = require.cache[urlModuleKey]; |  | 
|  10  |  | 
|  11 let Filter = require("filterClasses").Filter; |  21 let Filter = require("filterClasses").Filter; | 
|  12 let contentBlockerLists = require("./lib/contentBlockerLists.js"); |  22 let ContentBlockerList = require("./lib/abp2blocklist.js").ContentBlockerList; | 
|  13  |  | 
|  14  |  23  | 
|  15 var rl = readline.createInterface({input: process.stdin, terminal: false}); |  24 var rl = readline.createInterface({input: process.stdin, terminal: false}); | 
|  16 var filters = []; |  25 var blockerList = new ContentBlockerList(); | 
|  17  |  26  | 
|  18 rl.on("line", line => |  27 rl.on("line", line => | 
|  19 { |  28 { | 
|  20   if (line.charAt(0) != "[") |  29   if (/^\s*[^\[\s]/.test(line)) | 
|  21     filters.push(Filter.fromText(line)); |  30     blockerList.addFilter(Filter.fromText(line)); | 
|  22 }); |  31 }); | 
|  23  |  32  | 
|  24 rl.on("close", () => |  33 rl.on("close", () => | 
|  25 { |  34 { | 
|  26   console.log(JSON.stringify(contentBlockerLists.convertFilters(filters), |  35   console.log(JSON.stringify(blockerList.generateRules(), | 
|  27                              null, "\t")); |  36                              null, "\t")); | 
|  28 }); |  37 }); | 
| LEFT | RIGHT |