forked from GitHub/dbot
Fix dbot for the new jsbot changes passing channel as an object rather than a string. plus some efficiency changes and extra checks and stuff in admin
This commit is contained in:
parent
09947921d1
commit
c690611cdc
2
jsbot
2
jsbot
@ -1 +1 @@
|
||||
Subproject commit 6723ded150692bd157b43ac287a3913abd1d7a99
|
||||
Subproject commit 87ede262d4d384878941eb17095e4dc0e1b57962
|
@ -12,21 +12,34 @@ var admin = function(dbot) {
|
||||
// Join a channel
|
||||
'join': function(event) {
|
||||
var channel = event.params[1];
|
||||
if(event.allChannels.hasOwnProperty(channel)) {
|
||||
event.reply("I'm already in that channel.");
|
||||
} else {
|
||||
dbot.instance.join(event, channel);
|
||||
event.reply(dbot.t('join', {'channel': channel}));
|
||||
}
|
||||
},
|
||||
|
||||
// Leave a channel
|
||||
'part': function(event) {
|
||||
var channel = event.params[1];
|
||||
if(!event.allChannels.hasOwnProperty(channel)) {
|
||||
event.reply("I'm not in that channel.");
|
||||
} else {
|
||||
event.instance.part(event, channel);
|
||||
event.reply(dbot.t('part', {'channel': channel}));
|
||||
}
|
||||
},
|
||||
|
||||
// Op admin caller in given channel
|
||||
'opme': function(event) {
|
||||
event.channel = event.params[1];
|
||||
dbot.instance.mode(event, '+o ' + event.user);
|
||||
var channel = event.params[1];
|
||||
|
||||
// If given channel isn't valid just op in current one.
|
||||
if(!event.allChannels.hasOwnProperty(channel)) {
|
||||
channel = event.channel.name;
|
||||
}
|
||||
dbot.instance.mode(event, channel, ' +o ' + event.user);
|
||||
},
|
||||
|
||||
// Do a git pull and reload
|
||||
@ -49,7 +62,7 @@ var admin = function(dbot) {
|
||||
'say': function(event) {
|
||||
var channel = event.params[1];
|
||||
if(event.params[1] === "@") {
|
||||
var channel = event.channel;
|
||||
var channel = event.channel.name;
|
||||
}
|
||||
var message = event.params.slice(2).join(' ');
|
||||
dbot.say(event.server, channel, message);
|
||||
|
@ -10,7 +10,7 @@ var link = function(dbot) {
|
||||
|
||||
var commands = {
|
||||
'~title': function(event) {
|
||||
var link = links[event.channel];
|
||||
var link = links[event.channel.name];
|
||||
if(event.params[1] !== undefined) {
|
||||
var urlMatches = event.params[1].match(urlRegex);
|
||||
if(urlMatches !== null) {
|
||||
@ -40,7 +40,7 @@ var link = function(dbot) {
|
||||
'listener': function(event) {
|
||||
var urlMatches = event.message.match(urlRegex);
|
||||
if(urlMatches !== null) {
|
||||
links[event.channel] = urlMatches[0];
|
||||
links[event.channel.name] = urlMatches[0];
|
||||
}
|
||||
},
|
||||
'on': 'PRIVMSG'
|
||||
|
@ -5,8 +5,8 @@ var report = function(dbot) {
|
||||
var nick = event.input[2];
|
||||
var reason = event.input[3];
|
||||
|
||||
if(dbot.instance.connections[event.server].channels.hasOwnProperty(channelName)) {
|
||||
var channel = dbot.instance.connections[event.server].channels[channelName];
|
||||
if(event.allChannels.hasOwnProperty(channelName)) {
|
||||
var channel = event.allChannels[channelName];
|
||||
if(channel.nicks.hasOwnProperty(nick)) {
|
||||
var ops = [];
|
||||
for(var possibOps in channel.nicks) {
|
||||
@ -15,6 +15,11 @@ var report = function(dbot) {
|
||||
}
|
||||
}
|
||||
|
||||
// Does the channel have an admin channel?
|
||||
if(event.allChannels.hasOwnProperty('#' + channelName)) {
|
||||
ops.push('#' + channelName);
|
||||
}
|
||||
|
||||
for(var i=0;i<ops.length;i++) {
|
||||
dbot.say(event.server, ops[i],
|
||||
'Attention: ' + event.user + ' has reported ' +
|
||||
@ -22,21 +27,12 @@ var report = function(dbot) {
|
||||
'given was: "' + reason + '."');
|
||||
}
|
||||
|
||||
if(dbot.instance.connections[event.server].channels.hasOwnProperty('#'+
|
||||
channelName)) {
|
||||
var adminChannel = '#' + channelName;
|
||||
dbot.say(event.server, adminChannel,
|
||||
'Attention: ' + event.user + ' has reported ' +
|
||||
nick + ' in ' + channelName + '. The reason ' +
|
||||
'given was: "' + reason + '."');
|
||||
}
|
||||
|
||||
event.reply('Thank you, ' + nick + ' has been reported the channel administrators.');
|
||||
} else {
|
||||
event.reply('Nick is not in channel.');
|
||||
event.reply('User is not in that channel.');
|
||||
}
|
||||
} else {
|
||||
event.reply('Channel does not exist.');
|
||||
event.reply('I am not in that channel.');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ var spelling = function(dbot) {
|
||||
var last = {};
|
||||
|
||||
var correct = function (event, correction, candidate, output_callback) {
|
||||
var rawCandidates = last[event.channel][candidate].split(' ').allGroupings();
|
||||
var rawCandidates = last[event.channel.name][candidate].split(' ').allGroupings();
|
||||
var candidates = [];
|
||||
for(var i=0;i<rawCandidates.length;i++) {
|
||||
candidates.push(rawCandidates[i].join(' '));
|
||||
@ -20,11 +20,11 @@ var spelling = function(dbot) {
|
||||
|
||||
if(winnerDistance < Math.ceil(winner.length * 1.33)) {
|
||||
if(winner !== correction) {
|
||||
var fix = last[event.channel][candidate].replace(winner, correction);
|
||||
var fix = last[event.channel.name][candidate].replace(winner, correction);
|
||||
if (/^.ACTION/.test(fix)) {
|
||||
fix = fix.replace(/^.ACTION/, '/me');
|
||||
}
|
||||
last[event.channel][candidate] = fix;
|
||||
last[event.channel.name][candidate] = fix;
|
||||
var output = {
|
||||
'fix': fix,
|
||||
'correcter': event.user,
|
||||
@ -51,11 +51,11 @@ var spelling = function(dbot) {
|
||||
event.reply(dbot.t('spelling_other', e));
|
||||
});
|
||||
} else {
|
||||
if(last.hasOwnProperty(event.channel)) {
|
||||
last[event.channel][event.user] = event.message;
|
||||
if(last.hasOwnProperty(event.channel.name)) {
|
||||
last[event.channel.name][event.user] = event.message;
|
||||
} else {
|
||||
last[event.channel] = { };
|
||||
last[event.channel][event.user] = event.message;
|
||||
last[event.channel.name] = { };
|
||||
last[event.channel.name][event.user] = event.message;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -32,8 +32,9 @@ var webInterface = function(dbot) {
|
||||
var channel = '#' + req.params.channel;
|
||||
var connections = dbot.instance.connections;
|
||||
|
||||
if(connections.hasOwnProperty(connection) && connections[connection].channels.hasOwnProperty(channel)) {
|
||||
var nicks = connections[connection].channels[channel].nicks;
|
||||
if(connections.hasOwnProperty(connection) &&
|
||||
connections[connection].channels.hasOwnProperty(channel)) {
|
||||
var nicks = Object.keys(connections[connection].channels[channel].nicks);
|
||||
res.render('users', { 'name': dbot.name, 'connection': connection,
|
||||
'channel': channel, 'nicks': nicks });
|
||||
} else {
|
||||
|
@ -164,6 +164,10 @@ Object.prototype.isArray = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === '[object Array]';
|
||||
};
|
||||
|
||||
Object.prototype.isString = function(obj) {
|
||||
return Object.prototype.toString.call(obj) === '[object String]';
|
||||
};
|
||||
|
||||
Object.prototype.withAll = function(fun) {
|
||||
for(key in this) {
|
||||
if(this.hasOwnProperty(key)){
|
||||
|
Loading…
Reference in New Issue
Block a user