1
0
Fork 0
mirror of https://github.com/Findus23/devicedetector.net.git synced 2024-09-19 15:43:46 +02:00
devicedetector.net/public/supported.php

62 lines
1.8 KiB
PHP
Raw Normal View History

2019-04-09 20:36:39 +02:00
<?php
namespace DeviceDetectorNet;
use DeviceDetector\Parser\Client\Browser;
use DeviceDetector\Parser\Client\Browser\Engine;
use DeviceDetector\Parser\Client\FeedReader;
use DeviceDetector\Parser\Client\Library;
use DeviceDetector\Parser\Client\MediaPlayer;
use DeviceDetector\Parser\Client\MobileApp;
use DeviceDetector\Parser\Client\PIM;
2020-10-27 10:51:48 +01:00
use DeviceDetector\Parser\Device\AbstractDeviceParser;
2019-04-09 20:36:39 +02:00
use DeviceDetector\Parser\OperatingSystem;
use Symfony\Component\Yaml\Yaml;
2019-04-09 20:36:39 +02:00
require_once '../vendor/autoload.php';
2020-10-27 13:38:26 +01:00
function get_values(array $dict): array
{
natcasesort($dict);
$values = array_values($dict);
return $values;
}
2019-04-09 20:36:39 +02:00
$cacheloader = new CacheLoader();
$item = $cacheloader->cache->getItem("supported");
2019-04-10 10:05:34 +02:00
if ($item->isHit()) {
2019-04-09 20:36:39 +02:00
$data = $item->get();
} else {
$bots = [];
2020-10-30 15:53:11 +01:00
$parsedBots = Yaml::parse(file_get_contents(__DIR__ . '/../vendor/matomo/device-detector/regexes/bots.yml'));
2019-04-09 20:36:39 +02:00
foreach ($parsedBots as $parsedBot) {
$bots[] = $parsedBot['name'];
}
$data = [
"operatingSystems" => get_values(OperatingSystem::getAvailableOperatingSystems()),
"browsers" => get_values(Browser::getAvailableBrowsers()),
"engines" => get_values(Engine::getAvailableEngines()),
"libraries" => get_values(Library::getAvailableClients()),
"mediaPlayer" => get_values(MediaPlayer::getAvailableClients()),
"mobileApps" => get_values(MobileApp::getAvailableClients()),
"PIM" => get_values(PIM::getAvailableClients()),
"feedReaders" => get_values(FeedReader::getAvailableClients()),
2020-10-27 10:51:48 +01:00
"brands" => get_values(AbstractDeviceParser::$deviceBrands),
2019-04-09 20:36:39 +02:00
"bots" => get_values($bots)
];
$item->set($data);
$item->expiresAfter(60 * 60 * 24);
$cacheloader->cache->save($item);
}
header("Content-Type: application/json; charset=UTF-8");
echo json_encode($data);