AJ ONeal
5 years ago
4 changed files with 16 additions and 129 deletions
@ -1,111 +0,0 @@ |
|||||
'use strict'; |
|
||||
|
|
||||
// We believe in a proactive approach to sustainable open source.
|
|
||||
// As part of that we make it easy for you to opt-in to following our progress
|
|
||||
// and we also stay up-to-date on telemetry such as operating system and node
|
|
||||
// version so that we can focus our efforts where they'll have the greatest impact.
|
|
||||
//
|
|
||||
// Want to learn more about our Terms, Privacy Policy, and Mission?
|
|
||||
// Check out https://therootcompany.com/legal/
|
|
||||
|
|
||||
var os = require('os'); |
|
||||
var crypto = require('crypto'); |
|
||||
var https = require('https'); |
|
||||
var pkg = require('../package.json'); |
|
||||
|
|
||||
// to help focus our efforts in the right places
|
|
||||
var data = { |
|
||||
package: pkg.name |
|
||||
, version: pkg.version |
|
||||
, node: process.version |
|
||||
, arch: process.arch || os.arch() |
|
||||
, platform: process.platform || os.platform() |
|
||||
, release: os.release() |
|
||||
}; |
|
||||
|
|
||||
function addCommunityMember(opts) { |
|
||||
setTimeout(function () { |
|
||||
var req = https.request({ |
|
||||
hostname: 'api.therootcompany.com' |
|
||||
, port: 443 |
|
||||
, path: '/api/therootcompany.com/public/community' |
|
||||
, method: 'POST' |
|
||||
, headers: { 'Content-Type': 'application/json' } |
|
||||
}, function (resp) { |
|
||||
// let the data flow, so we can ignore it
|
|
||||
resp.on('data', function () {}); |
|
||||
//resp.on('data', function (chunk) { console.log(chunk.toString()); });
|
|
||||
resp.on('error', function () { /*ignore*/ }); |
|
||||
//resp.on('error', function (err) { console.error(err); });
|
|
||||
}); |
|
||||
var obj = JSON.parse(JSON.stringify(data)); |
|
||||
obj.action = 'updates'; |
|
||||
try { |
|
||||
obj.ppid = ppid(obj.action); |
|
||||
} catch(e) { |
|
||||
// ignore
|
|
||||
//console.error(e);
|
|
||||
} |
|
||||
obj.name = opts.name || undefined; |
|
||||
obj.address = opts.email; |
|
||||
obj.community = 'node.js@therootcompany.com'; |
|
||||
|
|
||||
req.write(JSON.stringify(obj, 2, null)); |
|
||||
req.end(); |
|
||||
req.on('error', function () { /*ignore*/ }); |
|
||||
//req.on('error', function (err) { console.error(err); });
|
|
||||
}, 50); |
|
||||
} |
|
||||
|
|
||||
function ping(action) { |
|
||||
setTimeout(function () { |
|
||||
var req = https.request({ |
|
||||
hostname: 'api.therootcompany.com' |
|
||||
, port: 443 |
|
||||
, path: '/api/therootcompany.com/public/ping' |
|
||||
, method: 'POST' |
|
||||
, headers: { 'Content-Type': 'application/json' } |
|
||||
}, function (resp) { |
|
||||
// let the data flow, so we can ignore it
|
|
||||
resp.on('data', function () { }); |
|
||||
//resp.on('data', function (chunk) { console.log(chunk.toString()); });
|
|
||||
resp.on('error', function () { /*ignore*/ }); |
|
||||
//resp.on('error', function (err) { console.error(err); });
|
|
||||
}); |
|
||||
var obj = JSON.parse(JSON.stringify(data)); |
|
||||
obj.action = action; |
|
||||
try { |
|
||||
obj.ppid = ppid(obj.action); |
|
||||
} catch(e) { |
|
||||
// ignore
|
|
||||
//console.error(e);
|
|
||||
} |
|
||||
|
|
||||
req.write(JSON.stringify(obj, 2, null)); |
|
||||
req.end(); |
|
||||
req.on('error', function (/*e*/) { /*console.error('req.error', e);*/ }); |
|
||||
}, 50); |
|
||||
} |
|
||||
|
|
||||
// to help identify unique installs without getting
|
|
||||
// the personally identifiable info that we don't want
|
|
||||
function ppid(action) { |
|
||||
var parts = [ action, data.package, data.version, data.node, data.arch, data.platform, data.release ]; |
|
||||
var ifaces = os.networkInterfaces(); |
|
||||
Object.keys(ifaces).forEach(function (ifname) { |
|
||||
if (/^en/.test(ifname) || /^eth/.test(ifname) || /^wl/.test(ifname)) { |
|
||||
if (ifaces[ifname] && ifaces[ifname].length) { |
|
||||
parts.push(ifaces[ifname][0].mac); |
|
||||
} |
|
||||
} |
|
||||
}); |
|
||||
return crypto.createHash('sha1').update(parts.join(',')).digest('base64'); |
|
||||
} |
|
||||
|
|
||||
module.exports.ping = ping; |
|
||||
module.exports.joinCommunity = addCommunityMember; |
|
||||
|
|
||||
if (require.main === module) { |
|
||||
ping('install'); |
|
||||
//addCommunityMember({ name: "AJ ONeal", email: 'coolaj86@gmail.com' });
|
|
||||
} |
|
Loading…
Reference in new issue