Improved logging
This commit is contained in:
parent
5ec0becbb7
commit
a67aca7363
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +1,4 @@
|
||||
node_modules/
|
||||
auth.json
|
||||
error.log
|
||||
verbose.log
|
||||
45
bot.js
45
bot.js
@ -1,14 +1,18 @@
|
||||
var Discord = require('discord.io');
|
||||
var logger = require('winston');
|
||||
var winston = require('winston');
|
||||
var fs = require('fs');
|
||||
var diceRoller = require('./diceRolling.js');
|
||||
|
||||
|
||||
logger.remove(logger.transports.Console);
|
||||
logger.add(new logger.transports.Console, {
|
||||
colorize: true
|
||||
const logger = winston.createLogger({
|
||||
level: 'debug',
|
||||
format: winston.format.json(),
|
||||
defaultMeta: { service: 'user-service' },
|
||||
transports: [
|
||||
new winston.transports.Console(),
|
||||
new winston.transports.File({ filename: 'error.log', level: 'error' }),
|
||||
new winston.transports.File({ filename: 'verbose.log', level: 'verbose' }),
|
||||
]
|
||||
});
|
||||
logger.level = 'debug';
|
||||
|
||||
const get_auth = () => {
|
||||
if (process.env.DISCORD_TOKEN != undefined) {
|
||||
@ -21,7 +25,6 @@ const get_auth = () => {
|
||||
};
|
||||
|
||||
var auth = get_auth();
|
||||
|
||||
var bot = new Discord.Client({
|
||||
token: auth.token,
|
||||
autorun: true
|
||||
@ -29,8 +32,7 @@ var bot = new Discord.Client({
|
||||
|
||||
bot.on('ready', function (evt) {
|
||||
logger.info('Connected');
|
||||
logger.info('Logged in as: ');
|
||||
logger.info(bot.username + ' - (' + bot.id + ')');
|
||||
logger.info('Logged in as: ' + bot.username + ' - (' + bot.id + ')');
|
||||
});
|
||||
|
||||
bot.on('message', function (user, userID, channelID, message, evt) {
|
||||
@ -46,10 +48,18 @@ bot.on('message', function (user, userID, channelID, message, evt) {
|
||||
sendMessage(channelID, 'Hello, World!');
|
||||
break;
|
||||
case 'roll':
|
||||
if (/([+\-]?\d{0,}d\d{1,})([+\-*x/]\d{1,}){0,}/gi.test(message.substring(6).replace(/\s/g, ''))) {
|
||||
if (message.length < 7) {
|
||||
sendMessage(
|
||||
channelID,
|
||||
message.substring(6) + ': ' + diceRoller.roll(message.substring(6))
|
||||
'Can\'t roll nothing'
|
||||
)
|
||||
break;
|
||||
}
|
||||
if (/([+\-]?\d{0,}d\d{1,})([+\-*x/]\d{1,}){0,}/gi.test(message.substring(6).replace(/\s/g, ''))) {
|
||||
var res = (message.substring(6) + ': ' + diceRoller.roll(message.substring(6))).replace('*', '\\*')
|
||||
sendMessage(
|
||||
channelID,
|
||||
res
|
||||
);
|
||||
} else {
|
||||
sendMessage(channelID, "I don't recognize this: \""
|
||||
@ -61,14 +71,21 @@ bot.on('message', function (user, userID, channelID, message, evt) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
} catch (e) {
|
||||
error(e, channelID);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function error(error, channelID){
|
||||
var res = "Sorry, something went wrong.";
|
||||
|
||||
sendMessage(channelID, res);
|
||||
logger.error(error)
|
||||
}
|
||||
|
||||
function sendMessage(client, message) {
|
||||
if (message.length > 2500) {
|
||||
if (message.length > 2000) {
|
||||
message = 'Response was to long. Sorry';
|
||||
}
|
||||
bot.sendMessage({
|
||||
|
||||
@ -2,80 +2,79 @@
|
||||
module.exports = {
|
||||
roll: function (req) {
|
||||
if (typeof req !== "string") {
|
||||
return "Mollux! You don goofed!"
|
||||
return "<@138725786067664897>! You don goofed!";
|
||||
}
|
||||
|
||||
// Splits request into segments. Example "3d6+3+5d2" => ["3d6", "+3", "+5d2"]
|
||||
var segments = req.replace(/\s/g, '').match(/([+\-]?\d{0,}d\d{1,})|([+\-*/]\d{1,})/gi)
|
||||
var segments = req.replace(/\s/g, '').match(/([+\-]?\d{0,}d\d{1,})|([+\-*/x]\d{1,})/gi);
|
||||
|
||||
var message = '';
|
||||
|
||||
var i = -1
|
||||
var results = []
|
||||
var curResult = 0
|
||||
var curMod = 1
|
||||
var i = -1;
|
||||
var results = [];
|
||||
var curResult = 0;
|
||||
var curMod = 1;
|
||||
segments.forEach(e => {
|
||||
if (e.match(/([+\-]?\d{0,}d\d{1,})/gi)) { // xdy
|
||||
// if not first add previous result and resetting curResult
|
||||
if (i >= 0) {
|
||||
curResult *= curMod
|
||||
results[i] = curResult
|
||||
curResult *= curMod;
|
||||
results[i] = curResult;
|
||||
|
||||
curResult = 0
|
||||
curResult = 0;
|
||||
}
|
||||
i++;
|
||||
|
||||
// Set modifier for dice group
|
||||
curMod = (e.substring(0, 1) === '-') ? -1 : 1
|
||||
curMod = (e.substring(0, 1) === '-') ? -1 : 1;
|
||||
|
||||
// dice[0] = number of rolls, dice[1] = sides of dice rolled
|
||||
var dice = e.replace(/[+\-]?/, '').split(/d/i)
|
||||
var rolls = []
|
||||
var dice = e.replace(/[+\-]?/, '').split(/d/i);
|
||||
var rolls = [];
|
||||
for (var l = 0; l < parseInt(dice[0] === '' ? 1 : dice[0]); l++) {
|
||||
rolls[l] = rollDice(dice[1])
|
||||
curResult += rolls[l]
|
||||
rolls[l] = rollDice(dice[1]);
|
||||
curResult += rolls[l];
|
||||
}
|
||||
|
||||
// add result to message
|
||||
var sign = e.match(/[+\-]/)
|
||||
message += ((sign === null) ? ' ' : ' ' + sign) + '[' + rolls.toString() + ']'
|
||||
} else if (e.match(/([+\-*/]\d{1,})/gi)) { // Modifier
|
||||
var sign = e.match(/[+\-]/);
|
||||
message += ((sign === null) ? ' ' : ' ' + sign) + '[' + rolls.toString() + ']';
|
||||
} else if (e.match(/([+\-*/x]\d{1,})/gi)) { // Modifier
|
||||
switch (e.substring(0, 1)) {
|
||||
case '+':
|
||||
curResult += parseInt(e.substring(1))
|
||||
curResult += parseInt(e.substring(1));
|
||||
break;
|
||||
case '-':
|
||||
curResult -= parseInt(e.substring(1))
|
||||
curResult -= parseInt(e.substring(1));
|
||||
break;
|
||||
case '*':
|
||||
case 'x':
|
||||
curResult *= parseInt(e.substring(1))
|
||||
curResult *= parseInt(e.substring(1));
|
||||
break;
|
||||
case '/':
|
||||
curResult /= parseInt(e.substring(1))
|
||||
curResult /= parseInt(e.substring(1));
|
||||
break;
|
||||
}
|
||||
message += e
|
||||
message += e;
|
||||
}
|
||||
})
|
||||
curResult *= curMod
|
||||
results[i] = curResult
|
||||
curResult *= curMod;
|
||||
results[i] = curResult;
|
||||
|
||||
|
||||
// Adding the sum to the message
|
||||
var sum = 0
|
||||
var sum = 0;
|
||||
if (results.length > 1){
|
||||
sum = results.reduce(getSum)
|
||||
sum = results.reduce(getSum);
|
||||
} else if (results.length === 1){
|
||||
sum = results[0]
|
||||
sum = results[0];
|
||||
}
|
||||
message += ' = ' + sum
|
||||
message += ' = ' + sum;
|
||||
|
||||
console.log(results.toString())
|
||||
console.log(i)
|
||||
console.log(sum)
|
||||
if (message.length > 2000)
|
||||
message = "Response was to long. Sum: " + sum;
|
||||
|
||||
return message
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user