private function detectLgTelevision($ua)
{
if (preg_match('/(LGSmartTV|LG smartTV)/u', $ua)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'Smart TV';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
}
if (preg_match('/UPLUSTVBROWSER/u', $ua)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'U+ tv';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
}
/* NetCast */
if (preg_match('/LG NetCast\\.(TV|Media)-([0-9]*)/u', $ua, $match)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'NetCast ' . $match[1] . ' ' . $match[2];
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
if (preg_match('/LG Browser\\/[0-9.]+\\([^;]+; LGE; ([^;]+);/u', $ua, $match)) {
if (substr($match[1], 0, 6) != 'GLOBAL' && substr($match[1], 0, 7) != 'NETCAST') {
$this->data->device->model = $match[1];
}
}
}
/* NetCast */
if ($ua == "Mozilla/5.0 (X11; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+" || $ua == "Mozilla/5.0 (DirectFB; Linux; ko-KR) AppleWebKit/534.26 (KHTML, like Gecko) Version/5.0 Safari/534.26" || $ua == "Mozilla/5.0 (DirectFB; Linux; ko-KR) AppleWebKit/534.26+ (KHTML, like Gecko) Version/5.0 Safari/534.26+") {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'NetCast TV 2012';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
}
/* NetCast or WebOS */
if (preg_match('/NetCast/u', $ua) && preg_match('/SmartTV\\/([0-9])/u', $ua, $match)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
if (intval($match[1]) < 5) {
$this->data->device->series = 'NetCast TV';
} else {
$this->data->device->series = 'webOS TV';
$this->data->os->reset(['name' => 'webOS', 'hidden' => true]);
}
}
/* WebOS */
if (preg_match('/Web[O0]S/u', $ua) && preg_match('/Large Screen/u', $ua)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'webOS TV';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
$this->data->os->reset(['name' => 'webOS', 'hidden' => true]);
}
if (preg_match('/Web[O0]S; Linux\\/SmartTV/u', $ua)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'webOS TV';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
$this->data->os->reset(['name' => 'webOS', 'hidden' => true]);
}
if (preg_match('/webOS\\.TV-([0-9]+)/u', $ua, $match)) {
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'webOS TV';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
if (preg_match('/LG Browser\\/[0-9.]+\\(LGE; ([^;]+);/u', $ua, $match)) {
if (strtoupper(substr($match[1], 0, 5)) != 'WEBOS') {
$this->data->device->model = $match[1];
}
}
$this->data->os->reset(['name' => 'webOS', 'hidden' => true]);
}
if (preg_match('/PBRM\\//u', $ua)) {
$this->data->browser->name = "Pro:Centric";
$this->data->browser->version = null;
$this->data->device->manufacturer = 'LG';
$this->data->device->series = 'webOS TV';
$this->data->device->type = Constants\DeviceType::TELEVISION;
$this->data->device->identified |= Constants\Id::MATCH_UA;
if (preg_match('/PBRM\\/[0-9.]+ \\( ;LGE ;([^;]+) ;/u', $ua, $match)) {
if (strtoupper(substr($match[1], 0, 5)) != 'WEBOS') {
$this->data->device->model = $match[1];
}
}
$this->data->os->reset(['name' => 'webOS', 'hidden' => true]);
}
}