Merge pull request #468 from calzoneman/chat-antiflood-limit

Update chat antiflood limit
This commit is contained in:
Calvin Montgomery 2015-04-28 13:05:33 -05:00
commit 7902f1c3c6
2 changed files with 18 additions and 8 deletions

View File

@ -22,10 +22,10 @@ const TYPE_PM = {
meta: "object,optional" meta: "object,optional"
}; };
const DEFAULT_ANTIFLOOD = { // Limit to 10 messages/sec
burst: 4, const MIN_ANTIFLOOD = {
sustained: 1, burst: 20,
cooldown: 4 sustained: 10
}; };
function ChatModule(channel) { function ChatModule(channel) {
@ -198,8 +198,8 @@ ChatModule.prototype.handlePm = function (user, data) {
return; return;
} }
if (user.chatLimiter.throttle(DEFAULT_ANTIFLOOD)) { if (user.chatLimiter.throttle(MIN_ANTIFLOOD)) {
user.socket.emit("cooldown", 1000 / DEFAULT_ANTIFLOOD.sustained); user.socket.emit("cooldown", 1000 / MIN_ANTIFLOOD.sustained);
return; return;
} }
@ -255,9 +255,10 @@ ChatModule.prototype.processChatMsg = function (user, data) {
} }
var msgobj = this.formatMessage(user.getName(), data); var msgobj = this.formatMessage(user.getName(), data);
var antiflood = DEFAULT_ANTIFLOOD; var antiflood = MIN_ANTIFLOOD;
if (this.channel.modules.options && if (this.channel.modules.options &&
this.channel.modules.options.get("chat_antiflood")) { this.channel.modules.options.get("chat_antiflood") &&
user.account.effectiveRank < 2) {
antiflood = this.channel.modules.options.get("chat_antiflood_params"); antiflood = this.channel.modules.options.get("chat_antiflood_params");
} }

View File

@ -39,6 +39,11 @@ OptionsModule.prototype.load = function (data) {
} }
} }
} }
this.opts.chat_antiflood_params.burst = Math.min(20,
this.opts.chat_antiflood_params.burst);
this.opts.chat_antiflood_params.sustained = Math.min(10,
this.opts.chat_antiflood_params.sustained);
}; };
OptionsModule.prototype.save = function (data) { OptionsModule.prototype.save = function (data) {
@ -216,11 +221,15 @@ OptionsModule.prototype.handleSetOptions = function (user, data) {
b = 1; b = 1;
} }
b = Math.min(20, b);
var s = parseFloat(data.chat_antiflood_params.sustained); var s = parseFloat(data.chat_antiflood_params.sustained);
if (isNaN(s) || s <= 0) { if (isNaN(s) || s <= 0) {
s = 1; s = 1;
} }
s = Math.min(10, s);
var c = b / s; var c = b / s;
this.opts.chat_antiflood_params = { this.opts.chat_antiflood_params = {
burst: b, burst: b,