From d130cecdca9f275d842d1b74e0036b14696c4541 Mon Sep 17 00:00:00 2001 From: benji7425 Date: Tue, 1 Nov 2016 17:09:09 +0000 Subject: [PATCH 1/2] Added disconnect error handling and reconnect attempt --- feed-bot.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/feed-bot.js b/feed-bot.js index 11fbf45..9acbfb0 100644 --- a/feed-bot.js +++ b/feed-bot.js @@ -50,6 +50,12 @@ Dns.resolve("discordapp.com", function (err) { setInterval(checkFeedAndPost, Config.pollingInterval); }); + bot.on("disconnect", function(err, code){ + logEvent("Bot was disconnected. Code: " + code + ". Details: " + (err.message || err)); + logEvent("Trying to reconnect bot"); + bot.connect(); + }); + bot.on("message", function (user, userID, channelID, message) { //check if the message is a link, cache it if it is if (linkRegExp.test(message) && (message !== latestFeedLink)) { @@ -84,6 +90,16 @@ function checkLinkAndPost(err, articles) { bot.sendMessage({ to: Config.channelID, message: latestLink + }, function(err, message){ + reportError("ERROR: Failed to send message: " + (err.message || err) + " " + message); + logEvent("Checking bot connectivity"); + if(bot.connected) + logEvent("Connectivity seems fine - I have no idea why the message didn't post"); + else{ + reportError("Bot appears to be disconnected! Attempting to reconnect...") + bot.connect(); + } + }); cacheLink(latestLink); } From e1473e211473c46f79e0c5429a25b779c3a3b315 Mon Sep 17 00:00:00 2001 From: benji7425 Date: Tue, 1 Nov 2016 17:23:39 +0000 Subject: [PATCH 2/2] Added verbose logging option (currently toggled with a message) --- feed-bot.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/feed-bot.js b/feed-bot.js index 9acbfb0..1be4deb 100644 --- a/feed-bot.js +++ b/feed-bot.js @@ -7,6 +7,8 @@ var FeedRead = require("feed-read"); //for rss feed reading var BotConfig = require("./botConfig.json"); //bot config file containing bot token var Config = require("./config.json"); //config file containing other settings +var verboseLogging = false; + //get a URL object from the feedUrl so we can examine it and check connectivity later var url = Url.parse(Config.feedUrl); @@ -65,12 +67,17 @@ Dns.resolve("discordapp.com", function (err) { cacheLink(url); return url; }); + } else if(message === "enableVerboseLogging"){ + verboseLogging = true; + } else if(message === "disableVerboseLogging"){ + verboseLogging = false; } }); } }); function checkFeedAndPost() { + if(verboseLogging) logEvent("Bot is currently " + (bot.connected ? "connected to" : "disconnected from") + " discord"); //check that we have an internet connection (well not exactly - check that we have a connection to the host of the feedUrl) Dns.resolve(url.host, function (err) { if (err) reportError("CONNECTION ERROR: Cannot resolve host (you are probably not connected to the internet). Details: " + (err.message || err));