-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
111 lines (108 loc) · 4.16 KB
/
index.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
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
107
108
109
110
111
const axios = require('axios');
const cheerio = require('cheerio');
const url = 'https://www.sorteonline.com.br/todas/resultados';
const loteriaNomeSel = '.name';
const premioSel = '.premio.color.bold';
const dataSorteioSel = '.color.header-resultados__datasorteio';
const resultadoSel = '.result.result-default.center > ul';
const numConcursoSel = '.color.header-resultados__nro-concurso';
const duplaSena = 'Dupla Sena';
const timemania = 'Timemania';
const timemaniaSel = '.time-coracao';
const diaSorte = 'Dia de Sorte';
const diaSorteSel = '.time-coracao';
const loteriaFederal = 'Loteria Federal';
const loteriaFederalSel = 'ul.federal > li';
const loteriaFederalNum = 'div.bg';
const loteca = 'Loteca';
const lotecaSel = 'table.result-loteca tr';
const lotogol = 'Lotogol';
const lotogolSel = 'table.result-lotogol tr';
const loterialSel = '.DivDeVisibilidade';
function buscaUltimosResultados() {
return axios.get(url).then(function(response) {
const html = response.data;
const resultados = {};
const $ = cheerio.load(html);
$(loterialSel).each((_, element) => {
const cheerioElement = $(element);
const nome = cheerioElement.find(loteriaNomeSel).text();
resultados[nome] = {
nome: nome,
premio: cheerioElement.find(premioSel).text(),
dataSorteio: cheerioElement
.find(dataSorteioSel)
.text()
.trim(),
resultado: cheerioElement
.find(resultadoSel)
.text()
.split(/\s+/)
.filter(s => s != ''),
numConcurso: cheerioElement
.find(numConcursoSel)
.text()
.trim()
};
const loteria = resultados[nome];
switch (nome) {
case duplaSena:
loteria.resultadoDuplaSena1 = loteria.resultado.slice(0, 6);
loteria.resultadoDuplaSena2 = loteria.resultado.slice(6);
delete loteria.resultado;
break;
case timemania:
loteria.timeCoracao = cheerioElement
.find(timemaniaSel)
.text()
.trim();
break;
case diaSorte:
loteria.mes = cheerioElement
.find(diaSorteSel)
.text()
.trim();
break;
case loteriaFederal:
cheerioElement.find(loteriaFederalSel).each((_, li) => {
const cheerioLi = $(li);
loteria.resultado.push(
cheerioLi
.find(loteriaFederalNum)
.text()
.trim()
);
});
break;
case loteca:
cheerioElement.find(lotecaSel).each((_, tr) => {
const jogo = $(tr)
.text()
.split(/\s+/);
loteria.resultado.push({
casa: jogo[2],
casaGols: jogo[3],
visitanteGols: jogo[5],
visitante: jogo[6]
});
});
break;
case lotogol:
cheerioElement.find(lotogolSel).each((_, tr) => {
const jogo = $(tr)
.text()
.split(/\s+/);
loteria.resultado.push({
casa: jogo[2],
casaGols: jogo[3],
visitanteGols: jogo[5],
visitante: jogo[6]
});
});
break;
}
});
return resultados;
});
}
module.exports = buscaUltimosResultados;