promisified
This commit is contained in:
parent
daf6090b9f
commit
2471a7c4b2
|
@ -1,4 +1,4 @@
|
||||||
const https = require("https");
|
const rp = require("request-promise");
|
||||||
|
|
||||||
const api_url = ({ market, crypto, currency }) => `https://api.cryptowat.ch/markets/${market}/${crypto}${currency}/summary`;
|
const api_url = ({ market, crypto, currency }) => `https://api.cryptowat.ch/markets/${market}/${crypto}${currency}/summary`;
|
||||||
const currencies = {
|
const currencies = {
|
||||||
|
@ -17,8 +17,9 @@ const markets = {
|
||||||
module.exports = bot => {
|
module.exports = bot => {
|
||||||
bot._trigger.set("coins", new bot.trigger({
|
bot._trigger.set("coins", new bot.trigger({
|
||||||
call: /^(\.|\/)(btc|eth|xmr)/i,
|
call: /^(\.|\/)(btc|eth|xmr)/i,
|
||||||
|
clients: ["irc"],
|
||||||
f: e => {
|
f: e => {
|
||||||
cryptowat_summary(e.cmd, markets[e.cmd], e.cmd !== "xmr" ? e.args[0] || "usd" : "usd").then(
|
cryptowat_summary(e.cmd, markets[e.cmd], e.cmd !== "xmr" ? e.args[0] || "eur" : "usd").then(
|
||||||
resolve => e.reply(resolve),
|
resolve => e.reply(resolve),
|
||||||
reject => e.reply(reject)
|
reject => e.reply(reject)
|
||||||
);
|
);
|
||||||
|
@ -28,26 +29,23 @@ module.exports = bot => {
|
||||||
|
|
||||||
const cryptowat_summary = (crypto, market, currency) => {
|
const cryptowat_summary = (crypto, market, currency) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!currency)
|
|
||||||
currency = "eur";
|
|
||||||
if (!Object.keys(currencies).includes(currency) || crypto === currency)
|
if (!Object.keys(currencies).includes(currency) || crypto === currency)
|
||||||
reject(`Can't convert or invalid currency: ${currency}`);
|
reject(`Can't convert or invalid currency: ${currency}`);
|
||||||
https.get([{ market: market, crypto: crypto, currency: currency }].map(api_url).join``, res => {
|
rp([{ market: market, crypto: crypto, currency: currency }].map(api_url).join``, { json: true })
|
||||||
let content = "";
|
.then(res => {
|
||||||
res.on('data', chunk => content += chunk.toString());
|
if (res.length === 0)
|
||||||
res.on('end', () => {
|
|
||||||
if(content.length === 0)
|
|
||||||
reject("No data received");
|
reject("No data received");
|
||||||
const result = JSON.parse(content).result;
|
|
||||||
const data = {
|
const data = {
|
||||||
last: [{ val: result.price.last }].map(currencies[currency]).join``,
|
last: [{ val: res.result.price.last }].map(currencies[currency]).join``,
|
||||||
high: [{ val: result.price.high }].map(currencies[currency]).join``,
|
high: [{ val: res.result.price.high }].map(currencies[currency]).join``,
|
||||||
low: [{ val: result.price.low }].map(currencies[currency]).join``,
|
low: [{ val: res.result.price.low }].map(currencies[currency]).join``,
|
||||||
change: (result.price.change.percentage * 100).toFixed(2),
|
change: (res.result.price.change.percentage * 100).toFixed(2),
|
||||||
volume: result.volume
|
volume: res.result.volume
|
||||||
};
|
};
|
||||||
resolve(`Current: [b]${data.last}[/b] - High: [b]${data.high}[/b] - Low: [b]${data.low}[/b] - Change: [b]${data.change}[/b]% - Volume: [b]${data.volume}[/b]`);
|
resolve(`Current: [b]${data.last}[/b] - High: [b]${data.high}[/b] - Low: [b]${data.low}[/b] - Change: [b]${data.change}[/b]% - Volume: [b]${data.volume}[/b]`);
|
||||||
});
|
})
|
||||||
|
.catch(err => {
|
||||||
|
reject("lol cryptowatch ist down");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user