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/tineye.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'searx/engines/tineye.py') diff --git a/searx/engines/tineye.py b/searx/engines/tineye.py index b2f6c3e31..e3a7ab470 100644 --- a/searx/engines/tineye.py +++ b/searx/engines/tineye.py @@ -19,6 +19,8 @@ from urllib.parse import urlencode from datetime import datetime from flask_babel import gettext +from searx.result_types import EngineResults + if TYPE_CHECKING: import logging @@ -154,9 +156,9 @@ def parse_tineye_match(match_json): } -def response(resp): +def response(resp) -> EngineResults: """Parse HTTP response from TinEye.""" - results = [] + results = EngineResults() # handle the 422 client side errors, and the possible 400 status code error if resp.status_code in (400, 422): @@ -183,8 +185,7 @@ def response(resp): message = ','.join(description) # see https://github.com/searxng/searxng/pull/1456#issuecomment-1193105023 - # from searx.result_types import Answer - # Answer(results=results, answer=message) + # results.add(results.types.Answer(answer=message)) logger.info(message) return results -- cgit v1.2.3