All Downloads are FREE. Search and download functionalities are using the official Maven repository.

UserAgents.TV.yaml Maven / Gradle / Ivy

Go to download

A parsing and analyzing library to get information from a useragent string.

There is a newer version: 7.28.1
Show newest version
#
# Yet Another UserAgent Analyzer
# Copyright (C) 2013-2018 Niels Basjes
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#


config:

# Hybrid Broadcast Broadband TV

#According to HbbTV specification http://www.etsi.org/deliver/etsi_ts/102700_102799/102796/01.01.01_60/ts_102796v010101p.pdf the User-Agent shall include:
#HbbTV/1.1.1 (<capabilities>; [<vendorName>]; [<modelName>]; [<softwareVersion>]; [<hardwareVersion>]; <reserved>)

#7.3.2.4 HTTP User-Agent header
#All outgoing HTTP requests made on behalf of an Hybrid Broadcast Broadband TV application shall include a
#User-Agent header using the syntax described in this clause.
#The User-Agent header shall include:
#HbbTV/1.1.1 (<capabilities>; [<vendorName>]; [<modelName>]; [<softwareVersion>];
#[<hardwareVersion>]; <reserved>)
#Where:
#• The <capabilities> field consists of zero or more concatenated Hybrid Broadcast Broadband TV option
#strings as defined in clause 10.2.4.
#• The <vendorName>, <modelName>, <softwareVersion> and <hardwareVersion> fields are the same as the one
#defined in the application/oipfRemoteManagement object in the OIPF DAE specification [2] and are
#optional.
#• The <reserved> field is reserved for future extensions.
#
#10.2.4 Hybrid Broadcast Broadband TV option strings
#The strings defined in this clause shall be used to indicate which options are supported by a terminal. They shall be used
#in the HTTP User-Agent header for applications data retrieval through HTTP and as parameters of a JavaScript API to
#dynamically query the options supported by the terminal.
#NOTE: Some of the strings defined in the clause intentionally match with the "UI Profile Name Fragment" strings
#defined in the OIPF DAE specification [2].
#Table 16: Hybrid Broadcast Broadband TV Option Strings
#Option string Meaning
#"+DL" Support for file download feature
#"+PVR" Support for PVR feature
#"+RTSP" Support for RTSP streaming feature

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"'
    extract:
    - 'DeviceClass           : 1000:"TV"'
    - 'DeviceBrand           :  101:"Unspecified TV"'
    - 'DeviceName            :  101:"Unspecified TV"'
    - 'OperatingSystemClass  : 1000:"Embedded"'
    - 'OperatingSystemName   :    1:"Proprietary"'

- matcher:
    extract:
    - 'DeviceBrand           : 1000:NormalizeBrand[agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"^.(1)comments.(2)entry!=""]'

- matcher:
    extract:
    - 'DeviceName            : 1000:agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"^.(1)comments.(3)entry!=""'

- matcher:
    extract:
    - 'OperatingSystemVersion: 1000:agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"^.(1)comments.(4)entry!=""'

- matcher:
    extract:
    - 'OperatingSystemName   : 1001:agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"^.(1)comments.(4)entry.product.name'
    - 'OperatingSystemVersion: 1001:agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"^.(1)comments.(4)entry.product.version'

# -----------------
- matcher:
    require:
    - 'agent.product.(1)name="HbbTV"'
    extract:
    - 'DeviceClass           : 1000:"TV"'
    - 'DeviceBrand           :  101:"Unspecified TV"'
    - 'DeviceName            :  101:"Unspecified TV"'
    - 'OperatingSystemClass  : 1000:"Embedded"'
    - 'OperatingSystemName   :    1:"Proprietary"'

- matcher:
    extract:
    - 'DeviceBrand           : 1000:NormalizeBrand[agent.product.(1)name="HbbTV"^.(1)comments.(2)entry!=""]'

- matcher:
    extract:
    - 'DeviceName            : 1000:agent.product.(1)name="HbbTV"^.(1)comments.(3)entry!=""'

- matcher:
    extract:
    - 'OperatingSystemVersion: 1000:agent.product.(1)name="HbbTV"^.(1)comments.(4)entry!=""'

