-
Notifications
You must be signed in to change notification settings - Fork 8
/
report.js
48 lines (44 loc) · 1.04 KB
/
report.js
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
const fs = require('fs');
const readline = require('readline');
const ejs = require('ejs');
const lineReader = readline.createInterface({
input: process.stdin,
});
const results = {}
const errors = []
lineReader.on('line', (line) => {
const res = JSON.parse(line);
if (res.error) {
errors.push(res);
} else {
const key = res.reconsent || 'none';
if (!results[key]) {
results[key] = [];
}
results[key].push(res);
}
});
lineReader.on('close', () => {
ejs.renderFile('crawler/views/index.ejs', {
title: 'Re:Consent crawler results',
results
}, (err, output) => {
if (err) {
console.error(err);
return;
}
fs.writeFileSync('_site/index.html', output);
});
Object.keys(results).forEach((name) => {
ejs.renderFile('crawler/views/cmp.ejs', {
title: `Re:Consent crawler results: ${name}`,
results: results[name]
}, (err, output) => {
if (err) {
console.error(err);
return;
}
fs.writeFileSync(`_site/${name}.html`, output);
});
});
});