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

66 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;
use DeviceDetector\Parser\Device\DeviceParserAbstract;
use DeviceDetector\Parser\OperatingSystem;
use Spyc;
require_once '../vendor/autoload.php';
$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 = [];
$ymlParser = new Spyc();
$parsedBots = $ymlParser->loadFile(__DIR__ . '/../vendor/piwik/device-detector/regexes/bots.yml');
foreach ($parsedBots as $parsedBot) {
$bots[] = $parsedBot['name'];
}
function get_values(array $dict) {
2019-06-25 20:02:16 +02:00
natcasesort($dict);
2019-04-09 20:36:39 +02:00
$values = array_values($dict);
return $values;
}
$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()),
"brands" => get_values(DeviceParserAbstract::$deviceBrands),
"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);