- matcher:
    extract:
    - 'OperatingSystemName   : 1001:agent.product.(1)name="HbbTV"^.(1)comments.(4)entry.product.name'
    - 'OperatingSystemVersion: 1001:agent.product.(1)name="HbbTV"^.(1)comments.(4)entry.product.version'


# -----------------

- matcher:
    variable:
    - 'Language: agent.(1)product.(1)comments.(1-5)entry.(1-5)product.(1)name="Config"^.comments.(1-2)entry.(1)keyvalue.(1)key="L"^.text'
    extract:
    - 'AgentLanguageCode :  10:LookUp[ISOLanguageCodes;@Language]'
    - 'AgentLanguage     :  10:LookUp[ISOLanguageCodesName;@Language]'

- matcher:
    variable:
    - 'Language: agent.(1)product.(1)comments.(1-5)entry.(1-5)product.(1)name="Config"^.comments.(1-2)entry.(1)keyvalue.(1)key="L"^.text'
    extract:
    - 'AgentLanguageCode :  11:LookUp[ISOLanguageCodes3;@Language]'
    - 'AgentLanguage     :  11:LookUp[ISOLanguageCodes3Name;@Language]'

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry.(1-3)product.(1)name="HbbTV"'
    extract:
    - 'DeviceBrand           :  102:"Loewe"'
    - 'OperatingSystemName   : 1000:"LOH"'
    - 'OperatingSystemVersion: 1000:agent.(1)product.(1)comments.entry.(1-3)product.(1)name="LOH"^.version'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/4.0.2; en) Presto/2.10.250 Version/11.60'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Philips Unspecified TV'
      DeviceBrand                          : 'Philips'
      DeviceCpu                            : 'Mips'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.0.2'
      OperatingSystemNameVersion           : 'NETTV 4.0.2'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.10.250'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.10.250'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.60'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.60'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; U; HbbTV/1.1.1 (+PVR; Loewe; SL150; LOH/3.10;;) CE-HTML/1.0 Config(L:nld,CC:NLD); en) Presto/2.10.250 Version/11.60'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL150'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '3.10'
      OperatingSystemNameVersion           : 'LOH 3.10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.10.250'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.10.250'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.60'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.60'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; TechniSat; TechniCorder ISIO STC; ; ; ); CE-HTML/1.0 (); TechniSat TechniCorder ISIO STC BCM1 STB; de) Presto/2.9.167 Version/11.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'TechniSat TechniCorder Isio STC'
      DeviceBrand                          : 'TechniSat'
      DeviceCpu                            : 'Mips'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'Mips'
      OperatingSystemNameVersion           : 'Linux Mips'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.9.167'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.9.167'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.50'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.50'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'German'
      AgentLanguageCode                    : 'de'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux i686; HbbTV/1.1.1 (+PVR+DRM; BANGOLUFSEN; A3; ; ; ) CE-HTML/1.0 NETTV/4.3.9) Presto/2.12.407 Version/12.50 A3/1.0.8.36666 (BANGOLUFSEN, A3, wireless)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Bangolufsen A3'
      DeviceBrand                          : 'Bangolufsen'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.3.9'
      OperatingSystemNameVersion           : 'NETTV 4.3.9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; U; HbbTV/1.1.1(;;;;;); CE-HTML; TechniSat DIGIT ISIO S; en) Presto/2.8.115 Version/11.10'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Unspecified TV'
      DeviceBrand                          : 'Unspecified TV'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'SH4'
      OperatingSystemNameVersion           : 'Linux SH4'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.8.115'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.8.115'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.10'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.10'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry="SMART-TV"'
    extract:
    - 'DeviceClass               : 500 :"TV"'
    - 'DeviceBrand               : 500 :"Samsung"'
    - 'DeviceName                : 500 :"Smart TV"'
    - 'OperatingSystemClass      : 500 :"Embedded"'
    - 'OperatingSystemName       : 500 :"Linux"'
    - 'OperatingSystemVersion    : 500 :"SmartTV"'

