multasgt
Version:
Consultar multas de Transito Guatemala
55 lines (52 loc) • 1.78 kB
JavaScript
const fetch = require('node-fetch');
const cheerio = require('cheerio');
const url = require('url');
const request = function request(plate, type) {
const body = `tplaca=${type}&nplaca=${plate}`;
const req = new Promise((resolveReq, rejectReq) => {
fetch('http://consulta.muniguate.com/emetra/despliega.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': new Buffer(body).length,
},
body,
})
.then(res => res.text())
.then(html => {
let $ = cheerio.load(html);
const promises = [];
$('tr.row').each((i, multa) => {
const tds = $(multa).find('.texto').toArray();
const date = $(tds[0]).text();
const desc = $(tds[1]).text();
const ammount = $(tds[2]).text();
const picture = `http://consultas.muniguate.com/consultas/remisiones/remision_pic.jsp?r=${url.parse($(tds[1]).attr('href'), true).query.r}`;
const result = new Promise((resolve, reject) => {
fetch(picture, { method: 'GET' })
.then(res => res.text())
.then(pictureHtml => {
$ = cheerio.load(pictureHtml);
const photo = $("[src*='fotos']").attr('src').replace(/\s+/g, '');
resolve({
date,
desc,
ammount,
photo,
});
}).catch(err => {
reject(err);
});
});
promises.push(result);
});
Promise.all(promises).then(data => {
resolveReq(data);
});
}).catch(e => {
rejectReq(e);
});
});
return req;
};
module.exports = request;