forked from GitHub/dbot
		
	Refactored ~kickstats so there's no code repitition.
This commit is contained in:
		
							parent
							
								
									e79854638a
								
							
						
					
					
						commit
						c798e42152
					
				| @ -1,12 +1,16 @@ | ||||
| // Commands that probably belong elsewhere.
 | ||||
| var userCommands = function(dbot) { | ||||
|     var dbot = dbot; | ||||
| 
 | ||||
|     var commands = { | ||||
|         // Give a karma comment for a given user
 | ||||
|         '~kc': function(data, params) { | ||||
|             dbot.say('aisbot', '.karma ' + data.message.split(' ')[1]); | ||||
|             dbot.waitingForKarma = data.channel; | ||||
|         }, | ||||
| 
 | ||||
|         // Give the number of times a given user has been kicked and has kicked
 | ||||
|         // other people.
 | ||||
|         '~kickcount': function(data, params) { | ||||
|             if(!dbot.db.kicks.hasOwnProperty(params[1])) { | ||||
|                 var kicks = '0'; | ||||
| @ -20,47 +24,33 @@ var userCommands = function(dbot) { | ||||
|                 var kicked = dbot.db.kickers[params[1]]; | ||||
|             } | ||||
| 
 | ||||
| 
 | ||||
|             dbot.say(data.channel, params[1] + ' has been kicked ' + kicks + ' times and has kicked people ' + kicked + ' times.'); | ||||
|         }, | ||||
| 
 | ||||
|         // Output a list of the people who have been kicked the most and those
 | ||||
|         // who have kicked other people the most.
 | ||||
|         '~kickstats': function(data, params) { | ||||
|             var kickArr = []; | ||||
|             for(var kickUser in dbot.db.kicks) { | ||||
|                 if(dbot.db.kicks.hasOwnProperty(kickUser)) { | ||||
|                     kickArr.push([kickUser, dbot.db.kicks[kickUser]]); | ||||
|             var orderedKickLeague = function(list, topWhat) { | ||||
|                 var kickArr = []; | ||||
|                 for(var kickUser in list) { | ||||
|                     if(list.hasOwnProperty(kickUser)) { | ||||
|                         kickArr.push([kickUser, list[kickUser]]); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             var orderedKicks = kickArr.sort(function(a, b) { return a[1] - b[1]; }); | ||||
|             var topKicks = kickArr.slice(kickArr.length - 10).reverse(); | ||||
|             var kickString = "Top Kicked: "; | ||||
|                 kickArr = kickArr.sort(function(a, b) { return a[1] - b[1]; }); | ||||
|                 kickArr = kickArr.slice(kickArr.length - 10).reverse(); | ||||
|                 var kickString = "Top " + topWhat + ": "; | ||||
| 
 | ||||
|             for(var i=0;i<topKicks.length;i++) { | ||||
|                 kickString += topKicks[i][0] + " (" + topKicks[i][1] + "), "; | ||||
|             } | ||||
|             kickString = kickString.slice(0, -2); | ||||
| 
 | ||||
|             dbot.say(data.channel, kickString); | ||||
| 
 | ||||
|             // code repetition bad
 | ||||
|             var kickArr = []; | ||||
|             for(var kickUser in dbot.db.kickers) { | ||||
|                 if(dbot.db.kickers.hasOwnProperty(kickUser)) { | ||||
|                     kickArr.push([kickUser, dbot.db.kickers[kickUser]]); | ||||
|                 for(var i=0;i<topKicks.length;i++) { | ||||
|                     kickString += topKicks[i][0] + " (" + topKicks[i][1] + "), "; | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             var orderedKicks = kickArr.sort(function(a, b) { return a[1] - b[1]; }); | ||||
|             var topKicks = kickArr.slice(kickArr.length - 10).reverse(); | ||||
|             var kickString = "Top Kickers: "; | ||||
|                 return kickString.slice(0, -2); | ||||
|             }; | ||||
| 
 | ||||
|             for(var i=0;i<topKicks.length;i++) { | ||||
|                 kickString += topKicks[i][0] + " (" + topKicks[i][1] + "), "; | ||||
|             } | ||||
|             kickString = kickString.slice(0, -2); | ||||
| 
 | ||||
|             dbot.say(data.channel, kickString); | ||||
|             dbot.say(data.channel, orderedKickLeague(dbot.db.kicks, 'Kicked')); | ||||
|             dbot.say(data.channel, orderedKickLeague(dbot.db.kickers, 'Kickers')); | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Luke Slater
						Luke Slater