#My TV
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (SmartHub; SMART-TV; U; Linux/SmartTV) AppleWebKit/531.2+ (KHTML, like Gecko) WebBrowser/1.0 SmartTV Safari/531.2+'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Samsung Smart TV'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'SmartTV'
      OperatingSystemNameVersion           : 'Linux SmartTV'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'AppleWebKit'
      LayoutEngineVersion                  : '531.2'
      LayoutEngineVersionMajor             : '531'
      LayoutEngineNameVersion              : 'AppleWebKit 531.2'
      LayoutEngineNameVersionMajor         : 'AppleWebKit 531'
      AgentClass                           : 'Browser'
      AgentName                            : 'WebBrowser'
      AgentVersion                         : '1.0'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'WebBrowser 1.0'
      AgentNameVersionMajor                : 'WebBrowser 1'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Mozilla/5.0 (SMART-TV; X11; Linux i686) AppleWebKit/535.20+ (KHTML, like Gecko) Version/5.0 Safari/535.20+'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Samsung Smart TV'
      DeviceBrand                          : 'Samsung'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'SmartTV'
      OperatingSystemNameVersion           : 'Linux SmartTV'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'AppleWebKit'
      LayoutEngineVersion                  : '535.20'
      LayoutEngineVersionMajor             : '535'
      LayoutEngineNameVersion              : 'AppleWebKit 535.20'
      LayoutEngineNameVersionMajor         : 'AppleWebKit 535'
      AgentClass                           : 'Browser'
      AgentName                            : 'Safari'
      AgentVersion                         : '5.0'
      AgentVersionMajor                    : '5'
      AgentNameVersion                     : 'Safari 5.0'
      AgentNameVersionMajor                : 'Safari 5'

- matcher:
    extract:
    - 'OperatingSystemClass      : 501 :"Embedded"'
    - 'OperatingSystemName       : 501 :"Tizen"'
    - 'OperatingSystemVersion    : 501 :agent.(1)product.(1)comments.entry.product.name="Tizen"^.version'

