| 
				
			 | 
			
			
				@@ -382,9 +382,19 @@ class Search(object): 
			 | 
		
	
		
			
			| 
				382
			 | 
			
				382
			 | 
			
			
				         # otherwise, using defined categories to 
			 | 
		
	
		
			
			| 
				383
			 | 
			
				383
			 | 
			
			
				         # calculate which engines should be used 
			 | 
		
	
		
			
			| 
				384
			 | 
			
				384
			 | 
			
			
				         else: 
			 | 
		
	
		
			
			| 
				385
			 | 
			
				
			 | 
			
			
				-            # set used categories 
			 | 
		
	
		
			
			| 
				
			 | 
			
				385
			 | 
			
			
				+            # set categories/engines 
			 | 
		
	
		
			
			| 
				
			 | 
			
				386
			 | 
			
			
				+            load_default_categories = True 
			 | 
		
	
		
			
			| 
				386
			 | 
			
				387
			 | 
			
			
				             for pd_name, pd in self.request_data.items(): 
			 | 
		
	
		
			
			| 
				387
			 | 
			
				
			 | 
			
			
				-                if pd_name.startswith('category_'): 
			 | 
		
	
		
			
			| 
				
			 | 
			
				388
			 | 
			
			
				+                if pd_name == 'categories': 
			 | 
		
	
		
			
			| 
				
			 | 
			
				389
			 | 
			
			
				+                    self.categories.extend(categ for categ in pd.split(',') if categ in categories) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				390
			 | 
			
			
				+                elif pd_name == 'engines': 
			 | 
		
	
		
			
			| 
				
			 | 
			
				391
			 | 
			
			
				+                    pd_engines = [{'category': engines[engine].categories[0], 
			 | 
		
	
		
			
			| 
				
			 | 
			
				392
			 | 
			
			
				+                                   'name': engine} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				393
			 | 
			
			
				+                                  for engine in pd.split(',') if engine in engines] 
			 | 
		
	
		
			
			| 
				
			 | 
			
				394
			 | 
			
			
				+                    if pd_engines: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				395
			 | 
			
			
				+                        self.engines.extend(pd_engines) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				396
			 | 
			
			
				+                        load_default_categories = False 
			 | 
		
	
		
			
			| 
				
			 | 
			
				397
			 | 
			
			
				+                elif pd_name.startswith('category_'): 
			 | 
		
	
		
			
			| 
				388
			 | 
			
				398
			 | 
			
			
				                     category = pd_name[9:] 
			 | 
		
	
		
			
			| 
				389
			 | 
			
				399
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				390
			 | 
			
				400
			 | 
			
			
				                     # if category is not found in list, skip 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -398,6 +408,9 @@ class Search(object): 
			 | 
		
	
		
			
			| 
				398
			 | 
			
				408
			 | 
			
			
				                         # remove category from list if property is set to 'off' 
			 | 
		
	
		
			
			| 
				399
			 | 
			
				409
			 | 
			
			
				                         self.categories.remove(category) 
			 | 
		
	
		
			
			| 
				400
			 | 
			
				410
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				411
			 | 
			
			
				+            if not load_default_categories: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				412
			 | 
			
			
				+                return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				413
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				401
			 | 
			
				414
			 | 
			
			
				             # if no category is specified for this search, 
			 | 
		
	
		
			
			| 
				402
			 | 
			
				415
			 | 
			
			
				             # using user-defined default-configuration which 
			 | 
		
	
		
			
			| 
				403
			 | 
			
				416
			 | 
			
			
				             # (is stored in cookie) 
			 |