-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
106 lines (93 loc) · 2.91 KB
/
app.js
File metadata and controls
106 lines (93 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const express = require('express');
const app = express();
const fetch = require('node-fetch');
const file = 'views/graphData.csv';
const fs = require('fs');
const csv = require('fast-csv');
var EA;
var request = require('request');
fs.truncate(file, 0, function(){})
fs.appendFile(file, 'id, value\n', function (err) {
if (err) throw err;
});
var options = {
url: "https://api.github.com/orgs/electronicarts/repos",
headers: {
'User-Agent': 'request'
}
};
/* For reading json data from api*/
request(options,"https://api.github.com/orgs/electronicarts/repos", function (error, response, body) {
parse(body);
});
function parse(body){
var repos = JSON.parse(body);
var keys;
var str;
fs.appendFile(file, "EA,\n", function (err) {
if (err) throw err;
});
// only displaying info on 4 repos as any more would be unreadable
// for every repo
for(var i = 0; i < 4; i++) {
str = "EA." + repos[i].name + ",\n";
fs.appendFile(file, str, function (err) {
if (err) throw err;
});
keys = Object.keys(repos[i]);
var string = JSON.stringify(repos[i]);
var val = JSON.parse(string);
// for elements in a repo
for(var k = 0; k < 72; k++){
str = "EA." + repos[i].name + "." + keys[k] + ",\n";
fs.appendFile(file, str, function (err) {
if (err) throw err;
});
// csv files don't like urls so i'm replacing the "." with "#"
var find = '.';
var re = new RegExp(find, 'g');
if(val[keys[k]] != null)
str = "EA." + repos[i].name + "." + keys[k] + "." +val[keys[k]].toString().replace(/\./gi,"#") + ",1\n";
fs.appendFile(file, str, function (err) {
if (err) throw err;
});
}
}
}
/* when reading json data from file*/
// fs.readFile('views/org.json', 'utf8', function (err,data) {
// var repos = JSON.parse(EA);
// var keys;
// var str;
// // for every repo
// for(var i = 0; i < repos.length; i++) {
// str = "EA." + repos[i].name + ",\n";
// fs.appendFile(file, str, function (err) {
// if (err) throw err;
// });
// keys = Object.keys(repos[i]);
// var string = JSON.stringify(repos[i]);
// var val = JSON.parse(string);
// // for elements in a repo
// for(var k = 0; k < 5; k++){
// str = "EA." + repos[i].name + "." + keys[k] + ",\n";
// fs.appendFile(file, str, function (err) {
// if (err) throw err;
// });
// str = "EA." + repos[i].name + "." + keys[k] + "." +val[keys[k]] + ",1\n";
// fs.appendFile(file, str, function (err) {
// if (err) throw err;
// });
// }
// }
//});
app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/assets'));
app.get('/', function(req, res){
res.render('home');
})
app.get('/interrogate', (req, res) => {
res.render('graph');
});
app.use(express.static(__dirname + '/views'));
app.listen(3000);