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