From 36a1ef12399d529f210ceb4f8b28f497fabd0834 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Mon, 27 Jan 2025 16:43:43 +0100 Subject: [refactor] typification of SearXNG / EngineResults In [1] and [2] we discussed the need of a Result.results property and how we can avoid unclear code. This patch implements a class for the reslut-lists of engines:: searx.result_types.EngineResults A simple example for the usage in engine development:: from searx.result_types import EngineResults ... def response(resp) -> EngineResults: res = EngineResults() ... res.add( res.types.Answer(answer="lorem ipsum ..", url="https://example.org") ) ... return res [1] https://github.com/searxng/searxng/pull/4183#pullrequestreview-257400034 [2] https://github.com/searxng/searxng/pull/4183#issuecomment-2614301580 Signed-off-by: Markus Heiser --- searx/engines/demo_offline.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'searx/engines/demo_offline.py') diff --git a/searx/engines/demo_offline.py b/searx/engines/demo_offline.py index 97659465a..ffcdb46a9 100644 --- a/searx/engines/demo_offline.py +++ b/searx/engines/demo_offline.py @@ -13,6 +13,7 @@ close to the implementation, its just a simple example. To get in use of this """ import json +from searx.result_types import EngineResults engine_type = 'offline' categories = ['general'] @@ -48,14 +49,14 @@ def init(engine_settings=None): ) -def search(query, request_params): +def search(query, request_params) -> EngineResults: """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. """ - ret_val = [] + res = EngineResults() result_list = json.loads(_my_offline_engine) @@ -67,6 +68,6 @@ def search(query, request_params): # choose a result template or comment out to use the *default* 'template': 'key-value.html', } - ret_val.append(entry) + res.append(entry) - return ret_val + return res -- cgit v1.2.3