mirror of
https://github.com/reality/dbot.git
synced 2025-02-17 14:01:04 +01:00
two space indent for log and karma, karma logging
This commit is contained in:
parent
ef86954025
commit
a57b123fed
@ -5,147 +5,150 @@
|
|||||||
var _ = require('underscore')._;
|
var _ = require('underscore')._;
|
||||||
|
|
||||||
var karma = function(dbot) {
|
var karma = function(dbot) {
|
||||||
this.lastKarma = {};
|
this.lastKarma = {};
|
||||||
|
|
||||||
this.internalAPI = {
|
this.internalAPI = {
|
||||||
'getKarma': function(item, callback) {
|
'getKarma': function(item, callback) {
|
||||||
this.db.read('karma', item.toLowerCase(), callback);
|
this.db.read('karma', item.toLowerCase(), callback);
|
||||||
}.bind(this),
|
}.bind(this),
|
||||||
|
|
||||||
'setKarma': function(item, value, callback) {
|
'setKarma': function(item, value, callback) {
|
||||||
this.db.save('karma', item.toLowerCase(), {
|
this.db.save('karma', item.toLowerCase(), {
|
||||||
'item': item.toLowerCase(),
|
'item': item.toLowerCase(),
|
||||||
'karma': value
|
'karma': value
|
||||||
}, callback);
|
}, callback);
|
||||||
}.bind(this)
|
}.bind(this)
|
||||||
};
|
};
|
||||||
|
|
||||||
this.commands = {
|
this.commands = {
|
||||||
'karma': function(event) {
|
'karma': function(event) {
|
||||||
var item = event.params[1] || event.user;
|
var item = event.params[1] || event.user;
|
||||||
this.internalAPI.getKarma(item, function(err, karma) {
|
this.internalAPI.getKarma(item, function(err, karma) {
|
||||||
if(!err && karma) {
|
if(!err && karma) {
|
||||||
karma = karma.karma;
|
karma = karma.karma;
|
||||||
} else {
|
} else {
|
||||||
karma = 0;
|
karma = 0;
|
||||||
}
|
|
||||||
|
|
||||||
event.reply(dbot.t('karma', {
|
|
||||||
'item': item,
|
|
||||||
'karma': karma
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'setkarma': function(event) {
|
|
||||||
var item = event.params[1],
|
|
||||||
value = parseInt(event.params[2]);
|
|
||||||
|
|
||||||
this.internalAPI.setKarma(item, value, function(err, karma) {
|
|
||||||
event.reply(dbot.t('newkarma', {
|
|
||||||
'item': item,
|
|
||||||
'value': value
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'unkarmaiest': function(event) {
|
|
||||||
var karmas = {};
|
|
||||||
this.db.scan('karma', function(karma) {
|
|
||||||
if(karma && !_.isUndefined(karma.item)) {
|
|
||||||
karmas[karma.item] = karma.karma;
|
|
||||||
}
|
|
||||||
}.bind(this), function(err) {
|
|
||||||
var qSizes = _.chain(karmas)
|
|
||||||
.pairs()
|
|
||||||
.sortBy(function(category) { return category[1]; })
|
|
||||||
.first(10)
|
|
||||||
.value();
|
|
||||||
|
|
||||||
var qString = 'Unkarmaiest: ';
|
|
||||||
for(var i=0;i<qSizes.length;i++) {
|
|
||||||
qString += qSizes[i][0] + " (" + qSizes[i][1] + "), ";
|
|
||||||
}
|
|
||||||
|
|
||||||
event.reply(qString.slice(0, -2));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
'karmaiest': function(event) {
|
|
||||||
var karmas = {};
|
|
||||||
this.db.scan('karma', function(karma) {
|
|
||||||
if(karma && !_.isUndefined(karma.item)) {
|
|
||||||
karmas[karma.item] = karma.karma;
|
|
||||||
}
|
|
||||||
}.bind(this), function(err) {
|
|
||||||
var qSizes = _.chain(karmas)
|
|
||||||
.pairs()
|
|
||||||
.sortBy(function(category) { return category[1]; })
|
|
||||||
.reverse()
|
|
||||||
.first(10)
|
|
||||||
.value();
|
|
||||||
|
|
||||||
var qString = 'Karmaiest: ';
|
|
||||||
for(var i=0;i<qSizes.length;i++) {
|
|
||||||
qString += qSizes[i][0] + " (" + qSizes[i][1] + "), ";
|
|
||||||
}
|
|
||||||
|
|
||||||
event.reply(qString.slice(0, -2));
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
this.commands.setkarma.access = 'admin';
|
|
||||||
|
|
||||||
this.listener = function(event) {
|
event.reply(dbot.t('karma', {
|
||||||
var match = event.message.match(/^(.+)(\+\+|\-\-)$/);
|
'item': item,
|
||||||
if(event.user !== dbot.config.name && match && match[1].length < 25) {
|
'karma': karma
|
||||||
match[1] = match[1].replace(/(\+|\-)/g,'').replace(/:/g,'').trim();
|
}));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
if(_.has(this.lastKarma, event.rUser.id) && this.lastKarma[event.rUser.id] + 5000 > Date.now()) {
|
'setkarma': function(event) {
|
||||||
return event.reply('Try again in a few seconds : - )');
|
var item = event.params[1],
|
||||||
} else if(event.rUser.currentNick.toLowerCase() === match[1].toLowerCase() || event.rUser.primaryNick.toLowerCase() === match[1].toLowerCase()) {
|
value = parseInt(event.params[2]);
|
||||||
return event.reply('Stop playing with yourself : - )');
|
|
||||||
} else if(event.channel == event.user) {
|
|
||||||
return event.reply('Don\'t be a Secretive Sally : - )');
|
|
||||||
}
|
|
||||||
|
|
||||||
this.internalAPI.getKarma(match[1], function(err, karma) {
|
this.internalAPI.setKarma(item, value, function(err, karma) {
|
||||||
if(!karma) {
|
event.reply(dbot.t('newkarma', {
|
||||||
karma = 0;
|
'item': item,
|
||||||
} else {
|
'value': value
|
||||||
karma = karma.karma;
|
}));
|
||||||
}
|
});
|
||||||
|
},
|
||||||
|
|
||||||
if(match[2] === '--') {
|
'unkarmaiest': function(event) {
|
||||||
karma -= 1;
|
var karmas = {};
|
||||||
} else {
|
this.db.scan('karma', function(karma) {
|
||||||
karma += 1;
|
if(karma && !_.isUndefined(karma.item)) {
|
||||||
}
|
karmas[karma.item] = karma.karma;
|
||||||
|
|
||||||
this.internalAPI.setKarma(match[1], karma, function(err, karma) {
|
|
||||||
this.lastKarma[event.rUser.id] = Date.now();
|
|
||||||
var pre;
|
|
||||||
if(karma.karma > 0) {
|
|
||||||
pre = '[\u00039karma\u000f]';
|
|
||||||
karma.karma = '\u00039 '+karma.karma+'\u000f';
|
|
||||||
} else if(karma.karma < 0) {
|
|
||||||
pre = '[\u00034karma\u000f]';
|
|
||||||
karma.karma = '\u00034 '+karma.karma+'\u000f';
|
|
||||||
} else {
|
|
||||||
pre = '[\u00036karma\u000f]';
|
|
||||||
karma.karma = '\u00036 '+karma.karma+'\u000f';
|
|
||||||
}
|
|
||||||
event.reply(pre + ' ' + dbot.t('newkarma', {
|
|
||||||
'item': match[1],
|
|
||||||
'value': karma.karma
|
|
||||||
}));
|
|
||||||
}.bind(this));
|
|
||||||
}.bind(this));
|
|
||||||
}
|
}
|
||||||
}.bind(this);
|
}.bind(this), function(err) {
|
||||||
this.on = 'PRIVMSG';
|
var qSizes = _.chain(karmas)
|
||||||
|
.pairs()
|
||||||
|
.sortBy(function(category) { return category[1]; })
|
||||||
|
.first(10)
|
||||||
|
.value();
|
||||||
|
|
||||||
|
var qString = 'Unkarmaiest: ';
|
||||||
|
for(var i=0;i<qSizes.length;i++) {
|
||||||
|
qString += qSizes[i][0] + " (" + qSizes[i][1] + "), ";
|
||||||
|
}
|
||||||
|
|
||||||
|
event.reply(qString.slice(0, -2));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
'karmaiest': function(event) {
|
||||||
|
var karmas = {};
|
||||||
|
this.db.scan('karma', function(karma) {
|
||||||
|
if(karma && !_.isUndefined(karma.item)) {
|
||||||
|
karmas[karma.item] = karma.karma;
|
||||||
|
}
|
||||||
|
}.bind(this), function(err) {
|
||||||
|
var qSizes = _.chain(karmas)
|
||||||
|
.pairs()
|
||||||
|
.sortBy(function(category) { return category[1]; })
|
||||||
|
.reverse()
|
||||||
|
.first(10)
|
||||||
|
.value();
|
||||||
|
|
||||||
|
var qString = 'Karmaiest: ';
|
||||||
|
for(var i=0;i<qSizes.length;i++) {
|
||||||
|
qString += qSizes[i][0] + " (" + qSizes[i][1] + "), ";
|
||||||
|
}
|
||||||
|
|
||||||
|
event.reply(qString.slice(0, -2));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.commands.setkarma.access = 'admin';
|
||||||
|
|
||||||
|
this.listener = function(event) {
|
||||||
|
var match = event.message.match(/^(.+)(\+\+|\-\-)$/);
|
||||||
|
if(event.user !== dbot.config.name && match && match[1].length < 25) {
|
||||||
|
match[1] = match[1].replace(/(\+|\-)/g,'').replace(/:/g,'').trim();
|
||||||
|
|
||||||
|
if(_.has(this.lastKarma, event.rUser.id) && this.lastKarma[event.rUser.id] + 5000 > Date.now()) {
|
||||||
|
return event.reply('Try again in a few seconds : - )');
|
||||||
|
} else if(event.rUser.currentNick.toLowerCase() === match[1].toLowerCase() || event.rUser.primaryNick.toLowerCase() === match[1].toLowerCase()) {
|
||||||
|
return event.reply('Stop playing with yourself : - )');
|
||||||
|
} else if(event.channel == event.user) {
|
||||||
|
return event.reply('Don\'t be a Secretive Sally : - )');
|
||||||
|
}
|
||||||
|
|
||||||
|
this.internalAPI.getKarma(match[1], function(err, karma) {
|
||||||
|
if(!karma) {
|
||||||
|
karma = 0;
|
||||||
|
} else {
|
||||||
|
karma = karma.karma;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(match[2] === '--') {
|
||||||
|
karma -= 1;
|
||||||
|
} else {
|
||||||
|
karma += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.internalAPI.setKarma(match[1], karma, function(err, karma) {
|
||||||
|
this.lastKarma[event.rUser.id] = Date.now();
|
||||||
|
var pre;
|
||||||
|
if(karma.karma > 0) {
|
||||||
|
pre = '[\u00039karma\u000f]';
|
||||||
|
karma.karma = '\u00039 '+karma.karma+'\u000f';
|
||||||
|
} else if(karma.karma < 0) {
|
||||||
|
pre = '[\u00034karma\u000f]';
|
||||||
|
karma.karma = '\u00034 '+karma.karma+'\u000f';
|
||||||
|
} else {
|
||||||
|
pre = '[\u00036karma\u000f]';
|
||||||
|
karma.karma = '\u00036 '+karma.karma+'\u000f';
|
||||||
|
}
|
||||||
|
event.reply(pre + ' ' + dbot.t('newkarma', {
|
||||||
|
'item': match[1],
|
||||||
|
'value': karma.karma
|
||||||
|
}));
|
||||||
|
if(_.has(dbot.modules, 'log')) {
|
||||||
|
dbot.api.log.log(event.server, event.rUser.primaryNick, event.message);
|
||||||
|
}
|
||||||
|
}.bind(this));
|
||||||
|
}.bind(this));
|
||||||
|
}
|
||||||
|
}.bind(this);
|
||||||
|
this.on = 'PRIVMSG';
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetch = function(dbot) {
|
exports.fetch = function(dbot) {
|
||||||
return new karma(dbot);
|
return new karma(dbot);
|
||||||
};
|
};
|
||||||
|
@ -3,70 +3,70 @@
|
|||||||
* Description: Log commands to a channel.
|
* Description: Log commands to a channel.
|
||||||
*/
|
*/
|
||||||
var _ = require('underscore')._,
|
var _ = require('underscore')._,
|
||||||
process = require('process');
|
process = require('process');
|
||||||
|
|
||||||
var log = function(dbot) {
|
var log = function(dbot) {
|
||||||
this.ignoredCommands = [];
|
this.ignoredCommands = [];
|
||||||
|
|
||||||
this.api = {
|
this.api = {
|
||||||
'log': function(server, user, message) {
|
'log': function(server, user, message) {
|
||||||
var logChannel = this.config.logChannel[server];
|
var logChannel = this.config.logChannel[server];
|
||||||
dbot.say(server, logChannel, dbot.t('log_message', {
|
dbot.say(server, logChannel, dbot.t('log_message', {
|
||||||
'time': new Date().toUTCString(),
|
'time': new Date().toUTCString(),
|
||||||
'command': message,
|
'command': message,
|
||||||
"channel": 'nochan',
|
"channel": 'nochan',
|
||||||
'user': user
|
'user': user
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
'logError': function(server, err) {
|
'logError': function(server, err) {
|
||||||
var stack = err.stack.split('\n').slice(1, dbot.config.debugLevel + 1),
|
var stack = err.stack.split('\n').slice(1, dbot.config.debugLevel + 1),
|
||||||
logChannel = this.config.logChannel[server],
|
logChannel = this.config.logChannel[server],
|
||||||
time = new Date().toUTCString();
|
time = new Date().toUTCString();
|
||||||
|
|
||||||
dbot.say(server, logChannel, dbot.t('error_message', {
|
dbot.say(server, logChannel, dbot.t('error_message', {
|
||||||
'time': time,
|
'time': time,
|
||||||
'error': 'Message: ' + err
|
'error': 'Message: ' + err
|
||||||
}));
|
}));
|
||||||
|
|
||||||
_.each(stack, function(stackLine, index) {
|
_.each(stack, function(stackLine, index) {
|
||||||
dbot.say(server, logChannel, dbot.t('error_message', {
|
dbot.say(server, logChannel, dbot.t('error_message', {
|
||||||
'time': time,
|
'time': time,
|
||||||
'error': 'Stack[' + index + ']: ' +
|
'error': 'Stack[' + index + ']: ' +
|
||||||
stackLine.trim()
|
stackLine.trim()
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
'ignoreCommand': function(commandName) {
|
'ignoreCommand': function(commandName) {
|
||||||
this.ignoredCommands.push(commandName);
|
this.ignoredCommands.push(commandName);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.onLoad = function() {
|
this.onLoad = function() {
|
||||||
dbot.api.event.addHook('command', function(event) {
|
dbot.api.event.addHook('command', function(event) {
|
||||||
var logChannel = this.config.logChannel[event.server];
|
var logChannel = this.config.logChannel[event.server];
|
||||||
channel = event.channel.name || 'PM';
|
channel = event.channel.name || 'PM';
|
||||||
if(logChannel && !_.include(this.ignoredCommands, event.message.split(' ')[0])) {
|
if(logChannel && !_.include(this.ignoredCommands, event.message.split(' ')[0])) {
|
||||||
dbot.say(event.server, logChannel, dbot.t('log_message', {
|
dbot.say(event.server, logChannel, dbot.t('log_message', {
|
||||||
'time': new Date().toUTCString(),
|
'time': new Date().toUTCString(),
|
||||||
'channel': channel,
|
'channel': channel,
|
||||||
'command': event.message,
|
'command': event.message,
|
||||||
'user': event.user
|
'user': event.user
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
|
||||||
process.on('uncaughtException', function(err) {
|
process.on('uncaughtException', function(err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
_.each(this.config.logChannel, function(chan, server) {
|
_.each(this.config.logChannel, function(chan, server) {
|
||||||
this.api.logError(server, err);
|
this.api.logError(server, err);
|
||||||
}, this);
|
}, this);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
}.bind(this);
|
}.bind(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.fetch = function(dbot) {
|
exports.fetch = function(dbot) {
|
||||||
return new log(dbot);
|
return new log(dbot);
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user