forked from GitHub/dbot
		
	merging afals spelling fixed
This commit is contained in:
		
						commit
						b3c655a46b
					
				| @ -1,55 +1,49 @@ | ||||
| var spelling = function(dbot) { | ||||
|     var dbot = dbot; | ||||
|     var last = {}; | ||||
| 
 | ||||
|     var correct = function (data, correction, candidate, output_callback) { | ||||
|         var candidates = last[data.channel][candidate].split(' '); | ||||
|         var winner = false; | ||||
|         var winnerDistance = Infinity; | ||||
| 
 | ||||
|         for(var i=0;i<candidates.length;i++) { | ||||
|             var distance = String.prototype.distance(correction, candidates[i]); | ||||
|             if(distance < winnerDistance) { | ||||
|                 winner = candidates[i]; | ||||
|                 winnerDistance = distance; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         if(winnerDistance < 3) { | ||||
|             if(winner !== correction) { | ||||
|                 var fix = last[data.channel][candidate].replace(winner, correction); | ||||
|                 if (/^.ACTION/.test(fix)) { | ||||
|                     fix = fix.replace(/^.ACTION/, '/me'); | ||||
|                 } | ||||
|                 last[data.channel][candidate] = fix; | ||||
|                 var output = { | ||||
|                     'fix': fix, | ||||
|                     'correcter': data.user, | ||||
|                     'candidate': candidate | ||||
|                 }; | ||||
|                 output_callback(output); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     return { | ||||
|         'listener': function(data, params) { | ||||
|             var q = data.message.valMatch(/^\*\*?([\d\w\s]*)$/, 2); | ||||
|             var otherQ = data.message.valMatch(/^([\d\w\s]*): \*\*?([\d\w\s]*)$/, 3); | ||||
|             if(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 < winnerDistance) { | ||||
|                         winner = candidates[i]; | ||||
|                         winnerDistance = distance; | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 if(winnerDistance < 7) { | ||||
|                     if(winner !== correction) { | ||||
|                         var fix = last[data.channel][data.user].replace(winner, correction);  | ||||
|                         last[data.channel][data.user] = fix; | ||||
|                         dbot.say(data.channel, data.user + ' meant: ' + fix); | ||||
|                     } | ||||
|                 } | ||||
|                 correct(data, q[1], data.user, function (e) { | ||||
|                     dbot.say(data.channel, e.correcter + ' meant: ' + e.fix); | ||||
|                 }); | ||||
|             } else if(otherQ) { | ||||
|                 if(last[data.channel].hasOwnProperty([otherQ[1]])) { | ||||
|                     var correction = otherQ[2]; | ||||
|                     var candidates = last[data.channel][otherQ[1]].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 < winnerDistance) { | ||||
|                             winner = candidates[i]; | ||||
|                             winnerDistance = distance; | ||||
|                         } | ||||
|                     } | ||||
| 
 | ||||
|                     if(winnerDistance < 3) { | ||||
|                         if(winner !== correction) { | ||||
|                             var fix = last[data.channel][otherQ[1]].replace(winner, correction);  | ||||
|                             last[data.channel][otherQ[1]] = fix; | ||||
|                             dbot.say(data.channel, data.user + ' thinks ' + otherQ[1] + ' meant: ' + fix); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|                 correct(data, otherQ[2], otherQ[1], function (e) { | ||||
|                     dbot.say(data.channel, e.correcter + ' thinks ' + e.candidate + ' meant: ' + e.fix); | ||||
|                 }); | ||||
|             } else { | ||||
|                  if(last.hasOwnProperty(data.channel)) { | ||||
|                    last[data.channel][data.user] = data.message;  | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Luke Slater
						Luke Slater