- test:
    input:
      user_agent_string: 'Mozilla/5.0 (SMART-TV; Linux; Tizen 2.3) AppleWebkit/538.1 (KHTML, like Gecko) SamsungBrowser/1.0 TV Safari/538.1'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Samsung Smart TV'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Tizen'
      OperatingSystemVersion               : '2.3'
      OperatingSystemNameVersion           : 'Tizen 2.3'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'AppleWebKit'
      LayoutEngineVersion                  : '538.1'
      LayoutEngineVersionMajor             : '538'
      LayoutEngineNameVersion              : 'AppleWebKit 538.1'
      LayoutEngineNameVersionMajor         : 'AppleWebKit 538'
      AgentClass                           : 'Browser'
      AgentName                            : 'SamsungBrowser'
      AgentVersion                         : '1.0'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'SamsungBrowser 1.0'
      AgentNameVersionMajor                : 'SamsungBrowser 1'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; U; HbbTV/1.1.1 (+PVR; Loewe; SL150; LOH/3.10;;) CE-HTML/1.0 Config(L:nld,CC:NLD); en) Presto/2.10.250 Version/11.60'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL150'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '3.10'
      OperatingSystemNameVersion           : 'LOH 3.10'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.10.250'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.10.250'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.60'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.60'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; HbbTV/1.2.1 (+PVR; LOEWE; SL22x; LOH/2.4.35.0;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL22X'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '2.4.35.0'
      OperatingSystemNameVersion           : 'LOH 2.4.35.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; HbbTV/1.2.1 (+PVR; Loewe; SL22x; LOH/2.4.44.0;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL22X'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '2.4.44.0'
      OperatingSystemNameVersion           : 'LOH 2.4.44.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux i686; HbbTV/1.1.1 (+PVR+DRM; BANGOLUFSEN; A3; ; ; ) CE-HTML/1.0 NETTV/4.3.9) Presto/2.12.407 Version/12.50 A3/1.0.8.36666 (BANGOLUFSEN, A3, wired)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Bangolufsen A3'
      DeviceBrand                          : 'Bangolufsen'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.3.9'
      OperatingSystemNameVersion           : 'NETTV 4.3.9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'



- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux armv7l; LOEWE-SL32x/1.1.6.27 HbbTV/1.1.1 (; LOEWE; SL32x; LOH/1.1.6.27;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.51'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL32X'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'ARMv7l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '1.1.6.27'
      OperatingSystemNameVersion           : 'LOH 1.1.6.27'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.51'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.51'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; HbbTV/1.2.1 (;Sharp;LE652;v0.2.6.3;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Sharp LE652'
      DeviceBrand                          : 'Sharp'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'v0.2.6.3'
      OperatingSystemNameVersion           : 'Linux v0.2.6.3'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux mips; U; HBBTV/1.0; LOH/2.01; CE-HTML/1.0 Config(L:de,CC:DE); en) Presto/2.8.115 Version/11.10'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe Unspecified TV'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'Mips'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '2.01'
      OperatingSystemNameVersion           : 'LOH 2.01'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.8.115'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.8.115'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.10'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.10'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'German'
      AgentLanguageCode                    : 'de'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux i686; HbbTV/1.1.1 (+PVR+DRM; BANGOLUFSEN; A3; ; ; ) CE-HTML/1.0 NETTV/4.3.9) Presto/2.12.407 Version/12.50 A3/1.0.8.36550 (BANGOLUFSEN, A3, wireless)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Bangolufsen A3'
      DeviceBrand                          : 'Bangolufsen'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.3.9'
      OperatingSystemNameVersion           : 'NETTV 4.3.9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'


- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; HbbTV/1.2.1 (;Sharp;LE752;v0.2.4.9;;) CE-HTML/1.0 Config(L:fra,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Sharp LE752'
      DeviceBrand                          : 'Sharp'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'v0.2.4.9'
      OperatingSystemNameVersion           : 'Linux v0.2.4.9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'French'
      AgentLanguageCode                    : 'fra'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux sh4; HbbTV/1.2.1 (+PVR; Loewe; SL210; LOH/10.2.3.25;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.362 Version/12.10'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL210'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'SH4'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '10.2.3.25'
      OperatingSystemNameVersion           : 'LOH 10.2.3.25'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.362'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.362'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.10'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.10'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

# This is actually a Sat Receiver: https://www.technisat.com/de_DE/DIGIT-ISIO-S2/352-1637-9910/
- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (; TechniSat; Digit ISIO S2; ; ; ); CE-HTML/1.0 (); TechniSat Digit ISIO S2 BCM1 STB; nl) Presto/2.9.167 Version/11.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'TechniSat Digit Isio S2'
      DeviceBrand                          : 'TechniSat'
      DeviceCpu                            : 'Mips'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'Mips'
      OperatingSystemNameVersion           : 'Linux Mips'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.9.167'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.9.167'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.50'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.50'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nl'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux mips; U; HbbTV/1.1.1 (+DL+PVR+RTSP+DRM; ; ; ; ;); en) Presto/2.8.115 Version/11.10'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Unspecified TV'
      DeviceBrand                          : 'Unspecified TV'
      DeviceCpu                            : 'Mips'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'Mips'
      OperatingSystemNameVersion           : 'Linux Mips'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.8.115'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.8.115'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.10'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.10'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux i686; HbbTV/1.1.1 (+PVR+DRM; BANGOLUFSEN; A3; ; ; ) CE-HTML/1.0 NETTV/4.3.9) Presto/2.12.407 Version/12.50 A3/1.0.8.36666 (BANGOLUFSEN, A3, wireless)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Bangolufsen A3'
      DeviceBrand                          : 'Bangolufsen'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.3.9'
      OperatingSystemNameVersion           : 'NETTV 4.3.9'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux armv7l; LOEWE-SL32x/1.1.6.27 HbbTV/1.1.1 (; LOEWE; SL32x; LOH/1.1.6.27;;) CE-HTML/1.0 Config(L:nld,CC:BEL) NETRANGEMMH) Presto/2.12.407 Version/12.51'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Loewe SL32X'
      DeviceBrand                          : 'Loewe'
      DeviceCpu                            : 'ARMv7l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'LOH'
      OperatingSystemVersion               : '1.1.6.27'
      OperatingSystemNameVersion           : 'LOH 1.1.6.27'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.51'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.51'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'Dutch'
      AgentLanguageCode                    : 'nld'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux armv6l; U; NETRANGEMMH;HbbTV/1.1.1;CE-HTML/1.0;PEAQ LF1V368; en) Presto/2.10.250 Version/11.60'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Unspecified TV'
      DeviceBrand                          : 'Unspecified TV'
      DeviceCpu                            : 'ARMv6l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : 'ARMv6l'
      OperatingSystemNameVersion           : 'Linux ARMv6l'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.10.250'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.10.250'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '11.60'
      AgentVersionMajor                    : '11'
      AgentNameVersion                     : 'Opera 11.60'
      AgentNameVersionMajor                : 'Opera 11'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- matcher:
    extract:
    - 'DeviceFirmwareVersion : 1000:agent.(1)product.(1)comments.(1-9)entry.product.(1)comments.(1-9)entry.product.(1)name="Firmware"^.version'

