the text result api returns special results as well (currency conversion, wikipedia result etc.)

This commit is contained in:
hnh.mtf 2022-03-03 10:32:46 +01:00
parent e2b353dfc0
commit c355792964
6 changed files with 50 additions and 28 deletions

View file

@ -17,7 +17,7 @@
{ {
case 0: case 0:
require "engines/google/text.php"; require "engines/google/text.php";
$results = get_text_results($query_encoded, $page, true); $results = get_text_results($query_encoded, $page);
break; break;
case 1: case 1:
require "engines/google/image.php"; require "engines/google/image.php";

View file

@ -37,7 +37,7 @@
$special_search = $page == 0 ? check_for_special_search($query) : 0; $special_search = $page == 0 ? check_for_special_search($query) : 0;
$special_ch = null; $special_ch = null;
$url = null; $url = null;
if ($special_search != 0 && $api == false) if ($special_search != 0)
{ {
switch ($special_search) switch ($special_search)
{ {
@ -72,15 +72,15 @@
{ {
case 1: case 1:
require "engines/special/currency.php"; require "engines/special/currency.php";
currency_results($query, curl_multi_getcontent($special_ch)); array_push($results, currency_results($query, curl_multi_getcontent($special_ch)));
break; break;
case 2: case 2:
require "engines/special/definition.php"; require "engines/special/definition.php";
definition_results($query, curl_multi_getcontent($special_ch)); array_push($results, definition_results($query, curl_multi_getcontent($special_ch)));
break; break;
case 3: case 3:
require "engines/special/wikipedia.php"; require "engines/special/wikipedia.php";
wikipedia_results($query, curl_multi_getcontent($special_ch)); array_push($results, wikipedia_results($query, curl_multi_getcontent($special_ch)));
break; break;
} }
} }
@ -94,9 +94,13 @@
if ($url == null) if ($url == null)
continue; continue;
if (!empty($results)) // filter duplicate results if (!empty($results)) // filter duplicate results, ignore special result
if (end($results)["url"] == $url->textContent) {
continue; if (!array_key_exists("special_response", end($results)))
if (end($results)["url"] == $url->textContent)
continue;
}
$url = $url->textContent; $url = $url->textContent;
$url = check_for_privacy_friendly_alternative($url); $url = check_for_privacy_friendly_alternative($url);
@ -121,9 +125,22 @@
function print_text_results($results) function print_text_results($results)
{ {
global $query , $page;
echo "<div class=\"text-result-container\">"; echo "<div class=\"text-result-container\">";
$special = $results[0];
if (array_key_exists("special_response", $special))
{
$response = $special["special_response"]["response"];
$source = $special["special_response"]["source"];
echo "<p class=\"special-result-container\">";
echo $response;
echo "<a href=\"$source\" target=\"_blank\">$source</a>";
echo "</p>";
array_shift($results);
}
foreach($results as $result) foreach($results as $result)
{ {
$title = $result["title"]; $title = $result["title"];
@ -139,6 +156,7 @@
echo "<span>$description</span>"; echo "<span>$description</span>";
echo "</div>"; echo "</div>";
} }
echo "</div>"; echo "</div>";
} }
?> ?>

View file

@ -21,10 +21,14 @@
$conversion_result = ($currency_to_convert_response / $base_currency_response) * $amount_to_convert; $conversion_result = ($currency_to_convert_response / $base_currency_response) * $amount_to_convert;
echo "<p class=\"special-result-container\">"; $formatted_response = "$amount_to_convert $base_currency = $conversion_result $currency_to_convert";
echo "$amount_to_convert $base_currency = $conversion_result $currency_to_convert"; $source = "https://moneyconvert.net/";
echo "<a href=\"https://moneyconvert.net/\" target=\"_blank\">moneyconvert.net</a>"; return array(
echo "</p>"; "special_response" => array(
"response" => $formatted_response,
"source" => $source
)
);
} }
} }
?> ?>

View file

@ -14,11 +14,13 @@
{ {
$definition = $json_response[0]["meanings"][0]["definitions"][0]["definition"]; $definition = $json_response[0]["meanings"][0]["definitions"][0]["definition"];
echo "<p class=\"special-result-container\">"; $source = "https://en.wikipedia.org/wiki/$query";
echo "$word_to_define meaning<br/>"; return array(
echo "<br/>" . $definition . "<br/>"; "special_response" => array(
echo "<a href=\"https://dictionaryapi.dev/\" target=\"_blank\">dictionaryapi.dev</a>"; "response" => $definition,
echo "</p>"; "source" => $source
)
);
} }
} }

View file

@ -13,15 +13,14 @@
if (!array_key_exists("missing", $first_page)) if (!array_key_exists("missing", $first_page))
{ {
$description = substr($first_page["extract"], 0, 250) . "..."; $description = substr($first_page["extract"], 0, 250) . "...";
if (strpos($description, "may refer to"))
return;
echo "<p class=\"special-result-container\">"; $source = "https://en.wikipedia.org/wiki/$query";
echo "$description"; return array(
echo "<a href=\"https://en.wikipedia.org/wiki/$query\">wikipedia.org</a>"; "special_response" => array(
"response" => $description,
echo "</p>"; "source" => $source
)
);
} }
} }
?> ?>

View file

@ -101,7 +101,6 @@ a:hover, .text-result-wrapper h2:hover {
} }
.text-result-container, .text-result-container,
.special-result-container,
#time, #time,
.next-page-button-wrapper { .next-page-button-wrapper {
margin-left:10%; margin-left:10%;