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:
require "engines/google/text.php";
$results = get_text_results($query_encoded, $page, true);
$results = get_text_results($query_encoded, $page);
break;
case 1:
require "engines/google/image.php";

View File

@ -37,7 +37,7 @@
$special_search = $page == 0 ? check_for_special_search($query) : 0;
$special_ch = null;
$url = null;
if ($special_search != 0 && $api == false)
if ($special_search != 0)
{
switch ($special_search)
{
@ -72,15 +72,15 @@
{
case 1:
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;
case 2:
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;
case 3:
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;
}
}
@ -94,9 +94,13 @@
if ($url == null)
continue;
if (!empty($results)) // filter duplicate results
if (end($results)["url"] == $url->textContent)
continue;
if (!empty($results)) // filter duplicate results, ignore special result
{
if (!array_key_exists("special_response", end($results)))
if (end($results)["url"] == $url->textContent)
continue;
}
$url = $url->textContent;
$url = check_for_privacy_friendly_alternative($url);
@ -121,9 +125,22 @@
function print_text_results($results)
{
global $query , $page;
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)
{
$title = $result["title"];
@ -139,6 +156,7 @@
echo "<span>$description</span>";
echo "</div>";
}
echo "</div>";
}
?>

View File

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

View File

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

View File

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

View File

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