- matcher:
    extract:
    - 'DeviceFirmwareVersion : 1000:agent.(1)product.(1)comments.(1-9)entry.product.(1)name="Firmware"^.version'

- matcher:
    extract:
    - 'DeviceClass                          :   10 :"TV"'
    - 'DeviceBrand                          :   10 :"Unspecified TV"'
    - 'DeviceName                           :   10 :"Unspecified TV"'
    - 'OperatingSystemClass                 : 1000:"Embedded"'
    - 'OperatingSystemName                  : 1000:"NETTV"'
    - 'OperatingSystemVersion               : 1000:agent.(1-3)product.(1)comments.(1-4)entry.product.(1)comments.(1-9)entry.product.(1)name="NETTV"^.version'

- matcher:
    extract:
    - 'DeviceClass                          :   10:"TV"'
    - 'DeviceBrand                          :   10:"Unspecified TV"'
    - 'DeviceName                           :   10:"Unspecified TV"'
    - 'OperatingSystemClass                 : 1000:"Embedded"'
    - 'OperatingSystemName                  : 1000:"NETTV"'
    - 'OperatingSystemVersion               : 1000:agent.(1-3)product.(1)comments.(1-9)entry.product.(1)name="NETTV"^.version'

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry.(1)product.(1)name="HbbTV"'
    extract:
    - 'DeviceClass                          :   10:"TV"'
    - 'DeviceBrand                          :   10:"Unspecified TV"'
    - 'DeviceName                           :   10:"Unspecified TV"'
    - 'OperatingSystemClass                 : 1000:"Embedded"'
    - 'OperatingSystemName                  :    1:"Proprietary"'

- matcher:
    require:
    - 'agent.product.(1)name="PhilipsWebKit"'
    extract:
    - 'DeviceClass                          :   20:"TV"'
    - 'DeviceBrand                          :   20:"Philips"'
    - 'DeviceName                           :  400 :"Unspecified TV"'


- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux armv7l; HbbTV/1.2.1 (; Philips; 47PFT560912; ; PHILIPSTV;  CE-HTML/1.0 NETTV/4.4.1 SmartTvA/3.0.0 Firmware/010.003.002.128 (PhilipsTV, 3.1.1,)en) ) Presto/2.12.407 Version/12.50'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Philips 47PFT560912'
      DeviceBrand                          : 'Philips'
      DeviceCpu                            : 'ARMv7l'
      DeviceCpuBits                        : '32'
      DeviceFirmwareVersion                : '010.003.002.128'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.4.1'
      OperatingSystemNameVersion           : 'NETTV 4.4.1'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.12.407'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.12.407'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.50'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.50'
      AgentNameVersionMajor                : 'Opera 12'

# Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092811
# Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754
# Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/b70199

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry.product.(1)name="NETTV"'
    extract:
    - 'OperatingSystemClass  :  100:"Embedded"'
    - 'DeviceClass           :  100:"TV"'
    - 'DeviceName            :  100:"NetTV Device"'
    - 'DeviceBrand           :  100:"Unknown"'

