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