| 
				
			 | 
			
			
				@@ -159,15 +159,27 @@ def search(query, request, selected_categories): 
			 | 
		
	
		
			
			| 
				159
			 | 
			
				159
			 | 
			
			
				     return sorted(results, key=itemgetter('score'), reverse=True) 
			 | 
		
	
		
			
			| 
				160
			 | 
			
				160
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				161
			 | 
			
				161
			 | 
			
			
				 def get_engines_stats(): 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				
			 | 
			
			
				-    stats = {} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				162
			 | 
			
			
				+    pageloads = [] 
			 | 
		
	
		
			
			| 
				
			 | 
			
				163
			 | 
			
			
				+    results = [] 
			 | 
		
	
		
			
			| 
				163
			 | 
			
				164
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				165
			 | 
			
			
				+    max_pageload = max_results = 0 
			 | 
		
	
		
			
			| 
				164
			 | 
			
				166
			 | 
			
			
				     for engine in engines.values(): 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				167
			 | 
			
			
				         if engine.stats['search_count'] == 0: 
			 | 
		
	
		
			
			| 
				166
			 | 
			
				168
			 | 
			
			
				             continue 
			 | 
		
	
		
			
			| 
				167
			 | 
			
				169
			 | 
			
			
				         results_num = engine.stats['result_count']/float(engine.stats['search_count']) 
			 | 
		
	
		
			
			| 
				168
			 | 
			
				170
			 | 
			
			
				         load_times  = engine.stats['page_load_time']/float(engine.stats['search_count']) 
			 | 
		
	
		
			
			| 
				169
			 | 
			
				
			 | 
			
			
				-        stats[engine.name] = {'Average number of results': results_num 
			 | 
		
	
		
			
			| 
				170
			 | 
			
				
			 | 
			
			
				-                             ,'Average page load time': load_times 
			 | 
		
	
		
			
			| 
				171
			 | 
			
				
			 | 
			
			
				-                             } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				171
			 | 
			
			
				+        max_results = max(results_num, max_results) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				172
			 | 
			
			
				+        max_pageload = max(load_times, max_pageload) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				173
			 | 
			
			
				+        pageloads.append({'avg': load_times, 'name': engine.name}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				174
			 | 
			
			
				+        results.append({'avg': results_num, 'name': engine.name}) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				175
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				176
			 | 
			
			
				+    for engine in pageloads: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				177
			 | 
			
			
				+        engine['percentage'] = int(engine['avg']/max_pageload*100) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				178
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				179
			 | 
			
			
				+    for engine in results: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				180
			 | 
			
			
				+        engine['percentage'] = int(engine['avg']/max_results*100) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				181
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				172
			 | 
			
				182
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				173
			 | 
			
				
			 | 
			
			
				-    return stats 
			 | 
		
	
		
			
			| 
				
			 | 
			
				183
			 | 
			
			
				+    return [('Page loads', sorted(pageloads, key=itemgetter('avg'), reverse=True)) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				184
			 | 
			
			
				+           ,('Number of results', sorted(results, key=itemgetter('avg'), reverse=True)) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				185
			 | 
			
			
				+           ] 
			 |