- test:
    input:
      user_agent_string: 'Opera/9.80 (Linux armv7l; U;  CE-HTML/1.0 NETTV/4.1.1; en) Presto/2.10.287 Version/12.00'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Nettv Device'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'ARMv7l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '4.1.1'
      OperatingSystemNameVersion           : 'NETTV 4.1.1'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '2.10.287'
      LayoutEngineVersionMajor             : '2'
      LayoutEngineNameVersion              : 'Presto 2.10.287'
      LayoutEngineNameVersionMajor         : 'Presto 2'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '12.00'
      AgentVersionMajor                    : '12'
      AgentNameVersion                     : 'Opera 12.00'
      AgentNameVersionMajor                : 'Opera 12'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.70 (Linux armv6l ; U; CE-HTML/1.0 NETTV/2.0.2; en) Presto/2.2.1'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Nettv Device'
      DeviceBrand                          : 'Unknown'
      DeviceCpu                            : 'ARMv6l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '2.0.2'
      OperatingSystemNameVersion           : 'NETTV 2.0.2'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '1'
      LayoutEngineVersionMajor             : '1'
      LayoutEngineNameVersion              : 'Presto 1'
      LayoutEngineNameVersionMajor         : 'Presto 1'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '9.70'
      AgentVersionMajor                    : '9'
      AgentNameVersion                     : 'Opera 9.70'
      AgentNameVersionMajor                : 'Opera 9'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- test:
    input:
      user_agent_string: 'Opera/9.80 WebKit/1.6.3 (CE-HTML/1.0 NETTV 3.3.0 PHILIPS-AVM-2012) PhilipsWebKit/535.4'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Philips Unspecified TV'
      DeviceBrand                          : 'Philips'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '3.3.0'
      OperatingSystemNameVersion           : 'NETTV 3.3.0'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Presto'
      LayoutEngineVersion                  : '1'
      LayoutEngineVersionMajor             : '1'
      LayoutEngineNameVersion              : 'Presto 1'
      LayoutEngineNameVersionMajor         : 'Presto 1'
      AgentClass                           : 'Browser'
      AgentName                            : 'Opera'
      AgentVersion                         : '9.80'
      AgentVersionMajor                    : '9'
      AgentNameVersion                     : 'Opera 9.80'
      AgentNameVersionMajor                : 'Opera 9'

- matcher:
    extract:
    - 'DeviceClass           :   500:"TV"' # Well, it is really a video playback device...
    - 'DeviceBrand           :   500:"Philips"'
    - 'DeviceName            :   500:agent.product.(1)name[-2]="PHILIPS-AVM"^.comments.(2)entry.text'
    - 'DeviceVersion         :   500:agent.product.(1)name[-2]="PHILIPS-AVM"^.version'

- test:
    input:
      user_agent_string: 'WebKit/4.2.5, (CE-HTML/1.0 NETTV/3.3.0 NewB) PHILIPS-AVM-2013/1.35 (Philips, BDP5700, wireless)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Philips BDP5700,'
      DeviceBrand                          : 'Philips'
      DeviceVersion                        : '1.35'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'NETTV'
      OperatingSystemVersion               : '3.3.0'
      OperatingSystemNameVersion           : 'NETTV 3.3.0'
      LayoutEngineClass                    : 'Unknown'
      LayoutEngineName                     : 'Unknown'
      LayoutEngineVersion                  : '??'
      LayoutEngineVersionMajor             : '??'
      AgentClass                           : 'Special'
      AgentName                            : 'WebKit'
      AgentVersion                         : '4.2.5,'
      AgentVersionMajor                    : '4'
      AgentNameVersion                     : 'WebKit 4.2.5,'
      AgentNameVersionMajor                : 'WebKit 4'

# WebKit/4.1.9, (CE-HTML/1.0 NETTV/3.3.0 NewB) PHILIPS-AVM-2013/1.16 (Philips, HTB5260G, wireless)
# WebKit/3.9.4, (CE-HTML/1.0 NETTV/3.3.0 NewB) PHILIPS-AVM-2013/1.30 (Philips, BDP7750, wireless)
#
# Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.33 Safari/537.31 SmartTV/5.0
# Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4 SmartTV/4.6

