dbot/modules/spelling.js
2011-10-26 17:24:19 +01:00

44 lines
1.5 KiB
JavaScript

var spelling = function(dbot) {
var dbot = dbot;
var last = {};
return {
'listener': function(data, params) {
var q = data.message.valMatch(/^\*([\d\w\s]*)/, 2);
if(q) {
dbot.say(data.channel, 'got q');
var correction = q[1];
var candidates = last[data.channel][data.user].split(' ');
var winner = false;
var winnerDistance = 99999999; //urgh fix later
for(var i=0;i<candidates.length;i++) {
var distance = String.prototype.distance(correction, candidates[i]);
if(distance < winner) {
winner = candidates[i];
winnerDistance = distance;
}
}
console.log(winner + ' ' + winnerDistance);
if(winnerDistance < 3) {
var fix = data.message.replace(winner, correction);
dbot.say(data.channel, data.user + ':' + fix);
}
} else {
if(last.hasOwnProperty(data.channel)) {
last[data.channel][data.user] = data.message;
} else {
last[data.channel] = { };
last[data.channel][data.user] = data.message;
}
}
},
'on': 'PRIVMSG'
}
}
exports.fetch = function(dbot) {
return spelling(dbot);
};