forked from zaclys/searxng
		
	[docs] add engine "Demo Offline Engine"
This engine just exists for documentation purpose. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
		
							parent
							
								
									acb1577202
								
							
						
					
					
						commit
						1c8cf1d3a8
					
				
					 2 changed files with 83 additions and 0 deletions
				
			
		
							
								
								
									
										9
									
								
								docs/src/searx.engines.demo_offline.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								docs/src/searx.engines.demo_offline.rst
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | ||||||
|  | .. _demo offline engine: | ||||||
|  | 
 | ||||||
|  | =================== | ||||||
|  | Demo Offline Engine | ||||||
|  | =================== | ||||||
|  | 
 | ||||||
|  | .. automodule:: searx.engines.demo_offline | ||||||
|  |   :members: | ||||||
|  | 
 | ||||||
							
								
								
									
										74
									
								
								searx/engines/demo_offline.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								searx/engines/demo_offline.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,74 @@ | ||||||
|  | # SPDX-License-Identifier: AGPL-3.0-or-later | ||||||
|  | # lint: pylint | ||||||
|  | """Within this module we implement a *demo offline engine*.  Do not look to | ||||||
|  | close to the implementation, its just a simple example.  To get in use of this | ||||||
|  | *demo* engine add the following entry to your engines list in ``settings.yml``: | ||||||
|  | 
 | ||||||
|  | .. code:: yaml | ||||||
|  | 
 | ||||||
|  |   - name: my offline engine | ||||||
|  |     engine: demo_offline | ||||||
|  |     shortcut: demo | ||||||
|  |     disabled: false | ||||||
|  | 
 | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | import json | ||||||
|  | 
 | ||||||
|  | engine_type = 'offline' | ||||||
|  | categories = ['general'] | ||||||
|  | disabled = True | ||||||
|  | timeout = 2.0 | ||||||
|  | 
 | ||||||
|  | about = { | ||||||
|  |     "wikidata_id": None, | ||||||
|  |     "official_api_documentation": None, | ||||||
|  |     "use_official_api": False, | ||||||
|  |     "require_api_key": False, | ||||||
|  |     "results": 'JSON', | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # if there is a need for globals, use a leading underline | ||||||
|  | _my_offline_engine = None | ||||||
|  | 
 | ||||||
|  | def init(engine_settings=None): | ||||||
|  |     """Initialization of the (offline) engine.  The origin of this demo engine is a | ||||||
|  |     simple json string which is loaded in this example while the engine is | ||||||
|  |     initialized. | ||||||
|  | 
 | ||||||
|  |     """ | ||||||
|  |     global _my_offline_engine  # pylint: disable=global-statement | ||||||
|  | 
 | ||||||
|  |     _my_offline_engine = ( | ||||||
|  |         '[ {"value": "%s"}' | ||||||
|  |         ', {"value":"first item"}' | ||||||
|  |         ', {"value":"second item"}' | ||||||
|  |         ', {"value":"third item"}' | ||||||
|  |         ']' | ||||||
|  | 
 | ||||||
|  |         % engine_settings.get('name') | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  | def search(query, request_params): | ||||||
|  |     """Query (offline) engine and return results.  Assemble the list of results from | ||||||
|  |     your local engine.  In this demo engine we ignore the 'query' term, usual | ||||||
|  |     you would pass the 'query' term to your local engine to filter out the | ||||||
|  |     results. | ||||||
|  | 
 | ||||||
|  |     """ | ||||||
|  |     global _my_offline_engine  # pylint: disable=global-statement | ||||||
|  |     ret_val = [] | ||||||
|  | 
 | ||||||
|  |     result_list = json.loads(_my_offline_engine) | ||||||
|  | 
 | ||||||
|  |     for row in result_list: | ||||||
|  |         entry = { | ||||||
|  |             'query' : query, | ||||||
|  |             'language' : request_params['language'], | ||||||
|  |             'value' : row.get("value"), | ||||||
|  |             # choose a result template or comment out to use the *default* | ||||||
|  |             'template' : 'key-value.html', | ||||||
|  |         } | ||||||
|  |         ret_val.append(entry) | ||||||
|  | 
 | ||||||
|  |     return ret_val | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Markus Heiser
						Markus Heiser