Browse Source

[fix] engine geizhals: if there are no offers, there is no best price

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 <markus.heiser@darmarit.de>
Markus Heiser 9 months ago
parent
commit
ee959ed9fc
1 changed files with 3 additions and 3 deletions
  1. 3 3
      searx/engines/geizhals.py

+ 3 - 3
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