diff --git a/bot/bot.js b/bot/bot.js index 7e34bce..9ea576d 100644 --- a/bot/bot.js +++ b/bot/bot.js @@ -5,7 +5,7 @@ const Discord = require('discord.js'); // Load config! let config = require('config'); config = config.get('bot'); - +let genconfig = require('config'); //load modules const claimbot = require('./modules/claimbot.js'); const commandsV2 = require('./modules/commandsV2.js'); @@ -47,7 +47,9 @@ bot.on('ready', function() { bot.user.setActivity(config.prefix + 'help', { type: 'LISTENING' }).catch(console.error); //initialize the claimbot (content bot) - claimbot.init(bot); + if (genconfig.get('claimbot').enabled) { + claimbot.init(bot); + } //initialize the commandsBot commandsV2.init(bot); //initialize the support bot diff --git a/bot/modules/claimbot.js b/bot/modules/claimbot.js index e7d2cea..ee6b371 100644 --- a/bot/modules/claimbot.js +++ b/bot/modules/claimbot.js @@ -15,10 +15,29 @@ function init(discordBot_) { if (discordBot) { throw new Error('init was already called once'); } + discordBot = discordBot_; + console.log('Activating claimbot'); + discordBot.channels.get(channels[0]).send('activating claimbot'); + setInterval(announceClaims, 60 * 1000); + announceClaims(); +} - discordBot = discordBot_; - console.log('Activating claimbot'); - discordBot.channels.get(channels[0]).send('activating claimbot'); +function announceClaims() { + let currentBlock = lastProcessedBlock; + getClaimsForLastBlock() + .then(claims => { + claims.forEach(c => { + if (c.height <= lastProcessedBlock) return; + currentBlock = Math.max(currentBlock, c.height); + + //filter claims that we don't want to announce + if (c.bid_state === 'Expired' || c.bid_state === 'Spent') return; + + discordPost(embedFromClaim(c)); + }); + lastProcessedBlock = currentBlock; + }) + .catch(console.error); } /** diff --git a/bot/modules/ircbridge.js b/bot/modules/ircbridge.js index edf17e0..74d8196 100644 --- a/bot/modules/ircbridge.js +++ b/bot/modules/ircbridge.js @@ -4,5 +4,7 @@ const ircconfig = config.get('irc'); exports.custom = ['irc']; exports.irc = function(bot) { - discordIRC([ircconfig]); + if (ircconfig.enabled) { + discordIRC([ircconfig]); + } }; diff --git a/config/commands.json b/config/commands.json index 2345293..2c8ff40 100644 --- a/config/commands.json +++ b/config/commands.json @@ -414,7 +414,7 @@ "icon_url": "https://spee.ch/2/pinkylbryheart.png" } } - }, + }, "!rewardsapproval": { "usage": "", "description": "Rewards Approval Help Message", @@ -880,8 +880,8 @@ } } }, - - "!status": { + + "!status": { "usage": "", "description": "LBRY Services Status", "operation": "send", @@ -897,7 +897,6 @@ } } }, - "!why": { "usage": "", "description": "Why should I use LBRY?", @@ -914,7 +913,6 @@ } } }, - "!piratebay": { "usage": "", "description": "Why LBRY has piratebay.com", diff --git a/config/default.example.json b/config/default.example.json index dd89353..6ec1347 100644 --- a/config/default.example.json +++ b/config/default.example.json @@ -9,15 +9,6 @@ "perms": ["Moderator Team", "LBRY TEAM"], // Roles that have access to all commands. "logchannel": "371620338263523328" // Channel to log the bots moderation.. }, - "lbrycrd": { - "host": "localhost", - "port": 9245, - "user": "USERHERE", - "pass": "PASSWORDHERE" - }, - "mongodb": { - "url": "mongodb://localhost:27017/wunderbot" - }, "Channels": { "verification": "571001864271691805", "mining": "363049669636390913", @@ -59,6 +50,7 @@ "mainchannel": "363050205043621908" // Main Stats Bot channel for directing with help message }, "claimbot": { + "enabled": false, "channels": ["363086719391629326"] }, "rolelist": { @@ -66,6 +58,7 @@ "allowedroles": ["Off-Topic Chats", "Dev"] }, "irc": { + "enabled": false, "nickname": "wunderbot", "server": "chat.freenode.net", "discordToken": "",