getBot() публичный Метод

Returns the bot extracted from the parsed UA
public getBot ( ) : array
Результат array
 public function getBotInformation()
 {
     if (!$this->deviceDetector->isBot()) {
         throw new \Exception(Yii::t("app", "Isn't a Bot."));
     }
     return $this->deviceDetector->getBot();
 }
Пример #2
0
 /**
  * @dataProvider getBotFixtures
  */
 public function testParseBots($fixtureData)
 {
     $ua = $fixtureData['user_agent'];
     $dd = new DeviceDetector($ua);
     $dd->parse();
     $this->assertTrue($dd->isBot());
     $botData = $dd->getBot();
     $this->assertEquals($botData['name'], $fixtureData['name']);
     // client and os will always be unknown for bots
     $this->assertEquals($dd->getOs('short_name'), DeviceDetector::UNKNOWN);
     $this->assertEquals($dd->getClient('short_name'), DeviceDetector::UNKNOWN);
 }
Пример #3
0
 public function detect($userAgent = null, $advanced = false)
 {
     $userAgent = $userAgent ?: env('HTTP_USER_AGENT');
     DeviceParserAbstract::setVersionTruncation(DeviceParserAbstract::VERSION_TRUNCATION_NONE);
     $detect = new DeviceDetector($userAgent);
     $detect->parse();
     $return = [];
     if ($detect->isBot()) {
         $return['bot'] = $detect->getBot();
         return $return;
     }
     //device wrapper
     $devicelist = ['desktop' => 'computer', 'smartphone' => 'phone', 'tablet' => 'tablet', 'feature phone' => 'phone'];
     $os = $detect->getOs();
     $client = $detect->getClient();
     $devicename = $detect->getDeviceName();
     $devicetype = isset($devicelist[$devicename]) ? $devicelist[$devicename] : 'computer';
     //legacy params
     $return['device'] = $devicename;
     $return['type'] = $devicetype;
     $return['brand'] = $detect->getBrandName();
     $return['os'] = $os['name'];
     $return['os_version'] = $os['version'];
     $return['os_code'] = $os['short_name'];
     $return['browser'] = $client['name'];
     $return['browser_version'] = $client['version'];
     $return['browser_code'] = $client['short_name'];
     $return['browser_type'] = $client['type'];
     $return['browser_engine'] = $client['engine'];
     if (!$advanced) {
         return array_map('trim', $return);
     }
     //advanced params
     $osFamily = OperatingSystem::getOsFamily($os['short_name']);
     $return['os_family'] = $osFamily !== false ? $osFamily : 'Unknown';
     $return['model'] = $detect->getModel();
     $browserFamily = Browser::getBrowserFamily($client['short_name']);
     $return['browser_family'] = $browserFamily !== false ? $browserFamily : 'Unknown';
     $touch = $detect->isTouchEnabled();
     $return['touch'] = $touch[0];
     unset($os, $client, $osFamily, $browserFamily, $touch);
     return array_map('trim', $return);
 }
Пример #4
0
 /**
  * Parses a useragent and returns the detected data
  *
  * ATTENTION: Use that method only for testing or very small applications
  * To get fast results from DeviceDetector you need to make your own implementation,
  * that should use one of the caching mechanisms. See README.md for more information.
  *
  * @internal
  * @deprecated
  *
  * @param string $ua UserAgent to parse
  *
  * @return array
  */
 public static function getInfoFromUserAgent($ua)
 {
     $deviceDetector = new DeviceDetector($ua);
     $deviceDetector->parse();
     if ($deviceDetector->isBot()) {
         return array('user_agent' => $deviceDetector->getUserAgent(), 'bot' => $deviceDetector->getBot());
     }
     $osFamily = OperatingSystem::getOsFamily($deviceDetector->getOs('short_name'));
     $browserFamily = \DeviceDetector\Parser\Client\Browser::getBrowserFamily($deviceDetector->getClient('short_name'));
     $processed = array('user_agent' => $deviceDetector->getUserAgent(), 'os' => $deviceDetector->getOs(), 'client' => $deviceDetector->getClient(), 'device' => array('type' => $deviceDetector->getDeviceName(), 'brand' => $deviceDetector->getBrand(), 'model' => $deviceDetector->getModel()), 'os_family' => $osFamily !== false ? $osFamily : 'Unknown', 'browser_family' => $browserFamily !== false ? $browserFamily : 'Unknown');
     return $processed;
 }
<?php

require_once 'vendor/autoload.php';
use DeviceDetector\DeviceDetector;
$userAgent = $argv[1];
$dd = new DeviceDetector($userAgent);
$dd->parse();
if ($dd->isBot()) {
    var_dump($botInfo = $dd->getBot());
} else {
    $clientInfo = $dd->getClient();
    // holds information about browser, feed reader, media player, ...
    $osInfo = $dd->getOs();
    $device = $dd->getDevice();
    $brand = $dd->getBrand();
    $model = $dd->getModel();
    var_dump($clientInfo, $osInfo, $device, $brand, $model);
}
 /**
  *
  * @param DeviceDetector $dd
  *
  * @return array
  */
 private function getResultRaw(DeviceDetector $dd)
 {
     $raw = ['client' => $dd->getClient(), 'operatingSystem' => $dd->getOs(), 'device' => ['brand' => $dd->getBrand(), 'brandName' => $dd->getBrandName(), 'model' => $dd->getModel(), 'device' => $dd->getDevice(), 'deviceName' => $dd->getDeviceName()], 'bot' => $dd->getBot(), 'extra' => ['isBot' => $dd->isBot(), 'isBrowser' => $dd->isBrowser(), 'isFeedReader' => $dd->isFeedReader(), 'isMobileApp' => $dd->isMobileApp(), 'isPIM' => $dd->isPIM(), 'isLibrary' => $dd->isLibrary(), 'isMediaPlayer' => $dd->isMediaPlayer(), 'isCamera' => $dd->isCamera(), 'isCarBrowser' => $dd->isCarBrowser(), 'isConsole' => $dd->isConsole(), 'isFeaturePhone' => $dd->isFeaturePhone(), 'isPhablet' => $dd->isPhablet(), 'isPortableMediaPlayer' => $dd->isPortableMediaPlayer(), 'isSmartDisplay' => $dd->isSmartDisplay(), 'isSmartphone' => $dd->isSmartphone(), 'isTablet' => $dd->isTablet(), 'isTV' => $dd->isTV(), 'isDesktop' => $dd->isDesktop(), 'isMobile' => $dd->isMobile(), 'isTouchEnabled' => $dd->isTouchEnabled()]];
     return $raw;
 }