#
# Opera/9.80 (Linux armv7l; HbbTV/1.2.1 (; Philips; 32PFK550912; ; PHILIPSTV;  CE-HTML/1.0 NETTV/4.4.1 SmartTvA/3.0.0 Firmware/010.002.016.128 (PhilipsTV, 3.1.1,)en) ) Presto/2.12.407 Version/12.50
# Opera/9.80 (Linux armv7l; HbbTV/1.2.1 (; Philips; 32PFK550912; ; PHILIPSTV;  CE-HTML/1.0 NETTV/4.4.1 SmartTvA/3.0.0 Firmware/010.002.036.128 (PhilipsTV, 3.1.1,)en) ) Presto/2.12.407 Version/12.50
#
# Opera/9.80 (Linux armv7l; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KD55X9005A; CC/BEL) Presto/2.12.362 Version/12.11
# Opera/9.80 (Linux armv7l; InettvBrowser/2.2 (00014A;SonyDTV115;0002;0100) KDL32W605A; CC/BRA) Presto/2.12.362 Version/12.11
#
# Opera/9.80 (Linux armv7l; LOEWE-SL32x/1.1.6.27 HbbTV/1.1.1 (; LOEWE; SL32x; LOH/1.1.6.27;;) CE-HTML/1.0 Config(L:nld,CC:BEL) NETRANGEMMH) Presto/2.12.407 Version/12.51
# Opera/9.80 (Linux armv7l; LOEWE-SL32x/1.1.6.27 HbbTV/1.1.1 (; LOEWE; SL32x; LOH/1.1.6.27;;) CE-HTML/1.0 Config(L:nld,CC:NLD) NETRANGEMMH) Presto/2.12.407 Version/12.51
# Opera/9.80 (Linux armv7l ; U; CE-HTML/1.0 NETTV/3.2.2; en) Presto/2.6.33 Version/10.60
# Opera/9.80 (Linux armv7l; U; CE-HTML/1.0 NETTV/3.3.0; PHILIPS-AVM-2012; en) Presto/2.9.167 Version/11.50
#
# Opera/9.80 (Linux i686; HbbTV/1.1.1 (+PVR+DRM; BANGOLUFSEN; A3; ; ; ) CE-HTML/1.0 NETTV/4.3.9) Presto/2.12.407 Version/12.50 A3/1.0.8.36666 (BANGOLUFSEN, A3, wired)
# Opera/9.80 (Linux mips ; U; HbbTV/1.1.1 (; Philips; ; ; ; ) CE-HTML/1.0 NETTV/3.1.0; en) Presto/2.6.33 Version/10.70
# Opera/9.80 (Linux sh4; HbbTV/1.2.1 (+PVR; Loewe; SL210; LOH/10.2.3.25;;) CE-HTML/1.0 Config(L:nld,CC:BEL) NETRANGEMMH) Presto/2.12.362 Version/12.10

- test:
    input:
      user_agent_string: '(Linux armv7l ; U; HbbTV/1.1.1 (; TOSHIBA; 32SL863; 19.2.39.208; 3; ) ; ToshibaTP/1.1.1 () ; en)'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Toshiba 32SL863'
      DeviceBrand                          : 'Toshiba'
      DeviceCpu                            : 'ARMv7l'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '19.2.39.208'
      OperatingSystemNameVersion           : 'Linux 19.2.39.208'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Mozilla'
      LayoutEngineVersion                  : '5.0'
      LayoutEngineVersionMajor             : '5'
      LayoutEngineNameVersion              : 'Mozilla 5.0'
      LayoutEngineNameVersionMajor         : 'Mozilla 5'
      AgentClass                           : 'Browser'
      AgentName                            : 'Linux'
      AgentVersion                         : 'armv7l'
      AgentVersionMajor                    : 'armv7l'
      AgentNameVersion                     : 'Linux armv7l'
      AgentNameVersionMajor                : 'Linux armv7l'
      AgentLanguage                        : 'English'
      AgentLanguageCode                    : 'en'
      AgentSecurity                        : 'Strong security'

- matcher:
    extract:
    - 'DeviceClass           :   101:"TV"'
    - 'DeviceName            :    50:"SmartTV"'
    - 'AgentClass            :    50:"Browser"'
    - 'AgentName             :    50:"SmartTV"'
    - 'AgentVersion          :    50:agent.product.name="SmartTV"^.version'

- test:
    input:
      user_agent_string: 'Mozilla/5.0 (Linux; NetCast) AppleWebKit/537.31 (KHTML, licke Gecko) Chrome/26.0.1410.33 Safari/537.31  SmartTV/5.0'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'SmartTv'
      DeviceBrand                          : 'Unknown'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '??'
      OperatingSystemNameVersion           : 'Linux ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'AppleWebKit'
      LayoutEngineVersion                  : '537.31'
      LayoutEngineVersionMajor             : '537'
      LayoutEngineNameVersion              : 'AppleWebKit 537.31'
      LayoutEngineNameVersionMajor         : 'AppleWebKit 537'
      AgentClass                           : 'Browser'
      AgentName                            : 'Chrome'
      AgentVersion                         : '26.0.1410.33'
      AgentVersionMajor                    : '26'
      AgentNameVersion                     : 'Chrome 26.0.1410.33'
      AgentNameVersionMajor                : 'Chrome 26'

