From 7bcf5c15b8502bb4fe7db55b6bac75e7077db98b Mon Sep 17 00:00:00 2001 From: Fillerix99 Date: Wed, 13 Jul 2016 21:17:49 +0200 Subject: [PATCH] Pushed the main files. --- bot.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 24 ++++++++++++++++++++++++ readme.md | 0 3 files changed, 77 insertions(+) create mode 100644 bot.js create mode 100644 package.json create mode 100644 readme.md diff --git a/bot.js b/bot.js new file mode 100644 index 0000000..3a0bcf3 --- /dev/null +++ b/bot.js @@ -0,0 +1,53 @@ +//Please note that this was quickly made and it just works, if you would like to improve it just do a pull and i´ll check it //Fillerino +var SlackBot = require('slackbots'); +var needle = require('needle'); + +var bot = new SlackBot({ + token: '>>>>TOKEN<<<<', // Add a bot https://my.slack.com/services/new/bot and put the token + name: 'hashbot' +}); + +function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); +} + + +bot.on('start', function() { + // more information about additional params https://api.slack.com/methods/chat.postMessage + bot.on('message', function(data) { + msg = data.text; + if (msg.indexOf('!hash') >= 0) { + getdata(); + } + }); + + function getdata() { + needle.get('https://explorer.lbry.io/api/getnetworkhashps', function(error, response) { + if (!error && response.statusCode == 200) + console.log(response.body); + currenthash = response.body / 1000000000 + //Gets current Diff + needle.get('https://explorer.lbry.io/api/getdifficulty', function(error, response) { + if (!error && response.statusCode == 200) + console.log(response.body); + currentdiff = numberWithCommas(Math.round(response.body)); + //Gets current block + needle.get('https://explorer.lbry.io/api/getblockcount', function(error, response) { + if (!error && response.statusCode == 200) + console.log(response.body); + var currentblock = numberWithCommas(response.body); + //bot.postMessageToChannel('mining', '*Current stats: *' + os.EOL + '*Hashrate: ' + Math.round(currenthash) + ' GH/s*' + os.EOL + '*Difficulty: ' + currentdiff + os.EOL + '*' + '*Current block: ' + currentblock + os.EOL + '*' + '_You can see this data and much more on the official explorer https://explorer.lbry.io!_'); + bot.postMessageToChannel('mining', '*Current stats:*\n' + '*Hashrate: ' + Math.round(currenthash) + ' GH/s*\n' + '*Difficulty: ' + currentdiff + '*\n' + '*Current block: ' + currentblock + '*\n' + '_You can see this data and much more on the official explorer https://explorer.lbry.io!_'); + }); + + + }); + + }); + } + + //Hour interval posting + setInterval(getdata, 3600000); + getdata(); + // +}); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..28e53db --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "hashbot", + "version": "1.0.0", + "description": "A bot for slack wich displays lbrys current hashrate via the open api.", + "main": "bot.js", + "dependencies": { + "needle": "^1.0.0", + "slackbots": "^0.5.1" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/lbryio/hashbot.git" + }, + "author": "Fillerino", + "license": "MIT", + "bugs": { + "url": "https://github.com/lbryio/hashbot/issues" + }, + "homepage": "https://github.com/lbryio/hashbot#readme" +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e69de29