45 lines
1.0 KiB
JavaScript
45 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
var join = require('path').join;
|
|
var http = require('https');
|
|
var fs = require('fs');
|
|
|
|
var pkg = require('../package.json');
|
|
|
|
var providerUrl = pkg.tldjs.providers['publicsuffix-org'];
|
|
var parser = require('./parsers/publicsuffix-org.js');
|
|
|
|
module.exports = {
|
|
providerUrl: providerUrl,
|
|
run: function runUpdater(done) {
|
|
done = typeof done === 'function' ? done : function(){};
|
|
|
|
var req = http.request(providerUrl, function (res) {
|
|
var body = '';
|
|
|
|
if (res.statusCode !== 200) {
|
|
res.destroy();
|
|
return done(new Error('tldjs: remote server responded with HTTP status ' + res.statusCode));
|
|
}
|
|
|
|
res.setEncoding('utf8');
|
|
|
|
res.on('data', function(d) {
|
|
body += d;
|
|
});
|
|
|
|
res.on('end', function() {
|
|
var tlds = parser.parse(body);
|
|
var filename = 'rules.json';
|
|
var data = JSON.stringify(tlds);
|
|
|
|
fs.writeFile(join(__dirname, '..', filename), data, 'utf-8', done);
|
|
});
|
|
});
|
|
|
|
req.setTimeout(5000);
|
|
req.on('error', done);
|
|
req.end();
|
|
}
|
|
};
|