- test:
    input:
      user_agent_string: 'Mozilla/5.0 (X11; Linux i686; rv:17.0 ) U; HbbTV/1.1.1 (; TOSHIBA; 32SL863; 19.2.39.208; 3; ) ; ToshibaTP/1.1.1 () ; en)  OPR/20.0.1387.24'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Toshiba 32SL863'
      DeviceBrand                          : 'Toshiba'
      DeviceCpu                            : 'Intel i686'
      DeviceCpuBits                        : '32'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Linux'
      OperatingSystemVersion               : '19.2.39.208'
      OperatingSystemNameVersion           : 'Linux 19.2.39.208'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Mozilla'
      LayoutEngineVersion                  : '5.0'
      LayoutEngineVersionMajor             : '5'
      LayoutEngineNameVersion              : 'Mozilla 5.0'
      LayoutEngineNameVersionMajor         : 'Mozilla 5'
      AgentClass                           : 'Browser'
      # NOTE: The syntax error ( "rv:17.0 ) U;" should be "rv:17.0 ; U;") causes the last part of the tree to "fall off" so the actual browser (OPR=Opera) goes missing.
      AgentName                            : 'HbbTV'
      AgentVersion                         : '1.1.1'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'HbbTV 1.1.1'
      AgentNameVersionMajor                : 'HbbTV 1'

- test:
    input:
      user_agent_string: 'HbbTV/1.1.1 (;Samsung;SmartTV2013;T-FXPDEUC-1102.2;;) WebKit'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Samsung SMARTTV2013'
      DeviceBrand                          : 'Samsung'
      OperatingSystemClass                 : 'Embedded'
      OperatingSystemName                  : 'Proprietary'
      OperatingSystemVersion               : 'T-FXPDEUC-1102.2'
      OperatingSystemNameVersion           : 'Proprietary T-FXPDEUC-1102.2'
      LayoutEngineClass                    : 'Unknown'
      LayoutEngineName                     : 'Unknown'
      LayoutEngineVersion                  : '??'
      LayoutEngineVersionMajor             : '??'
      AgentClass                           : 'Special'
      AgentName                            : 'HbbTV'
      AgentVersion                         : '1.1.1'
      AgentVersionMajor                    : '1'
      AgentNameVersion                     : 'HbbTV 1.1.1'
      AgentNameVersionMajor                : 'HbbTV 1'


# http://thadafinser.github.io/UserAgentParserComparison/v4/user-agent-detail/ce/71/ce710618-578f-4c06-bb21-240e261b3ca5.html
# Apparently Panasonic Viera 2015 television
#
- test:
    input:
      user_agent_string: 'Mozilla/5.0 (FreeBSD; Viera; rv:34.0) Gecko/20100101 Firefox/34.0'
    expected:
      DeviceClass                          : 'TV'
      DeviceName                           : 'Panasonic Viera'
      DeviceBrand                          : 'Panasonic'
      OperatingSystemClass                 : 'Desktop'
      OperatingSystemName                  : 'FreeBSD'
      OperatingSystemVersion               : '??'
      OperatingSystemNameVersion           : 'FreeBSD ??'
      LayoutEngineClass                    : 'Browser'
      LayoutEngineName                     : 'Gecko'
      LayoutEngineVersion                  : '34.0'
      LayoutEngineVersionMajor             : '34'
      LayoutEngineNameVersion              : 'Gecko 34.0'
      LayoutEngineNameVersionMajor         : 'Gecko 34'
      LayoutEngineBuild                    : '20100101'
      AgentClass                           : 'Browser'
      AgentName                            : 'Firefox'
      AgentVersion                         : '34.0'
      AgentVersionMajor                    : '34'
      AgentNameVersion                     : 'Firefox 34.0'
      AgentNameVersionMajor                : 'Firefox 34'

- matcher:
    require:
    - 'agent.(1)product.(1)comments.entry.(1)text="Viera"'
    extract:
    - 'DeviceClass           :   200:"TV"'
    - 'DeviceName            :   200:"Panasonic Viera"'
    - 'DeviceBrand           :   200:"Panasonic"'






© 2015 - 2024 Weber Informatics LLC | Privacy Policy