let jp = require("jsonpath"); let moment = require("moment"); let numeral = require("numeral"); let request = require("request"); let config = require("config"); let needle = require("needle"); let hasStatsBotChannels = require("../helpers.js").hasStatsBotChannels; let inPrivate = require("../helpers.js").inPrivate; let ChannelID = config.get("statsbot").mainchannel; let statsurl = "https://coinmarketcap.com/currencies/library-credit/"; exports.commands = [ "stats" // command that is in this file, every command needs it own export as shown below ]; exports.stats = { usage: "", description: "Displays list of current Market stats", process: function(bot, msg) { needle.get( "https://api.coinmarketcap.com/v1/ticker/library-credit/", function(error, response) { if (error || response.statusCode !== 200) { msg.channel.send("coinmarketcap API is not available"); } else { var data = response.body[0]; var rank = data.rank; var price_usd = Number(data.price_usd); var price_btc = Number(data.price_btc); var market_cap_usd = Number(data.market_cap_usd); var available_supply = Number(data.available_supply); var total_supply = Number(data.total_supply); var percent_change_1h = Number(data.percent_change_1h); var percent_change_24h = Number(data.percent_change_24h); var json = response.body[0]; var newjson = parse_obj(json); var parse = JSON.stringify(newjson); var volume24_usd = parse.replace(/[^0-9]/g, ""); var dt = new Date(); var timestamp = dt.toUTCString(); var hr_indicator = ":thumbsup:"; var day_indicator = ":thumbsup:"; if (percent_change_1h < 0) { hr_indicator = ":thumbsdown:"; } if (percent_change_24h < 0) { day_indicator = ":thumbsdown:"; } needle.get( "https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=GBP", function(error, response) { if (error || response.statusCode !== 200) { msg.channel.send("coinmarketcap API is not available"); } else { var data = response.body[0]; var price_gbp = Number(data.price_gbp); needle.get( "https://api.coinmarketcap.com/v1/ticker/library-credit/?convert=EUR", function(error, response) { if (error || response.statusCode !== 200) { msg.channel.send("coinmarketcap API is not available"); } else { var data = response.body[0]; var price_eur = Number(data.price_eur); description = "**Rank: [" + rank + "](" + statsurl + ")**\n" + "**Data**\n" + "Market Cap: [$" + numberWithCommas(market_cap_usd) + "](" + statsurl + ") \n" + "Total Supply: [" + numberWithCommas(total_supply) + " LBC](" + statsurl + ")\n" + "Circulating Supply: [" + numberWithCommas(available_supply) + " LBC](" + statsurl + ")\n" + "24 Hour Volume: [$" + volume24_usd + "](" + statsurl + ") \n\n" + "**Price**\n" + "BTC: [₿" + price_btc.toFixed(8) + "](" + statsurl + ")\n" + "USD: [$" + price_usd.toFixed(2) + "](" + statsurl + ") \n" + "EUR: [€" + price_eur.toFixed(2) + "](" + statsurl + ") \n" + "GBP: [£" + price_gbp.toFixed(2) + "](" + statsurl + ") \n\n" + "**% Change**\n" + "1 Hour: [" + percent_change_1h + "](" + statsurl + ") " + hr_indicator + " \n\n" + "1 Day: [" + percent_change_24h + "](" + statsurl + ") " + day_indicator + " \n\n"; const embed = { description: description, color: 7976557, footer: { text: "Last Updated: " + timestamp }, author: { name: "Coin Market Cap Stats (LBC)", url: statsurl, icon_url: "https://i.imgur.com/yWf5USu.png" } }; msg.channel.send({ embed }); } } ); } } ); } } ); function parse_obj(obj) { var array = []; var prop; for (prop in obj) { if (obj.hasOwnProperty(prop)) { var key = parseInt(prop, 10); var value = obj[prop]; if (typeof value == "object") { value = parse_obj(value); } array[key] = value; } } return array; } function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } } };