diff --git a/bot.js b/bot.js index fd2265c..4487049 100644 --- a/bot.js +++ b/bot.js @@ -33,14 +33,23 @@ const isValidUrl = urlString=> { return !!urlPattern.test(urlString); } +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} + function openPostWorker(chan, command, d1, d2, d3, d4, d5) { + consoleLog(`[bot.openPostWorker] Opening ${command} worker`) const worker = new Worker(`./commands/${command}.js`, { workerData: { d1, d2, d3, d4, d5 } }); worker.once('message', (string) => { - console.log(`${command} worker has signalled it has completed, sending output to IRC`); + consoleLog(`[bot.openPostWorker] Got output from ${command}, sending to `+chan); bot.say(chan, string); }); } @@ -56,24 +65,23 @@ async function opt(chan, user, setting, setting2, value, value2) { async function feed(chan, nick, provfeed, n) { var userconf = fs.readFileSync('./config/usersettings.json') var uconfig = JSON.parse(userconf) - if (provfeed === undefined) { + consoleLog('[bot.feed] No feed provided') bot.say(chan, errorMsg+" No feed has been provided.") return; } else if (provfeed === 'me' ) { + consoleLog('[bot.feed] \"me\" was passed, correcting to '+nick) var provfeed = nick; } if (n === undefined) { + consoleLog('[bot.feed] no amount was passed, reverting to default') var n = config.feed.default_amount; } - - console.log(isValidUrl(provfeed)) - console.log(provfeed === nick) - console.log(uconfig[nick].alias !== undefined) - if (isValidUrl(provfeed) === true) { //URL Lookup + consoleLog('[bot.feed] Valid URL requested') openPostWorker(chan, 'feed-preset', provfeed, n); } else if (provfeed === nick) { //User Feed Lookup + consoleLog('[bot.feed] User feed requested') if ( uconfig[nick] !== undefined ) { //If users nickname exists in json file openPostWorker(chan, 'feed-list', provfeed, n, nick); } else { //If it does not @@ -81,15 +89,18 @@ async function feed(chan, nick, provfeed, n) { return; } } else if (uconfig[nick].alias !== undefined ) { //Alias Lookup + consoleLog('[bot.feed] Alias requested') var provfeed = uconfig[nick].alias[provfeed] openPostWorker(chan, "feed-preset", provfeed, n); } else { - bot.say(chan, 'Not sure how you managed to get this error, but good job') + consoleLog('[bot.feed] No valid feed entered') + bot.say(chan, errorMsg+" Your chosen feed or alias is not valid") } } async function twitter(chan, provfeed, n) { if (provfeed === undefined) { + consoleLog('[bot.twitter] No twitter account provided') bot.say(chan, errorMsg+" No account has been provided.") return; } @@ -113,7 +124,8 @@ bot.addListener('message', function(nick, to, text, from) { }); bot.addListener('error', function(message) { - console.log('error: ', message); + consoleLog('[ERROR]' +message) }); -console.log('Starting Mercury'); \ No newline at end of file +console.log('[main] Starting Mercury'); +console.log('[main.irc] Connecting to '+config.irc.server+'/'+config.irc.port+' as '+config.irc.nickname) \ No newline at end of file diff --git a/commands/feed-list.js b/commands/feed-list.js index 7e037e3..412f343 100644 --- a/commands/feed-list.js +++ b/commands/feed-list.js @@ -17,14 +17,23 @@ const timer = ms => new Promise(res => setTimeout(res, ms)) warningMsg = ''+config.colours.brackets+'['+config.colours.warning+'WARNING'+config.colours.brackets+']' errorMsg = ''+config.colours.brackets+'['+config.colours.error+'ERROR'+config.colours.brackets+']' +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} + async function sendUpstream(content) { var output = content.join("\n") + consoleLog('[feed-list] All done.') parentPort.postMessage(output); process.exit() } function errorMessage(error, code, extra) { - console.log(error.code) + consoleLog('[feed-list.errorMessage] '+error.code) if (code == "404") { var error = errorMsg+" 404: " + extra + " not found" } else if (error.code == "ECONNREFUSED") { @@ -55,6 +64,7 @@ async function fetchFeed(feedURL, n, nick) { var n = n/feedsArr.length } for (let i = 0; i < feedsArr.length; i++) { + consoleLog('[feed-list.fetchFeed] Fetching '+feedsArr[i]) try { var newFeed = await parser.parseURL(feedsArr[i]); } catch (e) { @@ -83,7 +93,6 @@ async function fetchFeed(feedURL, n, nick) { if (data.isoDate !== undefined) { var date = moment(data.isoDate) var syncDate = date.tz(config.feed.timezone) - console.log(syncDate.format()) var date = syncDate.format(config.feed.time_format) } else { var date = data.pubDate @@ -97,31 +106,12 @@ async function fetchFeed(feedURL, n, nick) { author = ''+config.colours.author+data.creator+' ' body = ''+config.colours.body+body+' ' link = ''+config.colours.link+data.link+' ' - //console.log(data); - //var string = "15[11" + date + "15] 08" + title + " " + body + " " + data.link; + var string = date+title+body+link; content.push(string) - console.log(content) } - //sendUpstream(content); } sendUpstream(content); - - } - -//var file = editJsonFile('/home/node/app/config/usersettings.json'); -//async function getAllFeeds(nick, n) { -// console.log(nick) -// var feedsArr = uconfig[nick].feeds -// console.log(feedsArr) -// var num = n/feedsArr.length -// for (let i = 0; i < feedsArr.length; i++) { -// fetchFeed(feedsArr[i], num); -// } -// await sendUpstream(content); -//} - -//getAllFeeds(nick, n) fetchFeed(provfeed, n, provfeed); diff --git a/commands/feed-preset.js b/commands/feed-preset.js index 2b8d5eb..947a21f 100644 --- a/commands/feed-preset.js +++ b/commands/feed-preset.js @@ -15,14 +15,23 @@ const timer = ms => new Promise(res => setTimeout(res, ms)) warningMsg = ''+config.colours.brackets+'['+config.colours.warning+'WARNING'+config.colours.brackets+']' errorMsg = ''+config.colours.brackets+'['+config.colours.error+'ERROR'+config.colours.brackets+']' +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} + async function sendUpstream(content) { var output = content.join("\n") + consoleLog('[feed-preset] All done.') parentPort.postMessage(output); process.exit() } function errorMessage(error, code, extra) { - console.log(error.code) + consoleLog('[feed-preset.errorMessage] '+error.code) if (code == "404") { var error = errorMsg+" 404: " + extra + " not found" } else if (error.code == "ECONNREFUSED") { @@ -39,6 +48,7 @@ function errorMessage(error, code, extra) { async function fetchFeed(feedURL, n) { var content = []; + consoleLog('[feed-preset.fetchFeed] Fetching '+feedURL) try { var newFeed = await parser.parseURL(feedURL); } catch (e) { @@ -67,7 +77,6 @@ async function fetchFeed(feedURL, n) { if (data.isoDate !== undefined) { var date = moment(data.isoDate) var syncDate = date.tz(config.feed.timezone) - console.log(syncDate.format()) var date = syncDate.format(config.feed.time_format) } else { var date = data.pubDate diff --git a/commands/help.js b/commands/help.js index 356d224..e67faf4 100644 --- a/commands/help.js +++ b/commands/help.js @@ -8,15 +8,23 @@ const timer = ms => new Promise(res => setTimeout(res, ms)) warningMsg = ''+config.colours.brackets+'['+config.colours.warning+'WARNING'+config.colours.brackets+']' errorMsg = ''+config.colours.brackets+'['+config.colours.error+'ERROR'+config.colours.brackets+']' +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} async function sendUpstream(content) { var output = content.join("\n") + consoleLog('[help] All done.') parentPort.postMessage(output); process.exit() } function errorMessage(error, code, extra) { - console.log(error.code) + consoleLog('[help.errorMessage] '+error.code) if (code == "404") { var error = errorMsg+" 404: " + extra + " not found" } else if (error.code == "ECONNREFUSED") { @@ -37,13 +45,15 @@ async function help(sub) { var sub = "default" } if (sub === "default") { - console.log(config.misc.display_help_logo) if (config.misc.display_help_logo === 'true' ) { + consoleLog('[help.default] Logo enabled, including in output') content.push(''+config.colours.help_logo+' ____ ___ ___ ____________ _________ __') content.push(''+config.colours.help_logo+' / __ `__ \\/ _ \\/ ___/ ___/ / / / ___/ / / /') content.push(''+config.colours.help_logo+' / / / / / / __/ / / /__/ /_/ / / / /_/ / ') content.push(''+config.colours.help_logo+'/_/ /_/ /_/\\___/_/ \\___/\\__,_/_/ \\__, / ') content.push(''+config.colours.help_logo+' /____/ ') + } else if (config.misc.display_help_logo !== 'true') { + consoleLog('[help.default] Logo disabled, not including in output') } content.push('Mercury RSS Client - https://git.supernets.org/hogwart7/mercury') content.push('m!feed [USER/FEED/ALIAS] [ENTRIES] - Return the last x amount of entries from any RSS feed or your own saved feeds (if you have saved feeds)') diff --git a/commands/options.js b/commands/options.js index b84feb6..8e2ae1b 100644 --- a/commands/options.js +++ b/commands/options.js @@ -18,13 +18,22 @@ const timer = ms => new Promise(res => setTimeout(res, ms)) warningMsg = ''+config.colours.brackets+'['+config.colours.warning+'WARNING'+config.colours.brackets+']' errorMsg = ''+config.colours.brackets+'['+config.colours.error+'ERROR'+config.colours.brackets+']' +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} + async function sendUpstream(content) { parentPort.postMessage(content); + consoleLog('[options] All done.') process.exit() } function errorMessage(error, code, extra) { - console.log(error.code) + consoleLog('[options.errorMessage] '+error.code) if (code == "404") { var error = errorMsg+" 404: " + extra + " not found" } else if (error.code == "ECONNREFUSED") { @@ -46,18 +55,18 @@ function errorMessage(error, code, extra) { async function testFeed(feedURL) { try { - console.log('Testing feed') + consoleLog('[options.testFeed] Testing '+feed) var feed = await parser.parseURL(feedURL); } catch (e) { - console.log(e) + consoleLog('[options.testFeed] '+e) errorMessage(e, "INVALID", feedURL); } - console.log(feed) - console.log("Feed is good, saving") + consoleLog("[options.testFeed] Feed is valid, continuing") } async function feed(nick, setting, value) { if (setting === 'add') { + consoleLog('[options.feed] '+nick+' is adding '+value) await testFeed(value); var file = editJsonFile('/home/node/app/config/usersettings.json'); var feedsArr = uconfig[nick].feeds @@ -73,7 +82,7 @@ async function feed(nick, setting, value) { content = []; try { var feedsArr = uconfig[nick].feeds - console.log(feedsArr) + consoleLog('[options.feed] Listing existing feeds for '+nick+': '+feedsArr) content.push("These are your added feeds:") } catch (e) { errorMessage(e, "NOFEEDS", nick); @@ -88,6 +97,7 @@ async function feed(nick, setting, value) { async function alias(setting, value, url, nick) { if (setting === 'add') { + consoleLog('[options.alias] Adding/editing an alias for'+nick+': '+value+' ==> '+url) await testFeed(url); var file = editJsonFile('/home/node/app/config/usersettings.json'); file.set(nick+'.alias.'+value, url); @@ -95,6 +105,7 @@ async function alias(setting, value, url, nick) { sendUpstream('Alias added ('+value+' ==> '+url+')') } if (setting === 'del') { + consoleLog('[options.alias] Removing an alias for '+nick+': '+value+' ==> \"\"') var file = editJsonFile('/home/node/app/config/usersettings.json'); file.set(nick+'.alias.'+value, ""); file.save(); @@ -103,6 +114,7 @@ async function alias(setting, value, url, nick) { if (setting === 'list') { content = []; var obj = uconfig[nick].alias + consoleLog('[options.alias] Listing aliases for '+nick+': '+obj) console.log(obj) for (const [key, val] of Object.entries(obj)) { if (val !== "") { @@ -115,6 +127,7 @@ async function alias(setting, value, url, nick) { } async function get(setting) { + consoleLog('[options.get] Getting value of '+setting) var file = editJsonFile('/home/node/app/config/default.json') console.log(file.get(setting)); sendUpstream(file.get(setting)) diff --git a/commands/twitter.js b/commands/twitter.js index 724a03d..6bfeb8f 100644 --- a/commands/twitter.js +++ b/commands/twitter.js @@ -15,15 +15,23 @@ const timer = ms => new Promise(res => setTimeout(res, ms)) warningMsg = ''+config.colours.brackets+'['+config.colours.warning+'WARNING'+config.colours.brackets+']' errorMsg = ''+config.colours.brackets+'['+config.colours.error+'ERROR'+config.colours.brackets+']' +function consoleLog(log) { + if (config.misc.logging === "true") { + console.log(log) + } else { + return; + } +} async function sendUpstream(content) { var output = content.join("\n") + consoleLog('[twitter] All done.') parentPort.postMessage(output); process.exit() } function errorMessage(error, code, extra) { - console.log(error.code) + consoleLog('[twitter.errorMessage] '+error.code) if (code == "404") { var error = errorMsg+" 404: " + extra + " not found" } else if (error.code == "ECONNREFUSED") { @@ -40,8 +48,10 @@ function errorMessage(error, code, extra) { async function fetchFeed(feedURL, n) { var content = []; + consoleLog('[twitter.fetchFeed] fetching @'+feedURL) if (feedURL.startsWith('@') == true) { + consoleLog('[twitter.fetchFeed] User passed @ in input, removing') var feedURL = feedURL.substring(1,feedURL.length); } var randomNitter = config.twitter.nitter_instances[Math.floor(Math.random() * config.twitter.nitter_instances.length)];