-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
91 lines (67 loc) · 2.57 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
const curso = "MEDICINA";
const cota = "Candidatos que, independentemente da renda (art. 14, II, Portaria Normativa nº 18\/2012), tenham cursado integralmente o ensino médio em escolas públicas (Lei nº 12.711\/2012).";
var result = {};
result.instituicoes = {};
result.corte = {};
const wait_ = (s)=> new Promise((re,err)=>{
setTimeout(()=>{re();}, s);
});
const fs = require('fs');
var request = require("request");
(async () => {
for (let index = 0; index < 1000; index++) {
await wait_(50)
try {
var options = {
method: 'GET',
url: `https://sisu-api-pcr.apps.mec.gov.br/api/v1/oferta/instituicao/${index}`
};
request(options, function (error, response, body) {
body = JSON.parse(body)
var error = body.error;
// console.log(error);
if(error !== "invalid") {step2(body, index)}
});
} catch (error) {
}
}
fs.writeFile("./med.json", JSON.stringify(result), function(err) {
if(err) console.log(err);
console.log("med.json was saved!");
});
})();
function step2(data, id){
// console.log(data)
result.instituicoes[id] = data;
for (let index = 0; index < data.length; index++) {
try {
if (data[index].no_curso == curso){
var options = {
method: 'GET',
url: `https://sisu-api-pcr.apps.mec.gov.br/api/v1/oferta/${data[index].co_oferta}/selecionados`
};
request(options, function (error, response, body) {
body = JSON.parse(body)
// console.log(body);
var menor = {};
menor.nu_nota_candidato = Infinity;
body.forEach(function(item){
if(item.no_mod_concorrencia == cota){
if (Number(item.nu_nota_candidato) < menor.nu_nota_candidato) menor = item;
}
});
//console.log(menor)
// console.log(`=================================================================
// ${data.search_rule}
// Vagas total: ${data[index].qt_vagas_sem2} vagas cota: ${menor.nu_classificacao}
// Corte: ${menor.nu_nota_candidato}
// `)
//console.log(`${data.search_rule} ${menor.nu_nota_candidato} ${data[index].qt_vagas_sem2} ${menor.nu_classificacao}`)
result.corte[id] = menor;
});
break
}
} catch (error) {
}
}
}