-
Notifications
You must be signed in to change notification settings - Fork 0
/
crypto_prices.js
74 lines (70 loc) · 1.98 KB
/
crypto_prices.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
let symbols = [
{ symbol: 'BTC', name: '比特币' },
{ symbol: 'ETH', name: '以太坊' },
{ symbol: 'BNB', name: '币安币' },
{ symbol: 'XRP', name: '瑞波币' },
{ symbol: 'DOGE', name: '狗狗币' },
{ symbol: 'LTC', name: '莱特币' },
{ symbol: 'SOL', name: '索拉纳' },
{ symbol: 'ARB', name: 'ARB币' },
{ symbol: 'TRX', name: '波场币' }
];
let message = {
'title': '加密货币汇率',
'content': '',
'icon': 'bitcoinsign.circle',
'icon-color': '#EF8F1C',
};
function handleError(error) {
if (Array.isArray(error)) {
console.log(`错误:${error[0]} ${error[1]}`);
return {
title: '加密货币汇率',
content: `错误:${error[0]} ${error[1]}`,
icon: 'simcard',
'icon-color': '#CB1B45',
}
} else {
console.log(`错误:${error}`);
return {
title: '加密货币汇率',
content: `错误:${error}`,
icon: 'simcard',
'icon-color': '#CB1B45',
}
}
}
async function fetchPrice(symbol) {
return new Promise((resolve, reject) => {
try {
const request = {
url: `https://api.binance.com/api/v3/ticker/price?symbol=${symbol.symbol}USDT`,
};
$httpClient.get(request, function (error, response, data) {
if (error) {
return reject([`获取${symbol.name}/USDT汇率失败`, error]);
} else {
if (response.status === 200) {
const price = JSON.parse(data).price;
message.content = `${message.content}${symbol.name}${symbol.symbol}: 💲${Number(price).toFixed(4)}\n`;
}
return resolve();
}
});
} catch (error) {
return reject([`获取${symbol.name}/USDT汇率失败`, error]);
}
})
}
(async() => {
try {
console.log('⏳ 正在获取加密货币汇率...');
for (const symbol of symbols) {
await fetchPrice(symbol);
}
message.content = message.content.slice(0, -1);
$done(message);
} catch (error) {
$done(handleError(error));
}
})();