From ee959ed9fc6bbe3da30876080117e9aafbba850f Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 28 Jul 2024 10:30:57 +0200 Subject: [PATCH] [fix] engine geizhals: if there are no offers, there is no best price MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fault pattern: if there are no offers, then an exception has been thrown: IndexError: list index out of range This patch makes the addition of “best price” dependent on whether one exists. Closes: #3685 Signed-off-by: Markus Heiser --- searx/engines/geizhals.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/searx/engines/geizhals.py b/searx/engines/geizhals.py index eae110b20..4ada41919 100644 --- a/searx/engines/geizhals.py +++ b/searx/engines/geizhals.py @@ -86,12 +86,12 @@ def response(resp): 'title': extract_text(eval_xpath(result, ".//h3[contains(@class, 'listview__name')]")), 'content': ' | '.join(content), 'thumbnail': extract_text(eval_xpath(result, ".//img[contains(@class, 'listview__image')]/@src")), - 'price': "Bestes Angebot: " - + extract_text(eval_xpath(result, ".//a[contains(@class, 'listview__price-link')]")).split(" ")[1] - + "€", 'metadata': ', '.join(item for item in metadata if item), } + best_price = extract_text(eval_xpath(result, ".//a[contains(@class, 'listview__price-link')]")).split(" ") + if len(best_price) > 1: + item["price"] = f"Bestes Angebot: {best_price[1]}€" results.append(item) return results