LibreY/engines/special/special.php

89 lines
2.8 KiB
PHP
Raw Normal View History

2023-08-21 11:29:50 -04:00
<?php
function check_for_special_search($query) {
if (isset($_COOKIE["disable_special"]))
return 0;
$query_lower = strtolower($query);
$split_query = explode(" ", $query);
if (strpos($query_lower, "to") && count($split_query) >= 4) // currency
{
$amount_to_convert = floatval($split_query[0]);
if ($amount_to_convert != 0)
return 1;
}
else if (strpos($query_lower, "mean") && count($split_query) >= 2) // definition
{
return 2;
}
else if (strpos($query_lower, "my") !== false)
{
if (strpos($query_lower, "ip"))
{
return 3;
}
else if (strpos($query_lower, "user agent") || strpos($query_lower, "ua"))
{
return 4;
}
}
else if (strpos($query_lower, "weather") !== false)
{
return 5;
}
else if ($query_lower == "tor")
{
return 6;
}
else if (3 > count(explode(" ", $query))) // wikipedia
{
return 7;
}
return 0;
}
function get_special_search_request ($query, $page, $mh, $config) {
$special_search = $page ? 0 : check_for_special_search($query);
$special_request = null;
$url = null;
if ($special_search == 0)
return null;
switch ($special_search) {
case 1:
require "engines/special/currency.php";
2023-08-21 16:55:24 -04:00
$special_request = new CurrencyRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 2:
require "engines/special/definition.php";
2023-08-21 16:55:24 -04:00
$special_request = new DefinitionRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 3:
require "engines/special/ip.php";
2023-08-21 16:55:24 -04:00
$special_request = new IPRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 4:
require "engines/special/user_agent.php";
2023-08-21 16:55:24 -04:00
$special_request = new UserAgentRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 5:
require "engines/special/weather.php";
2023-08-21 16:55:24 -04:00
$special_request = new WeatherRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 6:
require "engines/special/tor.php";
2023-08-21 16:55:24 -04:00
$special_request = new TorRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
case 7:
require "engines/special/wikipedia.php";
2023-08-21 16:55:24 -04:00
$special_request = new WikipediaRequest($query, $page, $mh, $config);
2023-08-21 11:29:50 -04:00
break;
}
return $special_request;
}
?>