From 3046cd1c69c3299ea12de2169416a8fdefee38b9 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Fri, 27 Jan 2017 10:48:02 +0100
Subject: [PATCH] =?UTF-8?q?Overture=20bietet=20den=20Weitersuchen-Knopf=20?=
 =?UTF-8?q?nun=20nur=20noch=20an,=20wenn=20es=20auch=20tats=C3=A4chlich=20?=
 =?UTF-8?q?mehr=20Ergebnisse=20gibt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Models/parserSkripte/Overture.php | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/app/Models/parserSkripte/Overture.php b/app/Models/parserSkripte/Overture.php
index 791e5b41f..60a82a512 100644
--- a/app/Models/parserSkripte/Overture.php
+++ b/app/Models/parserSkripte/Overture.php
@@ -80,17 +80,24 @@ class Overture extends Searchengine
             return;
         }
 
-        # Auslesen der Argumente für die nächste Suchseite:
-        $result = preg_replace("/\r\n/si", "", $result);
-        try {
-            $content = simplexml_load_string($result);
-        } catch (\Exception $e) {
-            Log::error("Results from $this->name are not a valid json string");
+        if (!$content) {
             return;
         }
-        if (!$content) {
+
+        // Yahoo liefert, wenn es keine weiteren Ergebnisse hat immer wieder die gleichen Ergebnisse
+        // Wir müssen also überprüfen, ob wir am Ende der Ergebnisse sind
+        $resultCount = $content->xpath('//Results/ResultSet[@id="inktomi"]/MetaData/TotalHits');
+        $results     = $content->xpath('//Results/ResultSet[@id="inktomi"]/Listing');
+        if (isset($resultCount[0]) && sizeof($results) > 0) {
+            $resultCount      = intval($resultCount[0]->__toString());
+            $lastResultOnPage = intval($results[sizeof($results) - 1]["rank"]);
+            if ($resultCount <= $lastResultOnPage) {
+                return;
+            }
+        } else {
             return;
         }
+
         $nextArgs = $content->xpath('//Results/NextArgs');
         if (isset($nextArgs[0])) {
             $nextArgs = $nextArgs[0]->__toString();
-- 
GitLab