let needle = require("needle"); let config = require("config"); let hasHashBotChannels = require("../helpers.js").hasHashBotChannels; let inPrivate = require("../helpers.js").inPrivate; let ChannelID = config.get("hashbot").mainchannel; exports.commands = [ "hash" // command that is in this file, every command needs it own export as shown below ]; exports.custom = ["timedhash"]; exports.timedhash = function(bot) { setInterval(function() { sendMiningInfo(bot); }, 6 * 60 * 60 * 1000); function sendMiningInfo(bot) { needle.get("https://explorer.lbry.io/api/v1/status", function( error, response ) { if (error || response.statusCode !== 200) { bot.channels.get(ChannelID).send("Explorer API is not available"); } else { var data, hashrate = "", difficulty = "", height = ""; data = response.body; height += data.status.height; hashrate += data.status.hashrate; difficulty += data.status.difficulty; description = "Hashrate: " + hashrate + "\n" + "Difficulty: " + difficulty + "\n" + "Current block: " + height + "\n" + "Source: https://explorer.lbry.io"; const embed = { description: description, color: 7976557, author: { name: "LBRY Explorer Stats", url: "https://explorer.lbry.io", icon_url: "https://i.imgur.com/yWf5USu.png" } }; bot.channels.get(ChannelID).send({ embed }); } }); } }; exports.hash = { usage: "", description: "Displays current Hashrate of Network", process: function(bot, msg) { var command = "!hash"; sendMiningInfo(bot, msg); function sendMiningInfo(bot, msg) { if (!inPrivate(msg) && !hasHashBotChannels(msg)) { msg.channel.send( "Please use <#" + ChannelID + "> or DMs to talk to hash bot." ); return; } needle.get("https://explorer.lbry.io/api/v1/status", function( error, response ) { if (error || response.statusCode !== 200) { msg.channel.send("Explorer API is not available"); } else { var data, hashrate = "", difficulty = "", height = ""; data = response.body; height += data.status.height; hashrate += data.status.hashrate; difficulty += data.status.difficulty; description = "Hashrate: " + hashrate + "\n" + "Difficulty: " + difficulty + "\n" + "Current block: " + height + "\n" + "Source: https://explorer.lbry.io"; const embed = { description: description, color: 7976557, author: { name: "LBRY Explorer Stats", url: "https://explorer.lbry.io", icon_url: "https://i.imgur.com/yWf5USu.png" } }; msg.channel.send({ embed }); } }); } function numberWithCommas(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } } };