Вход Регистрация
Файл: vendor/whichbrowser/parser/src/Analyser/Header/Useragent/Device/Ereader.php
Строк: 103
<?php

namespace WhichBrowserAnalyserHeaderUseragentDevice;

use 
WhichBrowserConstants;

trait 
Ereader
{
    private function 
detectEreader($ua)
    {
        if (!
preg_match('/(Kindle|Nook|Bookeen|Kobo|EBRD|PocketBook|Iriver)/ui'$ua)) {
            return;
        }

        
$this->detectKindle($ua);
        
$this->detectNook($ua);
        
$this->detectBookeen($ua);
        
$this->detectKobo($ua);
        
$this->detectSonyreader($ua);
        
$this->detectPocketbook($ua);
        
$this->detectIriver($ua);
    }




    
/* Amazon Kindle */

    
private function detectKindle($ua)
    {
        if (
preg_match('/Kindle/u'$ua) && !preg_match('/Fire/u'$ua)) {
            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'Amazon',
                
'series'        =>  'Kindle',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);

            if (
preg_match('/Kindle SkipStone/u'$ua)) {
                
$this->data->device->model 'Kindle Touch or later';
            } elseif (
preg_match('/Kindle/3.0+/u'$ua)) {
                
$this->data->device->model 'Kindle 3 or later';
            } elseif (
preg_match('/Kindle/3.0/u'$ua)) {
                
$this->data->device->model 'Kindle 3';
            } elseif (
preg_match('/Kindle/2.5/u'$ua)) {
                
$this->data->device->model 'Kindle 2';
            } elseif (
preg_match('/Kindle/2.0/u'$ua)) {
                
$this->data->device->model 'Kindle 2';
            } elseif (
preg_match('/Kindle/1.0/u'$ua)) {
                
$this->data->device->model 'Kindle 1';
            }

            if (!empty(
$this->data->device->model)) {
                
$this->data->device->generic false;
                
$this->data->device->series null;
            }
        }
    }


    
/* Barnes & Noble Nook */

    
private function detectNook($ua)
    {
        if (
preg_match('/nook browser/u'$ua)) {
            
$this->data->os->reset([ 'name' => 'Android' ]);
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'Barnes & Noble',
                
'series'        =>  'NOOK',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);
        }
    }


    
/* Bookeen */

    
private function detectBookeen($ua)
    {
        if (
preg_match('/bookeen/cybook/u'$ua)) {
            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'Bookeen',
                
'series'        =>  'Cybook',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);
        }
    }


    
/* Kobo */

    
private function detectKobo($ua)
    {
        if (
preg_match('/Kobo (eReader|Touch)/u'$ua$match)) {
            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'Kobo',
                
'series'        =>  'eReader',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);
        }
    }


    
/* Sony Reader */

    
private function detectSonyreader($ua)
    {
        if (
preg_match('/EBRD([0-9]+)/u'$ua$match)) {
            
$model null;

            switch (
$match[1]) {
                case 
'1101':
                    
$model 'PRS-T1';
                    break;
                case 
'1102':
                    
$model 'PRS-G1';
                    break;
                case 
'1201':
                    
$model 'PRS-T2';
                    break;
                case 
'1301':
                    
$model 'PRS-T3';
                    break;
            }

            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'Sony',
                
'model'         =>  $model,
                
'series'        =>  'Reader',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);
        }
    }


    
/* PocketBook */

    
private function detectPocketbook($ua)
    {
        if (
preg_match('/PocketBook/([0-9]+)/u'$ua$match)) {
            
$model null;

            switch (
$match[1]) {
                case 
'515':
                    
$model 'Mini';
                    break;
                case 
'614':
                    
$model 'Basic 2';
                    break;
                case 
'622':
                    
$model 'Touch';
                    break;
                case 
'623':
                    
$model 'Touch Lux';
                    break;
                case 
'624':
                    
$model 'Basic Touch';
                    break;
                case 
'626':
                    
$model 'Touch Lux 2';
                    break;
                case 
'630':
                    
$model 'Sense';
                    break;
                case 
'631':
                    
$model 'Touch HD';
                    break;
                case 
'640':
                    
$model 'Aqua';
                    break;
                case 
'641':
                    
$model 'Aqua 2';
                    break;
                case 
'650':
                    
$model 'Ultra';
                    break;
                case 
'801':
                    
$model 'Color Lux';
                    break;
                case 
'840':
                    
$model 'InkPad';
                    break;
            }

            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'PocketBook',
                
'model'         =>  $model,
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);
        }
    }


    
/* iRiver */

    
private function detectIriver($ua)
    {
        if (
preg_match('/Iriver ;/u'$ua)) {
            
$this->data->os->reset();
            
$this->data->device->setIdentification([
                
'manufacturer'  =>  'iRiver',
                
'series'        =>  'Story',
                
'type'          =>  ConstantsDeviceType::EREADER
            
]);

            if (
preg_match('/EB07/u'$ua)) {
                
$this->data->device->model 'Story HD EB07';
                
$this->data->device->series null;
                
$this->data->device->generic false;
            }
        }
    }
}
Онлайн: 0
Реклама