2019-04-09 20:36:39 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace DeviceDetectorNet;
|
|
|
|
|
|
|
|
require_once '../vendor/autoload.php';
|
|
|
|
|
|
|
|
use DeviceDetector\DeviceDetector;
|
2019-06-25 20:02:30 +02:00
|
|
|
use DeviceDetector\Parser\Client\Browser;
|
2020-10-27 10:45:52 +01:00
|
|
|
use DeviceDetector\Parser\Device\AbstractDeviceParser;
|
2019-06-25 20:02:30 +02:00
|
|
|
use DeviceDetector\Parser\OperatingSystem;
|
2019-08-24 19:19:05 +02:00
|
|
|
use DeviceDetector\Yaml\Symfony;
|
2019-04-09 20:36:39 +02:00
|
|
|
|
2020-10-27 10:45:52 +01:00
|
|
|
AbstractDeviceParser::setVersionTruncation(AbstractDeviceParser::VERSION_TRUNCATION_NONE);
|
2019-04-09 20:36:39 +02:00
|
|
|
|
|
|
|
$cacheloader = new CacheLoader();
|
|
|
|
|
|
|
|
if (!empty($_GET["ua"])) {
|
|
|
|
$userAgent = $_GET["ua"];
|
|
|
|
} else {
|
|
|
|
$userAgent = $_SERVER['HTTP_USER_AGENT'];
|
|
|
|
}
|
|
|
|
|
2019-09-04 11:08:02 +02:00
|
|
|
if (strlen($userAgent) > 1000) {
|
|
|
|
echo "The user agent has to be shorter than 1000 characters.";
|
2020-10-27 13:38:26 +01:00
|
|
|
http_response_code(400);
|
2019-09-04 11:08:02 +02:00
|
|
|
exit();
|
|
|
|
}
|
2019-04-09 20:36:39 +02:00
|
|
|
|
|
|
|
$dd = new DeviceDetector($userAgent);
|
2019-08-24 19:19:05 +02:00
|
|
|
$dd->setYamlParser(new Symfony());
|
2019-04-09 20:36:39 +02:00
|
|
|
|
|
|
|
$cacheloader->configureDeviceDetector($dd);
|
|
|
|
$dd->parse();
|
2019-04-10 12:12:22 +02:00
|
|
|
$icons = new IconPath($dd);
|
2019-04-09 20:36:39 +02:00
|
|
|
if ($dd->isBot()) {
|
2020-10-27 13:38:26 +01:00
|
|
|
$data = [
|
|
|
|
"isBot" => true,
|
|
|
|
"botInfo" => $dd->getBot()
|
2020-03-27 18:04:12 +01:00
|
|
|
];
|
2020-10-27 13:38:26 +01:00
|
|
|
} else {
|
|
|
|
$data = [
|
|
|
|
"isBot" => false,
|
|
|
|
"clientInfo" => $dd->getClient(),
|
|
|
|
"browserFamily" => Browser::getBrowserFamily($dd->getClient('short_name')),
|
|
|
|
"isMobileOnlyBrowser" => Browser::isMobileOnlyBrowser($dd->getClient('short_name')),
|
|
|
|
"osInfo" => $dd->getOs(),
|
|
|
|
"osFamily" => OperatingSystem::getOsFamily($dd->getOs('short_name')),
|
|
|
|
"device" => $dd->getDevice(),
|
|
|
|
"deviceName" => $dd->getDeviceName(),
|
|
|
|
"deviceBrand" => [
|
|
|
|
"name" => $dd->getBrandName(),
|
|
|
|
"short_name" => $dd->getBrand()
|
|
|
|
],
|
|
|
|
"model" => $dd->getModel(),
|
|
|
|
"icons" => [
|
|
|
|
"browser" => $icons->getBrowserLogo(),
|
|
|
|
"os" => $icons->getOsLogo(),
|
|
|
|
"device" => $icons->getDeviceTypeLogo(),
|
|
|
|
"brand" => $icons->getBrandLogo()
|
|
|
|
]
|
2019-04-17 21:17:42 +02:00
|
|
|
];
|
2019-04-09 20:36:39 +02:00
|
|
|
}
|
2020-10-27 13:38:26 +01:00
|
|
|
|
2019-04-09 20:36:39 +02:00
|
|
|
header("Content-Type: application/json; charset=UTF-8");
|
2020-03-27 18:04:12 +01:00
|
|
|
echo json_encode($data, JSON_FORCE_OBJECT);
|
2019-04-09 20:36:39 +02:00
|
|
|
|