|
| 1 | +var fs = require("fs"); |
| 2 | +var DOMParser = require('xmldom').DOMParser; |
| 3 | + |
1 | 4 | var lrucache = require("./lru"); |
2 | 5 | var rules = require("./rules"); |
3 | | -var rules = require("./rules"); |
4 | | -var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; |
5 | 6 |
|
6 | | -function getRuleXml() { |
7 | | - var xhr = new XMLHttpRequest(); |
8 | | - // Use blocking XHR to ensure everything is loaded by the time |
9 | | - // we return. |
10 | | - xhr.open("GET", "file:///home/jsha/https-everywhere/chromium/rules/default.rulesets", false); |
11 | | - xhr.send(null); |
12 | | - // Get file contents |
13 | | - if (xhr.readyState != 4) { |
14 | | - return "yy"; |
15 | | - } |
16 | | - return xhr.responseXML; |
| 7 | +var URI = require("URIjs"); |
| 8 | + |
| 9 | +var ruleSets = null; |
| 10 | + |
| 11 | +function processFile() { |
| 12 | + fs.readFile('/home/jsha/index.html', |
| 13 | + {encoding: 'utf-8'}, |
| 14 | + function (err, data) { |
| 15 | + if (err) throw err; |
| 16 | + var result = URI.withinString(data, function(url) { |
| 17 | + var uri = new URI(url); |
| 18 | + if (uri.protocol() != 'http') return url; |
| 19 | + |
| 20 | + uri.normalize(); |
| 21 | + var rewritten = ruleSets.rewriteURI(uri.toString(), uri.host()); |
| 22 | + if (rewritten) { |
| 23 | + console.log(uri.toString(), rewritten); |
| 24 | + return rewritten; |
| 25 | + } else { |
| 26 | + return url; |
| 27 | + } |
| 28 | + }); |
| 29 | + }); |
17 | 30 | } |
18 | 31 |
|
19 | | -new rules.RuleSets("foo", lrucache.LRUCache, |
20 | | - getRuleXml()); |
21 | | -console.log("ok"); |
| 32 | +fs.readFile('rules/default.rulesets', |
| 33 | + {encoding: 'utf-8'}, |
| 34 | + function (err, data) { |
| 35 | + if (err) throw err; |
| 36 | + var xml = new DOMParser().parseFromString(data, 'text/xml'); |
| 37 | + ruleSets = new rules.RuleSets("foo", lrucache.LRUCache, xml, {}); |
| 38 | + console.log("ok"); |
| 39 | + |
| 40 | + processFile(); |
| 41 | +}); |
0 commit comments