blob: 9bbb0ef7d1907e71b87973dd3ddf5a2963dab779 [file] [log] [blame]
/*
wget http://projects.eclipse.org/json/projects/all -O all.json
wget http://projects.eclipse.org/json/technology/internet%20of%20things -O projects.json
*/
var httpreq = require('httpreq');
var parse = require('csv-parse');
var fs = require('fs');
httpreq.get('https://docs.google.com/spreadsheets/d/1MT8vUectDG7qnt83LBts-B7oECMsICXyB4Tn4Kxl64U/pub?gid=2096262216&single=true&output=csv', function(err, res) {
if (err) return console.log(err);
// console.log(res.body);
var input = res.body;
var stats = {}
parse(input, {
'delimiter': ','
}, function(err, output) {
// console.log(output);
var d;
for (var i = output.length - 1; i >= 0; i--) {
var row = output[i];
if (d && row[1] != d) break;
d = row[1];
stats['iot.' + row[0]] = (stats['iot.' + row[0]] | 0) + parseInt(row[2]);
}
console.log('var download_stats = ' + JSON.stringify(stats, null, 2) + ';');
fs.writeFile('downloadStats.json', stats, function(err) {
if (err) {
return console.log(err);
}
// console.log("The file was saved!");
});
});
});
var all = require('./all.json');
var releases = {}
var download_urls = {}
var project_states = {}
for (var project in all.projects) {
if(project.startsWith('iot.')) {
// console.log(project);
for(var repo in all.projects[project].github_repos)
{
// console.log(all.projects[project].id[0].value.replace('iot.', '') + ':' + all.projects[project].github_repos[repo].url.replace('https://github.com/eclipse/',''))
}
if(all.projects[project].releases) {
for(var release in all.projects[project].releases)
{
if(all.projects[project].releases[release].review && all.projects[project].releases[release].review.state[0].value == 'success') {
// console.log("Latest Release: " + all.projects[project].releases[release].title);
releases[project] = all.projects[project].releases[release].title;
break;
}
}
//console.log(all.projects[project])
for(var release in all.projects[project].releases)
{
if(all.projects[project].releases[release].review && all.projects[project].releases[release].review.state[0].value == 'success') {
console.log(
all.projects[project].releases[release].date[0].value,
all.projects[project].releases[release].parent_project[0].id,
all.projects[project].releases[release].title
);
}
}
}
var url = url = 'http://projects.eclipse.org/projects/' + project;
if(all.projects[project].download_url.length > 0) {
url = all.projects[project].download_url[0].url;
} else if (all.projects[project].downloads_message.length > 0){
// link to download page
url = 'http://projects.eclipse.org/projects/' + project + '/downloads';
} else if (all.projects[project].website_url.length > 0) {
url = all.projects[project].website_url[0].url ;
}
download_urls[project] = url ;
project_states[project] = all.projects[project].state[0].value;
}
}
console.log('var releases = ' + JSON.stringify(releases, null, 2) + ';');
console.log('var download_urls = ' + JSON.stringify(download_urls, null, 2) + ';');
console.log('var project_states = ' + JSON.stringify(project_states, null, 2) + ';');