From 748b521ac6c720b87fbe1229cb34db26dae2f0ae Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 1 Oct 2025 07:01:27 +0200 Subject: [PATCH] [fix] searx/results.py - TypeError: object of type 'NoneType' has no len() In some engines, under certain circumstances, the content field can also have the value ``None``; in these cases, a length check results in an exception:: File "/usr/local/searxng/searx/results.py", line 360, in merge_two_main_results if len(other.content) > len(origin.content): ^^^^^^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() [1] https://github.com/searxng/searxng/issues/5250#issuecomment-3352863488 Reported-by: @scross01 [1] Signed-off-by: Markus Heiser --- searx/engines/pdbe.py | 2 +- searx/results.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/searx/engines/pdbe.py b/searx/engines/pdbe.py index 6dcb56169..a155c02fd 100644 --- a/searx/engines/pdbe.py +++ b/searx/engines/pdbe.py @@ -67,7 +67,7 @@ def construct_body(result): ) thumbnail = pdbe_preview_url.format(pdb_id=result['pdb_id']) except KeyError: - content = None + content = "" thumbnail = None # construct url for preview image diff --git a/searx/results.py b/searx/results.py index 02b7bb204..f3bac2eb7 100644 --- a/searx/results.py +++ b/searx/results.py @@ -357,12 +357,12 @@ def merge_two_infoboxes(origin: LegacyResult, other: LegacyResult): def merge_two_main_results(origin: MainResult | LegacyResult, other: MainResult | LegacyResult): """Merges the values from ``other`` into ``origin``.""" - if len(other.content) > len(origin.content): + if len(other.content or "") > len(origin.content or ""): # use content with more text origin.content = other.content # use title with more text - if len(other.title) > len(origin.title): + if len(other.title or "") > len(origin.title or ""): origin.title = other.title # merge all result's parameters not found in origin