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