From 1711e21cd4db0d1b65dc2f7e7924c92c8c8f843e Mon Sep 17 00:00:00 2001 From: davidovski Date: Mon, 8 Apr 2024 16:17:03 +0100 Subject: [PATCH] Fix double results --- engines/text/brave.php | 4 +++- engines/text/duckduckgo.php | 4 ++-- engines/text/ecosia.php | 2 +- engines/text/google.php | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/engines/text/brave.php b/engines/text/brave.php index dd7da0f4..aad948ed 100644 --- a/engines/text/brave.php +++ b/engines/text/brave.php @@ -38,7 +38,7 @@ public function parse_results($response) { $url = $url->textContent; - if (!empty($results) && array_key_exists("url", $results) && end($results)["url"] == $url->textContent) + if (!empty($results) && array_key_exists("url", end($results)) && end($results)["url"] == $url->textContent) continue; $title = $xpath->evaluate(".//a[contains(@class, 'h')]//div[contains(@class, 'url')]", $result)[0]; @@ -47,6 +47,8 @@ public function parse_results($response) { continue; $title = $title->textContent; + $title = end(explode("›", $title)); + $description = ($xpath->evaluate(".//div[contains(@class, 'snippet-content')]//div[contains(@class, 'snippet-description')]", $result)[0] ?? null) ?->textContent ?? ''; array_push($results, diff --git a/engines/text/duckduckgo.php b/engines/text/duckduckgo.php index ae804464..5f715e0f 100644 --- a/engines/text/duckduckgo.php +++ b/engines/text/duckduckgo.php @@ -28,10 +28,10 @@ public function parse_results($response) { if (!$xpath) return $results; - + foreach($xpath->query("/html/body/div[1]/div[". count($xpath->query('/html/body/div[1]/div')) ."]/div/div/div[contains(@class, 'web-result')]/div") as $result) { $url = $xpath->evaluate(".//h2[@class='result__title']//a/@href", $result)[0]; - + if ($url == null) continue; diff --git a/engines/text/ecosia.php b/engines/text/ecosia.php index f3af1889..091144f3 100644 --- a/engines/text/ecosia.php +++ b/engines/text/ecosia.php @@ -31,7 +31,7 @@ public function parse_results($response) { $url = $url->textContent; - if (!empty($results) && array_key_exists("url", $results) && end($results)["url"] == $url->textContent) + if (!empty($results) && array_key_exists("url", end($results)) && end($results)["url"] == $url->textContent) continue; $title = $xpath->evaluate(".//article//div[contains(@class, 'result__body')]//div[contains(@class, 'result__header')]//div[contains(@class, 'result__title')]//a//h2", $result)[0]; diff --git a/engines/text/google.php b/engines/text/google.php index 5ce877dc..7a0d589e 100644 --- a/engines/text/google.php +++ b/engines/text/google.php @@ -46,7 +46,7 @@ public function parse_results($response) { if ($url == null) continue; - if (!empty($results) && array_key_exists("url", $results) && end($results)["url"] == $url->textContent) + if (!empty($results) && array_key_exists("url", end($results)) && end($results)["url"] == $url->textContent) continue; $url = $url->textContent;