-
Notifications
You must be signed in to change notification settings - Fork 0
/
leitor_moedas.js
125 lines (110 loc) · 2.93 KB
/
leitor_moedas.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// https://economia.awesomeapi.com.br/json/list/USD-BRL/120
// executar api
const R = require('ramda');
var rp = require('request-promise');
var obj = [
{
"varBid": "0.0055",
"high": "3.7628",
"low": "3.7296",
"pctChange": "0.15",
"bid": "3.7402",
"ask": "3.7423",
"timestamp": "1563130669"
},
{
"varBid": "-0.0161",
"high": "3.7100",
"low": "3.7296",
"pctChange": "-0.43",
"bid": "3.837",
"ask": "3.7388",
"timestamp": "1562965195"
},
{
"varBid": "-0.0161",
"high": "3.7100",
"low": "3.7296",
"pctChange": "-0.43",
"bid": "3.937",
"ask": "3.7388",
"timestamp": "1562965195"
}
,
{
"varBid": "-0.0161",
"high": "3.7100",
"low": "3.7296",
"pctChange": "-0.43",
"bid": "3.637",
"ask": "3.7388",
"timestamp": "1562965195"
}
];
const fnPropPrecoMaisAlto = obj => R.view(R.lensProp('high'), obj);
const fnPropPrecoMaisBaixo = obj => R.view(R.lensProp('low'), obj);
const fnPropValorFinal = obj => R.view(R.lensProp('bid'), obj);
const fnPropVariacao = obj => R.view(R.lensProp('varBid'), obj);
var fnLeitorConversao = obj => {
return {
"vl_maximo" : fnPropPrecoMaisAlto(obj),
"vl_minimo" : fnPropPrecoMaisBaixo(obj),
"vl_diferenca" : fnPropPrecoMaisAlto(obj) - fnPropPrecoMaisBaixo(obj),
"vl_preco_final" : fnPropValorFinal(obj),
"vl_variacao" : fnPropVariacao(obj),
"sn_alta" : false
};
}
function fnVerificaSeFoiAlta(arrAtual, nr_posicao) {
var vl_subtracao = 0;
var vl_preco_atual = 0;
var vl_preco_anterior = 0;
if (nr_posicao < arrAtual.length) {
if (nr_posicao != 0) {
vl_preco_atual = arrAtual[nr_posicao].vl_preco_final;
vl_preco_anterior = arrAtual[nr_posicao - 1].vl_preco_final;
vl_subtracao = vl_preco_atual - vl_preco_anterior;
// se o valor atual for maior q o valor anterior, true
arrAtual[nr_posicao].sn_alta = vl_subtracao > 0 ? true : false;
}
return fnVerificaSeFoiAlta(
arrAtual,
nr_posicao + 1
);
}
return arrAtual;
}
/*
var arrValores = R.map(fnLeitorConversao, obj);
arrValores = fnVerificaSeFoiAlta(arrValores, 0);
arrValores.forEach(
element => {
console.log(element.sn_alta)
}
);
*/
var options = {
uri: 'https://economia.awesomeapi.com.br/json/list/USD-BRL/100',
qs: {
// access_token: 'xxxxx xxxxx' // -> uri + '?access_token=xxxxx%20xxxxx'
},
headers: {
'User-Agent': 'Request-Promise'
},
json: true // Automatically parses the JSON string in the response
};
rp(options).then(
function (objJson) {
var arrValores = R.map(fnLeitorConversao, objJson);
arrValores = fnVerificaSeFoiAlta(arrValores, 0);
arrValores.forEach(
element => {
console.log(element.sn_alta)
}
);
}
).catch(
function (err) {
// Crawling failed...
}
);