@cliqz/autoconsent
Version:
This is a library of rules for navigating through common consent popups on the web. These rules can be run in a Firefox webextension, or in a puppeteer orchestrated headless browser. Using these rules, opt-in and opt-out options can be selected automatica
49 lines (44 loc) • 1.07 kB
JavaScript
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);
});
});
});