forked from zaclys/searxng
		
	[fix] get_bang_url: handle ambiguous !!bangs without error
An ambiguous bang like `!!d` raises an exception in function get_bang_url(). A bang is only unique when the bang_definition from get_bang_definition_and_ac() is a string / for a ambiguous bang the returned bang_definition is a dictionary. Reported-by: user prg at #searxng:matrix.org on 2022/01/11 Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
		
							parent
							
								
									f4004133b6
								
							
						
					
					
						commit
						6d7e86eece
					
				
					 1 changed files with 5 additions and 2 deletions
				
			
		|  | @ -77,11 +77,14 @@ def get_bang_url(search_query, external_bangs_db=None): | |||
|     :param search_query: This is a search_query object which contains preferences and the submitted queries. | ||||
|     :return: None if the bang was invalid, else a string of the redirect url. | ||||
|     """ | ||||
|     ret_val = None | ||||
| 
 | ||||
|     if external_bangs_db is None: | ||||
|         external_bangs_db = EXTERNAL_BANGS | ||||
| 
 | ||||
|     if search_query.external_bang: | ||||
|         bang_definition, _ = get_bang_definition_and_ac(external_bangs_db, search_query.external_bang) | ||||
|         return resolve_bang_definition(bang_definition, search_query.query)[0] if bang_definition else None | ||||
|         if bang_definition and isinstance(bang_definition, str): | ||||
|             ret_val = resolve_bang_definition(bang_definition, search_query.query)[0] | ||||
| 
 | ||||
|     return None | ||||
|     return ret_val | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Markus Heiser
						Markus Heiser