2 Commits

Author SHA1 Message Date
Markus Heiser
f32e91e51a [fix] duckduckgo engine: logger.error / missing argument (#5057)
The error message in case the vqd value could not be determined was incorrect
and triggered an exception::

     File "/usr/local/searxng/searxng-src/searx/engines/duckduckgo.py", line 132, in get_vqd
       logger.error("vqd value from duckduckgo.com ", resp.status_code)
     Message: 'vqd value from duckduckgo.com '
     Arguments: (202,)
2025-07-28 15:36:52 +02:00
Markus Heiser
17f2027c4f [fix] NotImplementedError raised by ResultContainer (#5058)
If the ``on_result`` handle returns False, then the ``else`` was always jumped
to, which throws the NotImplementedError exception::

    File "/usr/local/searxng/searxng-src/searx/results.py", line 99, in extend
      raise NotImplementedError(f"no handler implemented to process the result of type {result}")
    NotImplementedError: no handler implemented to process the result of type MainResult(title=...
2025-07-28 15:36:26 +02:00
2 changed files with 5 additions and 3 deletions

View File

@@ -129,7 +129,7 @@ def get_vqd(query: str, region: str, force_request: bool = False) -> str:
if value:
cache.set(key=key, value=value)
else:
logger.error("vqd value from duckduckgo.com ", resp.status_code)
logger.error("none vqd value from duckduckgo.com: HTTP %s", resp.status_code)
return value

View File

@@ -88,10 +88,12 @@ class ResultContainer:
if isinstance(result, Result):
result.engine = result.engine or engine_name
result.normalize_result_fields()
if not self.on_result(result):
continue
if isinstance(result, BaseAnswer) and self.on_result(result):
if isinstance(result, BaseAnswer):
self.answers.add(result)
elif isinstance(result, MainResult) and self.on_result(result):
elif isinstance(result, MainResult):
main_count += 1
self._merge_main_result(result, main_count)
else: