| 
				
			 | 
			
			
				@@ -51,20 +51,20 @@ if not engines_config.sections(): 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				51
			 | 
			
			
				     print '[E] Error no engines found. Edit your engines.cfg' 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				52
			 | 
			
			
				     exit(2) 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				53
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				54
			 | 
			
				
			 | 
			
			
				-for section in engines_config.sections(): 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				
			 | 
			
			
				-    engine_data = engines_config.options(section) 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				
			 | 
			
			
				-    engine = load_module(engines_config.get(section, 'engine')+'.py') 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				
			 | 
			
			
				-    engine.name = section 
			 | 
		
	
		
			
			| 
				
			 | 
			
				54
			 | 
			
			
				+for engine_config_name in engines_config.sections(): 
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+    engine_data = engines_config.options(engine_config_name) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+    engine = load_module(engines_config.get(engine_config_name, 'engine')+'.py') 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+    engine.name = engine_config_name 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				58
			 | 
			
			
				     for param_name in engine_data: 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				59
			 | 
			
			
				         if param_name == 'engine': 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				60
			 | 
			
			
				             continue 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				61
			 | 
			
			
				         if param_name == 'categories': 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				
			 | 
			
			
				-            if engines_config.get(section, param_name) == 'none': 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+            if engines_config.get(engine_config_name, param_name) == 'none': 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				63
			 | 
			
			
				                 engine.categories = [] 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				64
			 | 
			
			
				             else: 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				
			 | 
			
			
				-                engine.categories = map(str.strip, engines_config.get(section, param_name).split(',')) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+                engine.categories = map(str.strip, engines_config.get(engine_config_name, param_name).split(',')) 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				66
			 | 
			
			
				             continue 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				
			 | 
			
			
				-        setattr(engine, param_name, engines_config.get(section, param_name)) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+        setattr(engine, param_name, engines_config.get(engine_config_name, param_name)) 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				68
			 | 
			
			
				     for engine_attr in dir(engine): 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				69
			 | 
			
			
				         if engine_attr.startswith('_'): 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				70
			 | 
			
			
				             continue 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -161,7 +161,12 @@ def search(query, request, selected_engines): 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				161
			 | 
			
			
				     for i,res in enumerate(flat_res): 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				162
			 | 
			
			
				         res['parsed_url'] = urlparse(res['url']) 
			 | 
		
	
		
			
			| 
				163
			 | 
			
				163
			 | 
			
			
				         res['engines'] = [res['engine']] 
			 | 
		
	
		
			
			| 
				164
			 | 
			
				
			 | 
			
			
				-        score = int((flat_len - i)/engines_len)*settings.weights.get(res['engine'], 1)+1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				164
			 | 
			
			
				+        weight = 1.0 
			 | 
		
	
		
			
			| 
				
			 | 
			
				165
			 | 
			
			
				+        if hasattr(engines[res['engine']], 'weight'): 
			 | 
		
	
		
			
			| 
				
			 | 
			
				166
			 | 
			
			
				+            weight = float(engines[res['engine']].weight) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				167
			 | 
			
			
				+        elif res['engine'] in settings.weights: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				168
			 | 
			
			
				+            weight = float(settings.weights[res['engine']]) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				169
			 | 
			
			
				+        score = int((flat_len - i)/engines_len)*weight+1 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				170
			 | 
			
			
				         duplicated = False 
			 | 
		
	
		
			
			| 
				166
			 | 
			
				171
			 | 
			
			
				         for new_res in results: 
			 | 
		
	
		
			
			| 
				167
			 | 
			
				172
			 | 
			
			
				             p1 = res['parsed_url'].path[:-1] if res['parsed_url'].path.endswith('/') else res['parsed_url'].path 
			 |