From 4d960d26cde47fce137549b5aab3a54e423d2565 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 12 Feb 2020 11:45:52 +0100 Subject: [PATCH 001/540] Add Chrome 80 --- data/browsers-chrome.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index a8a0dfccf..f26b2667a 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -84,6 +84,7 @@ '77.0.3865' => 'stable', '78.0.3904' => 'stable', '79.0.3945' => 'stable', + '80.0.3987' => 'stable', ]; Chrome::$MOBILE = [ @@ -142,4 +143,5 @@ '77.0.3865' => 'stable', '78.0.3904' => 'stable', '79.0.3945' => 'stable', + '80.0.3987' => 'stable', ]; From 4899110cd2f87b01e04ced62dbb9dec541031dee Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 12 Feb 2020 11:54:23 +0100 Subject: [PATCH 002/540] Add Galaxy Z Flip and Galaxy S20 series phones --- data/models-android.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/data/models-android.php b/data/models-android.php index d78ae7ee9..f9a82c5ef 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -13312,6 +13312,7 @@ ], 'SM-F[0-9]{3,3}!!' => [ + 'SM-F700!' => [ 'Samsung', 'Galaxy Z Flip' ], 'SM-F900!' => [ 'Samsung', 'Galaxy Fold' ], ], @@ -13409,11 +13410,11 @@ 'SM-G973!' => [ 'Samsung', 'Galaxy S10' ], 'SM-G975!' => [ 'Samsung', 'Galaxy S10 Plus' ], 'SM-G977!' => [ 'Samsung', 'Galaxy S10 5G' ], - 'SM-G980!' => [ 'Samsung', 'Galaxy S11e' ], - 'SM-G981!' => [ 'Samsung', 'Galaxy S11e' ], - 'SM-G985!' => [ 'Samsung', 'Galaxy S11' ], - 'SM-G986!' => [ 'Samsung', 'Galaxy S11 5G' ], - 'SM-G988!' => [ 'Samsung', 'Galaxy S11 Plus' ], + 'SM-G980!' => [ 'Samsung', 'Galaxy S20' ], + 'SM-G981!' => [ 'Samsung', 'Galaxy S20' ], + 'SM-G985!' => [ 'Samsung', 'Galaxy S20+' ], + 'SM-G986!' => [ 'Samsung', 'Galaxy S20+' ], + 'SM-G988!' => [ 'Samsung', 'Galaxy S20 Ultra' ], ], 'SM-I9500' => [ 'Samsung', 'Galaxy S4' ], From 7bb3d9c70c2a5aadb7a10fe9a52b44d04aa9d1c2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 16 Apr 2020 15:42:37 +0100 Subject: [PATCH 003/540] Correct Tao Bao Browser for taobao.com --- data/applications-browsers.php | 2 +- data/regexes/applications-browsers.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..9e25c17d9 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -218,7 +218,7 @@ [ 'name' => 'Snowshoe', 'id' => 'snowshoe', 'regexp' =>'/Snowshoe\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' =>'/Sputnik\/([0-9.]*)/iu', 'details' => 3 ], [ 'name' => 'Surf', 'id' => 'surf', 'regexp' =>'/Surf\/([0-9.]*)/u' ], - [ 'name' => 'TaoBrowser', 'id' => 'tao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Taobao browser', 'id' => 'taobao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TaomeeBrowser', 'id' => 'tao', 'regexp' =>'/TaomeeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TazWeb', 'id' => 'taz', 'regexp' =>'/TazWeb/u' ], [ 'name' => 'Uzbl', 'id' => 'uzbl', 'regexp' =>'/^Uzbl/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..d21c3bc53 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|taobao|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; From a58a7dd4d66dfec2d47f135dd30a7ddd84dfd7e2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 16 Apr 2020 15:45:03 +0100 Subject: [PATCH 004/540] typo (this repo using capitals as first letters) --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 9e25c17d9..24c66a592 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -218,7 +218,7 @@ [ 'name' => 'Snowshoe', 'id' => 'snowshoe', 'regexp' =>'/Snowshoe\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' =>'/Sputnik\/([0-9.]*)/iu', 'details' => 3 ], [ 'name' => 'Surf', 'id' => 'surf', 'regexp' =>'/Surf\/([0-9.]*)/u' ], - [ 'name' => 'Taobao browser', 'id' => 'taobao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Taobao Browser', 'id' => 'taobao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TaomeeBrowser', 'id' => 'tao', 'regexp' =>'/TaomeeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TazWeb', 'id' => 'taz', 'regexp' =>'/TazWeb/u' ], [ 'name' => 'Uzbl', 'id' => 'uzbl', 'regexp' =>'/^Uzbl/u' ], From 7ba3990bbd86a7c3dece5e2f4f0ed4508b53275c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 10:48:56 +0100 Subject: [PATCH 005/540] Add Viber chat app to repo --- data/applications-others.php | 1 + data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..ca9b3d5d7 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,6 +72,7 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], + [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/ [Vv]iber/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..9a9056021 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|viber|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..da4d7734e 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Viber' + readable: 'Viber on a LeEco Le 2 X526 running Android 6.0.1' + result: { browser: { name: Viber, family: { name: Chrome, version: 56 }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } From 86e96e626ad848376cfe875b040cd79398a5995b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 10:57:26 +0100 Subject: [PATCH 006/540] Correct regex --- data/applications-others.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index ca9b3d5d7..e3eca1d70 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,7 +72,8 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], - [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/ [Vv]iber/u' ], + [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/ Viber/u' ], + [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/Viber\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], From e97fdf99aa591c374f5fb6d18cafd645c2ed5476 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 11:09:03 +0100 Subject: [PATCH 007/540] Add Line chat in-app to detection --- data/applications-others.php | 1 + data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..48182f267 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,6 +72,7 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], + [ 'name' => 'Line', 'id' => 'line', 'regexp' => '/ Line\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..a1e68d8e5 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|line|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..59d0cc8e7 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 Line/9.8.0' + result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 6 Plus' } } + readable: 'Line 9.8.0 on an Apple iPhone 6 Plus running iOS 8.1.2' From bdb920fb156f5e2b6f082b12009386dd57faf496 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 11:14:46 +0100 Subject: [PATCH 008/540] Correct test runner outcome --- tests/data/mobile/app-chat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 59d0cc8e7..f6e8a0537 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -85,4 +85,4 @@ - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 Line/9.8.0' result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 6 Plus' } } - readable: 'Line 9.8.0 on an Apple iPhone 6 Plus running iOS 8.1.2' + readable: 'Line 9.8.0 on an Apple iPhone running iOS 8.1.2' From 938cbf61e01877f250d6a5b9379ba166e3af9bad Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 11:26:23 +0100 Subject: [PATCH 009/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index f6e8a0537..8f2b67ee0 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -84,5 +84,5 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 Line/9.8.0' - result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 6 Plus' } } + result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone' } } readable: 'Line 9.8.0 on an Apple iPhone running iOS 8.1.2' From 23520edcf2cacc8fa8a738df08aafe305f6d8270 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 12:53:16 +0100 Subject: [PATCH 010/540] Add Kakao bot and browser --- data/applications-bots.php | 1 + data/applications-others.php | 2 ++ data/regexes/applications-bots.php | 2 +- data/regexes/applications-others.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ tests/data/mobile/app-chat.yaml | 4 ++++ 6 files changed, 13 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..581edea47 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -138,6 +138,7 @@ [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], + [ 'name' => 'KakaoTalk Crawler', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..9e16c6f5d 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -71,6 +71,8 @@ Constants\BrowserType::APP_CHAT => [ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], + [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK/u' ], + [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK ([0-9.]*)/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..53f9c6967 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..5af366a17 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..638cc2a28 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https: //devtalk.kakao.com/t/scrap/33984' + readable: 'xxx' + result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..d6703bf62 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B100 KAKAOTALK 5.9.2' + readable: 'KakaoTalk 5.9.2 on a Apple iPhone running iOS 10.1.1' + result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14 }, os: { name: IOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPhone } } From f97ef440cb8d4c216ac66e3ed8baf19d1e4110ba Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 12:59:23 +0100 Subject: [PATCH 011/540] Testrunner results --- data/applications-others.php | 2 +- tests/data/bots/generic.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/applications-others.php b/data/applications-others.php index 9e16c6f5d..fbffbff56 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -71,8 +71,8 @@ Constants\BrowserType::APP_CHAT => [ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], - [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK/u' ], [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK ([0-9.]*)/u' ], + [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 638cc2a28..771fde52a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -516,5 +516,5 @@ result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } - headers: 'User-Agent: Facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https: //devtalk.kakao.com/t/scrap/33984' - readable: 'xxx' - result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } + readable: 'KakaoTalk Crawler 1.0' + result: { browser: {name: 'KakaoTalk Crawler', version: '1.0' }, device: { type: bot } } From c8297961618ecb83feccbe2bd50041b47278d2cf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 13:03:31 +0100 Subject: [PATCH 012/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index d6703bf62..832e25767 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -84,5 +84,5 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B100 KAKAOTALK 5.9.2' - readable: 'KakaoTalk 5.9.2 on a Apple iPhone running iOS 10.1.1' + readable: 'KakaoTalk 5.9.2 on an Apple iPhone running iOS 10.1.1' result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14 }, os: { name: IOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPhone } } From 345c6fddee268f023ec6864b5983cbe1697e32a9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 13:09:36 +0100 Subject: [PATCH 013/540] typo --- tests/data/mobile/app-chat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 832e25767..71286c6d8 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -85,4 +85,4 @@ - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B100 KAKAOTALK 5.9.2' readable: 'KakaoTalk 5.9.2 on an Apple iPhone running iOS 10.1.1' - result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14 }, os: { name: IOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPhone } } + result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14}, os: { name: iOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple ,model: iPhone } } From 66766bbbc9992c305fd9b7fd84a3274b82b096f7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 13:28:55 +0100 Subject: [PATCH 014/540] Add Crusta browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..ab4e927b9 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -51,6 +51,7 @@ [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Crusta', 'id' => 'crusta', 'regexp' => '/ Crusta\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/Tarptaeya/Crusta [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..641626049 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|crusta|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5684b24fa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.10.1 Chrome/61.0.3163.140 Crusta/1.4.3 Safari/537.36' + readable: 'xxx' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From f1bbb747b5fbb41a1959cff13c1f9731f659b711 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 13:35:06 +0100 Subject: [PATCH 015/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5684b24fa..36da925d0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.10.1 Chrome/61.0.3163.140 Crusta/1.4.3 Safari/537.36' - readable: 'xxx' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Crusta 1.4.3 on Linux' + result: { browser: { name: Crusta, using: { name: Qt, version: 5.10.1 }, family: { name: Chrome, version: 61 }, version: 1.4.3, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } From 0eb61be1464cb89d7998a923975dcbe8c406307b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 14:20:38 +0100 Subject: [PATCH 016/540] Add Zalo Chat app to detection --- data/applications-others.php | 2 ++ data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..8ef99098a 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -76,6 +76,8 @@ [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/Zalo\-win32\-([0-9.]*)/u' ], + [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/ Zalo\/([0-9.]*)/u' ], ], Constants\BrowserType::APP_SOCIAL => [ diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..4281367e7 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|zalo|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..9c4d6a0da 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2;LG-F320S) AppleWebKit/537.36 (KHTML, like Gecko) Zalo/1.0 Safari/537.36' + readable: 'xxx' + result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } From cf9a75f3137436b0a4b5350a5272f1c9a65eb5ff Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 17 Apr 2020 14:32:54 +0100 Subject: [PATCH 017/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 9c4d6a0da..0fcfd853e 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -84,5 +84,5 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2;LG-F320S) AppleWebKit/537.36 (KHTML, like Gecko) Zalo/1.0 Safari/537.36' - readable: 'xxx' - result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } + readable: 'Zalo 1.0 on a LG G2 running Android 4.4.2' + result: { browser: { name: Zalo, version: '1.0', type: 'app:chat' }, engine: { name: Webkit, version: '537.36' }, os: { name: Android, version: 4.4.2 }, device: { type: mobile, subtype: smart, manufacturer: LG, model: G2 } } From fcd030c6dae38e80a639428b2173642e0c06d362 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 12:16:11 +0100 Subject: [PATCH 018/540] Kinza browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..2b4de7c0b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -69,6 +69,7 @@ [ 'name' => 'Iron', 'id' => 'iron', 'regexp' =>'/Iron\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com + [ 'name' => 'Kinza', 'id' => 'kinza', 'regexp' => '/ Kinza\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.kinza.jp/en/ [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..fbd4090bc 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|kinza|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..96e19629c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Kinza/6.1.6' + readable: 'Kinza 6.1.6 on Windows 10' + result: { browser: { name: Kinza, family: { name: Chrome, version: 80.0.3987.149 }, version: 6.1.6, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 2d813652679686d55deb795fa4a64e539256ff6f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 12:26:33 +0100 Subject: [PATCH 019/540] Aloha Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..0abfeb119 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -111,6 +111,7 @@ [ 'name' => '2345 Browser', 'id' => '2345', 'regexp' =>'/Mb2345Browser\/([0-9.]*)/u' ], [ 'name' => '3G Explorer', 'id' => '3g explorer', 'regexp' =>'/3G Explorer\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => '4G Explorer', 'id' => '4g explorer', 'regexp' =>'/4G Explorer\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Aloha Browser', 'id' => 'aloha', 'regexp' => '/AlohaBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://alohabrowser.com/ [ 'name' => 'Atomic', 'id' => 'atomiclite', 'regexp' =>'/AtomicLite\/([0-9.]*)/u' ], // see: http://atomicwebbrowser.com [ 'name' => 'AU', 'id' => 'au', 'regexp' =>'/(?:^| )AU(?:.Browser)?\/([0-9.]+)/u' ], [ 'name' => 'Awakening', 'id' => 'awakening', 'regexp' =>'/Awakening Browser\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8df11d41b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..76f6bb687 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; HUAWEI-M570/001.00 WAP/OBIGO/Q05A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36 AlohaBrowser/1.2.1.3' + readable: 'Aloha Browser 1.2.1.3 on an Huawei M570 running Android 7.0' + result: { browser: { name: 'Aloha Browser', family: { name: Chrome, version: 63.0.3239.111 }, version: 1.2.1.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.0 }, device: { type: mobile, subtype: feature, manufacturer: Huawei, model: M570 } } From 3b4b5564982529ed13d28e927dc23e09d55afdad Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 12:34:06 +0100 Subject: [PATCH 020/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 76f6bb687..aa35ecebe 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; HUAWEI-M570/001.00 WAP/OBIGO/Q05A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36 AlohaBrowser/1.2.1.3' - readable: 'Aloha Browser 1.2.1.3 on an Huawei M570 running Android 7.0' - result: { browser: { name: 'Aloha Browser', family: { name: Chrome, version: 63.0.3239.111 }, version: 1.2.1.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.0 }, device: { type: mobile, subtype: feature, manufacturer: Huawei, model: M570 } } + readable: 'Aloha Browser 1.2.1.3 on a Huawei M570 running Android 7.0' + result: { browser: { name: 'Aloha Browser', family: { name: Chrome, version: 63 }, version: 1.2.1.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.0 }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: M570 } } From f4ece3550a0c823184f0a13ca95e7f11a05337d6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 12:52:56 +0100 Subject: [PATCH 021/540] 37abc Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5e715f39a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -15,6 +15,7 @@ [ 'name' => '2345 Explorer', 'id' => '2345', 'regexp' =>'/2345Explorer\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => '2345 Explorer', 'id' => '2345', 'regexp' =>'/2345Explorer v([0-9.]*)/u', 'details' => 3 ], [ 'name' => '2345 Chrome', 'id' => '2345', 'regexp' =>'/2345chrome v([0-9.]*)/u', 'details' => 3 ], + [ 'name' => '37abc Browser', 'id' => '37abc', 'regexp' => '/ 37abc\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => '360 Extreme Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360EE/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => '360 Safe Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360SE/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => '7Star', 'id' => '7star', 'regexp' =>'/7Star\/([0-9.]*)/u' ], // see: http://www.qixing123.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..dc387a3f6 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..c7116a8ce 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML like Gecko) 37abc/1.6.5.14 Chrome/44.0.2403.130 Safari/537.36' + result: { browser: { name: '37abc Browser', family: { name: Chrome, version: 44.0.2403.130 }, version: 1.6.5.14, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: '37abc Browser 1.6.5.14 on Windows 7' From c63e20a325b7f924c3a6c1362d93b37fbaf2dda7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 13:11:01 +0100 Subject: [PATCH 022/540] Amigo Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..dc3a65b1b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -23,6 +23,7 @@ [ 'name' => 'Acorn Browse', 'id' => 'acorn', 'regexp' =>'/Acorn Browse ([0-9.]+)/u' ], [ 'name' => 'Acorn Browse', 'id' => 'acorn', 'regexp' =>'/Acorn Phoenix ([0-9.]+)/u' ], [ 'name' => 'Acoo Browser', 'id' => 'acoo', 'regexp' =>'/Acoo Browser/u' ], + [ 'name' => 'Amigo Browser', 'id' => 'amigo', 'regexp' => '/ Amigo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://amigo.mail.ru/ [ 'name' => 'AOL Desktop', 'id' => 'aol', 'regexp' =>'/AOL ([0-9.]*); AOLBuild/i' ], [ 'name' => 'AOL Browser', 'id' => 'america', 'regexp' =>'/America Online Browser (?:[0-9.]*); rev([0-9.]*);/i' ], [ 'name' => 'Arachne', 'id' => 'arachne', 'regexp' =>'/xChaos_Arachne\/[0-9]\.([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: www.glennmcc.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..bc96615b3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|amigo|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..25d819f69 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.5.2526.111 Amigo/47.5.2526.111 MRCHROME SOC Safari/537.36' + result: { browser: { name: 'Amigo Browser', family: { name: Chrome, version: 47.5.2526.111 }, version: 47.5.2526.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Amigo Browser 47.5.2526.111 on Windows 7' From 55eaafdc655cdfb7cd19908b66a8b7b45df7f92f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 13:39:00 +0100 Subject: [PATCH 023/540] APUS Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..c1394c33f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -25,6 +25,7 @@ [ 'name' => 'Acoo Browser', 'id' => 'acoo', 'regexp' =>'/Acoo Browser/u' ], [ 'name' => 'AOL Desktop', 'id' => 'aol', 'regexp' =>'/AOL ([0-9.]*); AOLBuild/i' ], [ 'name' => 'AOL Browser', 'id' => 'america', 'regexp' =>'/America Online Browser (?:[0-9.]*); rev([0-9.]*);/i' ], + [ 'name' => 'APUS Browser', 'id' => 'apus', 'regexp' => '/APUSBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.apusapps.com/en/browser/ [ 'name' => 'Arachne', 'id' => 'arachne', 'regexp' =>'/xChaos_Arachne\/[0-9]\.([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: www.glennmcc.org [ 'name' => 'Arora', 'id' => 'arora', 'regexp' =>'/[Aa]rora\/([0-9.]*)/u' ], // see: www.arora-browser.org [ 'name' => 'AWeb', 'id' => 'aweb', 'regexp' =>'/Amiga-AWeb(?:\/([0-9.]*))?/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..dad436403 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|apus|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..bd7527bfc 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt) Chrome/37.0.2049.0 (KHTML, like Gecko) Version/4.0 APUSBrowser/1.1.111 Safari/' + result: { browser: { name: 'APUS Browser', family: { name: Chrome, version: 37.0.2049.0 }, version: 1.1.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'APUS Browser 1.1.111 on Windows XP' From 1196f017cd48a6248fc10d386f67cc84a702d596 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 13:46:01 +0100 Subject: [PATCH 024/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index bd7527bfc..1540ee06a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt) Chrome/37.0.2049.0 (KHTML, like Gecko) Version/4.0 APUSBrowser/1.1.111 Safari/' - result: { browser: { name: 'APUS Browser', family: { name: Chrome, version: 37.0.2049.0 }, version: 1.1.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'APUS Browser', family: { name: Chrome, version: 37 }, version: 1.1.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'APUS Browser 1.1.111 on Windows XP' From 56fb06de696e4386c10dce76c56767088122e9c5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 13:50:18 +0100 Subject: [PATCH 025/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 1540ee06a..3e52e3c08 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt) Chrome/37.0.2049.0 (KHTML, like Gecko) Version/4.0 APUSBrowser/1.1.111 Safari/' - result: { browser: { name: 'APUS Browser', family: { name: Chrome, version: 37 }, version: 1.1.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'APUS Browser', family: { name: Chrome, version: 37 }, version: 1.1.111, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'APUS Browser 1.1.111 on Windows XP' From 3dfdddbf3023ebc33c7c86bad10d0f1ba65196d8 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 13:56:30 +0100 Subject: [PATCH 026/540] Avira Scout Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5dd746fcb 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -33,6 +33,7 @@ [ 'name' => 'Avant Browser', 'id' => 'avant', 'regexp' =>'/Avant TriCore/u' ], [ 'name' => 'Avast SafeZone', 'id' => 'asw', 'regexp' =>'/ASW\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Aviator', 'id' => 'aviator', 'regexp' =>'/Aviator\/([0-9.]*)/u', 'details' => 1 ], // see: https://github.com/WhiteHatSecurity/Aviator + [ 'name' => 'Avira Scout', 'id' => 'avira', 'regexp' => '/AviraScout\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.avira.com/en/avira-scout [ 'name' => 'Baidu Browser', 'id' => 'flyflow', 'regexp' =>'/FlyFlow\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser\/([0-9.]*)/i' ], [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser_i18n\/([0-9.]*)/i' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..371e6cbda 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|avira|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..25f47033a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 AviraScout/17.6.3071.2851' + readable: 'Avira Scout 17.6.3071.2851 on Windows 10' + result: { browser: { name: 'Avira Scout', family: { name: Chrome, version: 59 }, version: 17.6.3071.2851, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 7d223b14d6defa1d0faf70092cbbeb6a7873344a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:03:14 +0100 Subject: [PATCH 027/540] Basilisk Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..d2cd9fcb6 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -37,6 +37,7 @@ [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser\/([0-9.]*)/i' ], [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser_i18n\/([0-9.]*)/i' ], [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Basilisk', 'id' => 'basilisk', 'regexp' => '/ Basilisk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://basilisk-browser.org/ [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..062e82981 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|basilisk|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e0abf5b91 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.9) Gecko/20100101 Goanna/4.5 Firefox/68.9 Basilisk/20200311' + readable: 'Basilisk 20200311 on Windows 10' + result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: 20200311, type: browser }, engine: { name: Gecko, version: '68.9' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From a1662800d3bcef3844ea72bf79a2713d8634aae0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:09:32 +0100 Subject: [PATCH 028/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e0abf5b91..7cc1cbf16 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.9) Gecko/20100101 Goanna/4.5 Firefox/68.9 Basilisk/20200311' readable: 'Basilisk 20200311 on Windows 10' - result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: 20200311, type: browser }, engine: { name: Gecko, version: '68.9' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '2020031'1, type: browser }, engine: { name: Gecko, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 88210146770ad256f2f407ccfa90182b8aef6918 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:14:25 +0100 Subject: [PATCH 029/540] typo --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7cc1cbf16..5cc81023a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.9) Gecko/20100101 Goanna/4.5 Firefox/68.9 Basilisk/20200311' readable: 'Basilisk 20200311 on Windows 10' - result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '2020031'1, type: browser }, engine: { name: Gecko, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '20200311', type: browser }, engine: { name: Gecko, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From cd36f0c28f9a7d4e4f47fe8691f7fc7900286c8c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:19:24 +0100 Subject: [PATCH 030/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5cc81023a..f12fbff80 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.9) Gecko/20100101 Goanna/4.5 Firefox/68.9 Basilisk/20200311' readable: 'Basilisk 20200311 on Windows 10' - result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '20200311', type: browser }, engine: { name: Gecko, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '20200311', type: browser }, engine: { name: Goanna, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From d3c2ac4009b96b8c4703c6b049dd45b34eb96e0c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:22:01 +0100 Subject: [PATCH 031/540] Browzar Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..04b5e1a64 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -40,6 +40,7 @@ [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], + [ 'name' => 'Browzar', 'id' => 'browzar', 'regexp' => '/Browzar/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://browzar.com/ [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..3d5f7c106 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|browzar|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..241e6b9b5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Browzar)' + result: { browser: { name: 'Browzar', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Browzar on Windows 7' From f6d40d72cd18186ea4dbd5f01f204b273e0bb145 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:35:17 +0100 Subject: [PATCH 032/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 241e6b9b5..ab5f7f3a0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Browzar)' result: { browser: { name: 'Browzar', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Browzar on Windows 7' +x \ No newline at end of file From eff3770f47f53c7ed209c5f7c6a5c829e979d876 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:42:26 +0100 Subject: [PATCH 033/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index ab5f7f3a0..241e6b9b5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Browzar)' result: { browser: { name: 'Browzar', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Browzar on Windows 7' -x \ No newline at end of file From a332155f9694a13a62aa581a5abb9d0fac4790c9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 14:51:59 +0100 Subject: [PATCH 034/540] Cent Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e4e546e8c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -43,6 +43,7 @@ [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html + [ 'name' => 'Cent Browser', 'id' => 'cent', 'regexp' => '/ Cent\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.centbrowser.com/ [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c26dbe4f2 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|cent|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..f6e64438c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/47.0.2526.106 Safari/537.36 Cent/1.6.10.21' + readable: 'Cent Browser 1.6.10.21 on Windows 10' + result: { browser: { name: 'Cent Browser', family: { name: Chrome, version: 47 }, version: 1.6.10.21, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 2fe53234163229ddac7801b8d428adf8b07f775d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 15:17:03 +0100 Subject: [PATCH 035/540] Add 1stBrowser 1stBrowser - https://user-agents.net/browsers/1stbrowser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..f8677df1d 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -16,6 +16,7 @@ [ 'name' => '2345 Explorer', 'id' => '2345', 'regexp' =>'/2345Explorer v([0-9.]*)/u', 'details' => 3 ], [ 'name' => '2345 Chrome', 'id' => '2345', 'regexp' =>'/2345chrome v([0-9.]*)/u', 'details' => 3 ], [ 'name' => '360 Extreme Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360EE/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => '1st Browser', 'id' => '1stbrowser', 'regexp' => '/1stBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => '360 Safe Explorer', 'id' => 'qihu', 'regexp' =>'/QIHU 360SE/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => '7Star', 'id' => '7star', 'regexp' =>'/7Star\/([0-9.]*)/u' ], // see: http://www.qixing123.com [ 'name' => 'ABrowse', 'id' => 'abrowse', 'regexp' =>'/A[Bb]rowse ([0-9.]*)/u' ], // browser for the Syllable OS diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..30ad2d044 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|1stbrowser|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..ffd805d33 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 1stBrowser/45.0.2454.171 Safari/537.36' + result: { browser: { name: '1st Browser', family: { name: Chrome, version: 49 }, version: 45.0.2454.171, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: '1st Browser 45.0.2454.171 on Windows 7' From eb243bbf205120cd8dd89d68db15e408bd2a188f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 15:30:57 +0100 Subject: [PATCH 036/540] Chedot Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3f5556bd8 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -44,6 +44,7 @@ [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html + [ 'name' => 'Chedot', 'id' => 'chedot', 'regexp' => '/ Chedot\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://landing.chedot.com/ [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c9f7f59f4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chedot|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..b065c0949 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Chedot/9.1.1 Safari/537.36' + readable: 'Chedot 9.1.1 on Windows 10' + result: { browser: { name: Chedot, family: { name: Chrome, version: 76 }, version: 9.1.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From c8175fbfedf46385d5a23fb3eb583c8adc297f47 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 15:40:56 +0100 Subject: [PATCH 037/540] Cheshire Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..32b31d18f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -44,6 +44,7 @@ [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html + [ 'name' => 'Cheshire', 'id' => 'cheshire', 'regexp' => '/ Cheshire\/([0-9.A-Z]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c881ace1b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|cheshire|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..1667b158d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en) AppleWebKit/418.9 (KHTML, like Gecko, Safari) Safari/419.3 Cheshire/1.0.ALPHA' + result: { browser: { name: Cheshire, version: '1.0.ALPHA', type: browser }, engine: { name: Webkit, version: '418.9' }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.4' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Cheshire on Mac OS X 10.4' From 88e7904071482a77f87d9aed5418f50a73a0a13f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 15:54:59 +0100 Subject: [PATCH 038/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 1667b158d..189f1a79d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en) AppleWebKit/418.9 (KHTML, like Gecko, Safari) Safari/419.3 Cheshire/1.0.ALPHA' result: { browser: { name: Cheshire, version: '1.0.ALPHA', type: browser }, engine: { name: Webkit, version: '418.9' }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.4' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'Cheshire on Mac OS X 10.4' + readable: 'Cheshire 1.0 on Mac OS X 10.4' From 455429aeae946428287d1261a5cbf4c2d7a2ebd8 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 16:15:47 +0100 Subject: [PATCH 039/540] Chimera Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..873ff4fce 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -44,6 +44,7 @@ [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html + [ 'name' => 'Chimera', 'id' => 'chimera', 'regexp' => '/ Chimera\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..24a27d65f 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chimera|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..499b88d9c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X PPC Mac OS X 10.4; en-US; rv:1.0.1) Gecko/20030111 Chimera/0.6' + result: { browser: { name: Chimera, version: 0.6, type: browser }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.5' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chimera 0.6 on Mac OS X 10.5' From 43f66263c55f109fbe12df1ddf961a17f2a3b5ca Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 16:23:55 +0100 Subject: [PATCH 040/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 499b88d9c..949e507a5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X PPC Mac OS X 10.4; en-US; rv:1.0.1) Gecko/20030111 Chimera/0.6' - result: { browser: { name: Chimera, version: 0.6, type: browser }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.5' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'Chimera 0.6 on Mac OS X 10.5' + result: { browser: { name: Chimera, version: '0.6', type: browser }, engine: { name: Gecko, version: 1.0.1 }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.4' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chimera 0.6 on Mac OS X 10.4' From 9bbd4e890168fad767899cad6b9afe56f0195a31 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 16:49:39 +0100 Subject: [PATCH 041/540] Coc Coc Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..928420fe4 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -50,6 +50,7 @@ [ 'name' => 'Comodo Dragon', 'id' => 'dragon', 'regexp' =>'/Dragon\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], + [ 'name' => 'Coc Coc', 'id' => 'coocoo', 'regexp' => '/coc_coc_browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://coccoc.com/en/ [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1cc1da5a4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coocoo|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d5e7e8948 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,5 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' From f7824382e274a4e91b708af027447b8e98e8fd46 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 16:55:45 +0100 Subject: [PATCH 042/540] blank --- tests/data/desktop/browser-other.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d5e7e8948..86e097f9a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,3 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 064975e31926dda7edb722bfd6700d65c35128c1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:02:58 +0100 Subject: [PATCH 043/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 86e097f9a..5b7150811 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Coc Coc 46.0 on Windows 10' + result: { browser: { name: Coc Coc, version: 46.0, type: browser }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 6710f4386de2212d856cc799efe7949ab9b03146 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:08:16 +0100 Subject: [PATCH 044/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5b7150811..842dd65c0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -159,6 +159,6 @@ readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - - headers: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' readable: 'Coc Coc 46.0 on Windows 10' result: { browser: { name: Coc Coc, version: 46.0, type: browser }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From d118979fff22e3a5380414786bec94657286ca5e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:14:21 +0100 Subject: [PATCH 045/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 842dd65c0..26487139f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) coc_coc_browser/46.0 Chrome/40.0.2214.96 Safari/537.36' readable: 'Coc Coc 46.0 on Windows 10' - result: { browser: { name: Coc Coc, version: 46.0, type: browser }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: 'Coc Coc', family: { name: Chrome, version: 40 }, version: '46.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 484389db588734bb5863a18fd6477eb0850f1f82 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:20:23 +0100 Subject: [PATCH 046/540] Corom Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..bf27f6859 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -51,6 +51,7 @@ [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Corom Browser', 'id' => 'corom', 'regexp' => '/ CoRom\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://apkpure.com/corom-browser-for-android/com.coccoc.corom [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..6546a3e56 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|corom|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..6390cacf0 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 7.1.1; en-us; CPH1723 Build/N6F26Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 CoRom/30.0.1599.101' + readable: 'CoRom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' + result: { browser: { name: 'CoRom Browser', family: { name: Chrome, version: 30 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } From b72be36fa53bd61054fe3623693c134a6e9d4f05 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:25:47 +0100 Subject: [PATCH 047/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 6390cacf0..f7f3a675c 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 7.1.1; en-us; CPH1723 Build/N6F26Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 CoRom/30.0.1599.101' - readable: 'CoRom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' - result: { browser: { name: 'CoRom Browser', family: { name: Chrome, version: 30 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } + readable: 'Corom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' + result: { browser: { name: 'Corom Browser', family: { name: Chrome, version: 53 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } From 8cfdd152120b900ccb92b0c62f3f6999466e3e08 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:31:51 +0100 Subject: [PATCH 048/540] ignore --- tests/data/mobile/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index f7f3a675c..5a7669431 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -74,3 +74,4 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 7.1.1; en-us; CPH1723 Build/N6F26Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 CoRom/30.0.1599.101' readable: 'Corom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' result: { browser: { name: 'Corom Browser', family: { name: Chrome, version: 53 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } +x \ No newline at end of file From 6f119dc4822834b5229d7629563cf13b0af6f168 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:40:37 +0100 Subject: [PATCH 049/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5a7669431..f7f3a675c 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -74,4 +74,3 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 7.1.1; en-us; CPH1723 Build/N6F26Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 CoRom/30.0.1599.101' readable: 'Corom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' result: { browser: { name: 'Corom Browser', family: { name: Chrome, version: 53 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } -x \ No newline at end of file From 35efc75a32430fffe9e1fe6ea52b43511de14eed Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:47:58 +0100 Subject: [PATCH 050/540] Crazy Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..8746c8fa5 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -51,6 +51,7 @@ [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Crazy Browser', 'id' => 'crazy', 'regexp' => '/Crazy Browser ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..5b66c7f87 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|crazy|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..6d1b39651 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; Crazy Browser 2.0.1)' + result: { browser: { name: 'Crazy Browser', version: 2.0.1, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'Crazy Browser 2.0.1 on Windows XP' From 37e46fd4ba5a8e9cf45f4be05d847774a87f28f6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 17:54:17 +0100 Subject: [PATCH 051/540] ignore --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d1b39651..8e596b997 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; Crazy Browser 2.0.1)' result: { browser: { name: 'Crazy Browser', version: 2.0.1, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Crazy Browser 2.0.1 on Windows XP' +x \ No newline at end of file From 030ce3b579f474d97a76cbc1c401dcb9817130d4 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 18:04:44 +0100 Subject: [PATCH 052/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 8e596b997..6d1b39651 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; Crazy Browser 2.0.1)' result: { browser: { name: 'Crazy Browser', version: 2.0.1, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Crazy Browser 2.0.1 on Windows XP' -x \ No newline at end of file From a2ebaa9b6047324c2e40e4d3edfa1ae51f6767aa Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 18:32:26 +0100 Subject: [PATCH 053/540] Diigo Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e5175427a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -54,6 +54,7 @@ [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Diigo Browser', 'id' => 'diigo', 'regexp' => '/DiigoBrowser/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://apps.apple.com/us/app/diigo-annotator-for-safari/id933773981 [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..78dd61f57 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|diigo|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..dbbdb32da 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302 Safari/9537.53 DiigoBrowser' + result: { browser: { name: Diigo Browser, type: browser }, os: { name: iOS, version: 11.3 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + readable: 'Diigo Browser on an Apple iPad running iOS 11.3' From 8f8fb0b1faa52da8f3f041dd9615edb921fd39a0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 18:41:51 +0100 Subject: [PATCH 054/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index dbbdb32da..911e2f87c 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302 Safari/9537.53 DiigoBrowser' - result: { browser: { name: Diigo Browser, type: browser }, os: { name: iOS, version: 11.3 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + result: { browser: { name: Diigo Browser, type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: iOS, version: 11.3 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Diigo Browser on an Apple iPad running iOS 11.3' From bb6ac2e0d5cb5aea758dbe0f8b24bfa17267c160 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 18:53:19 +0100 Subject: [PATCH 055/540] Ecosia Browser --- data/applications-browsers.php | 2 ++ data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..d41d1ea63 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -128,6 +128,8 @@ [ 'name' => 'Digia @Web', 'id' => 'digia', 'regexp' =>'/Digia @Web\/([0-9.]*)/u' ], [ 'name' => 'Doris', 'id' => 'doris', 'regexp' =>'/Doris\/([0-9.]*)/u' ], [ 'name' => 'Dorothy', 'id' => 'doroty', 'regexp' =>'/Dorothy$/u' ], + [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sandroid\@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.ecosia.android + [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sios\@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://apps.apple.com/us/app/ecosia/id670881887 [ 'name' => 'EMOBILE Browser', 'id' => 'www browser', 'regexp' =>'/WWW Browser\/ver([0-9.]*)/u' ], [ 'name' => 'EUI Browser', 'id' => 'eui', 'regexp' =>'/EUI Browser\/[^0-9\s]*([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Go.Web', 'id' => 'go\.web', 'regexp' =>'/Go\.Web\/([0-9.]*)/u' ], // used on early Blackberry, by GoAmerica diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..63670e3f2 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|ecosia|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..cffae9c04 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36 (Ecosia ios@4.0.10.813) Safari/604' + result: { browser: { name: Ecosia Browser, version: 4.0.10.813, type: browser }, os: { name: iOS, version: 9.3.5 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + readable: 'Ecosia Browser 4.0.10.813 on an Apple iPad running iOS 9.3.5' From 55836390e141ddec6c500cd5c83372c28ce06be3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 19:07:19 +0100 Subject: [PATCH 056/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index cffae9c04..66d61b77b 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36 (Ecosia ios@4.0.10.813) Safari/604' - result: { browser: { name: Ecosia Browser, version: 4.0.10.813, type: browser }, os: { name: iOS, version: 9.3.5 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + result: { browser: { name: Ecosia Browser, version: 4.0.10.813, type: browser }, engine: { name: Webkit, version: 601.1.46 }, os: { name: iOS, version: 9.3.5 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Ecosia Browser 4.0.10.813 on an Apple iPad running iOS 9.3.5' From 9cad3cc7e5e1c9d120097723aef20eef730bc2e9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 19:57:17 +0100 Subject: [PATCH 057/540] Elements Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..4c1ebee3b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -56,6 +56,7 @@ [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], + [ 'name' => 'Elements Browser', 'id' => 'elements', 'regexp' => '/Elements Browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..57d0faad1 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|elements|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..02a5da9fa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.14.3282.140 Elements Browser/1.1.14 Safari/537.36' + readable: 'Elements Browser 1.1.14 on Windows 10' + result: { browser: { name: 'Elements Browser', family: { name: Chrome, version: 64 }, version: 1.1.14, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From a403360d0c1d02f05f8d9c6025d1dcabfa87b414 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 20:32:41 +0100 Subject: [PATCH 058/540] HeyTap Browser --- data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..f3c83bcd6 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..2fd001078 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; PBAM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36 HeyTapBrowser/10.7.2.1' + readable: 'HeyTap Browser 10.7.2.1 on an Oppo A5 running Android 8.1.0' + result: { browser: { name: 'HeyTap Browser', family: { name: Chrome, version: 70 }, version: 10.7.2.1, type: browser }, engine: { name: Blink }, os: { name: Android, version: 8.1.0 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: A5 } } From 8d9b0a6a43f3c17c2361525ddf7f1575179bb90b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 20:32:56 +0100 Subject: [PATCH 059/540] Update applications-browsers.php --- data/applications-browsers.php | 1 + 1 file changed, 1 insertion(+) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..285eaf835 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -132,6 +132,7 @@ [ 'name' => 'EUI Browser', 'id' => 'eui', 'regexp' =>'/EUI Browser\/[^0-9\s]*([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Go.Web', 'id' => 'go\.web', 'regexp' =>'/Go\.Web\/([0-9.]*)/u' ], // used on early Blackberry, by GoAmerica [ 'name' => 'Helium', 'id' => 'helium', 'regexp' =>'/HeliumMobileBrowser\/([0-9.]*)/u' ], + [ 'name' => 'HeyTap Browser', 'id' => 'heytap', 'regexp' => '/HeyTapBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Huohou Browser', 'id' => 'huohoubrowser', 'regexp' =>'/HuohouBrowser\/([0-9.]*)/u' ], [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCabMobile\/([0-9.]*)/u' ], [ 'name' => 'iLunascape', 'id' => 'lunascape', 'regexp' =>'/iLunascape\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv From c11f41f7ff56d2afe7b1fc9caa9709d5b2d1ed07 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 20:40:11 +0100 Subject: [PATCH 060/540] Icedove Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..8626a89e0 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -64,6 +64,7 @@ [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?[\/ ](?:Pre)?([0-9.]*)/u' ], [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], [ 'name' => 'IceCat', 'id' => 'icecat', 'regexp' =>'/IceCat[ \/]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.gnu.org/software/gnuzilla/ + [ 'name' => 'Icedove', 'id' => 'icedove', 'regexp' => '/ Icedove\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://wiki.debian.org/Icedove [ 'name' => 'Iceweasel', 'id' => 'iceweasel', 'regexp' =>'/Iceweasel\/([0-9.]*)/iu', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Iridium', 'id' => 'iridium', 'regexp' =>'/Iridium\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php [ 'name' => 'Iron', 'id' => 'iron', 'regexp' =>'/Iron\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a6ebeffef 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|icedove|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..390ce0aee 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Icedove/45.6.0' + result: { browser: { name: Icedove, version: 45.6.0, type: browser }, os: { name: Linux }, device: { type: desktop } } + readable: 'Icedove 45.6.0 on Linux' From bb33b5aa645ba020b86144c8a59c940b83a3beb9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 4 Jun 2020 20:48:56 +0100 Subject: [PATCH 061/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 390ce0aee..8bdde1090 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Icedove/45.6.0' - result: { browser: { name: Icedove, version: 45.6.0, type: browser }, os: { name: Linux }, device: { type: desktop } } + result: { browser: { name: Icedove, version: 45.6.0, type: browser }, engine: { name: Gecko, version: '45.0' }, os: { name: Linux }, device: { type: desktop } } readable: 'Icedove 45.6.0 on Linux' From 935a2b05967b704afb6df605e8720eb259807739 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:10:55 +0100 Subject: [PATCH 062/540] Kiwi Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/tablet/os-android.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..be6a30caf 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -140,6 +140,7 @@ [ 'name' => 'Jig Browser', 'id' => 'jig browser', 'regexp' =>'/jig browser(?: web| core|9i?)?;? ?([0-9.]+)?/u', 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Jumanji', 'id' => 'jumanji', 'regexp' =>'/jumanji/u' ], // see: jumanji browser ubuntu [ 'name' => 'Kiosk', 'id' => 'kiosk', 'regexp' =>'/Kiosk\/([0-9.]*)/u' ], // see: http://www.kioskbrowser.net + [ 'name' => 'Kiwi Browser', 'id' => 'kiwi', 'regexp' => '/Kiwi Chrome\/([0-9.A-Z]*)/u' ], // see: https://kiwibrowser.com [ 'name' => 'LeBrowser', 'id' => 'lebrowser', 'regexp' =>'/LeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'LieBaoFast', 'id' => 'liebao', 'regexp' =>'/LieBaoFast\/([0-9.]*)/u' ], // see: http://www.liebao.cn [ 'name' => 'MaCross Mobile', 'id' => 'macross', 'regexp' =>'/MaCross\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..88fadbdc4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/tablet/os-android.yaml b/tests/data/tablet/os-android.yaml index cc0d5012e..39db4a054 100644 --- a/tests/data/tablet/os-android.yaml +++ b/tests/data/tablet/os-android.yaml @@ -6,3 +6,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 2.2; xx; HP eStation/1.0) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1' result: { browser: { name: 'Android Browser' }, engine: { name: Webkit, version: '533.1' }, os: { name: Android, version: '2.2' }, device: { type: printer, manufacturer: HP, model: eStation } } readable: 'Android Browser on a HP eStation running Android 2.2' +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 8.1; T8_T106 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Kiwi Chrome/69.0.3440.40 Safari/537.36' + readable: 'Kiwi Browser 69.0.3440.40 on a T8_T106 running Android 4.4.2' + result: { browser: { name: 'Kiwi Browser', family: { name: Chrome, version: 69.0.3440.40 }, version: 69.0.3440.40, type: browser }, engine: { name: Blink }, os: { name: Android, version: 8.1 }, device: { type: tablet, model: T8_T106 } } From f11d67a9d60b0dbc989497b4c36087ca6a0e733e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:16:32 +0100 Subject: [PATCH 063/540] Update os-android.yaml --- tests/data/tablet/os-android.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/tablet/os-android.yaml b/tests/data/tablet/os-android.yaml index 39db4a054..89866124e 100644 --- a/tests/data/tablet/os-android.yaml +++ b/tests/data/tablet/os-android.yaml @@ -9,4 +9,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 8.1; T8_T106 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Kiwi Chrome/69.0.3440.40 Safari/537.36' readable: 'Kiwi Browser 69.0.3440.40 on a T8_T106 running Android 4.4.2' - result: { browser: { name: 'Kiwi Browser', family: { name: Chrome, version: 69.0.3440.40 }, version: 69.0.3440.40, type: browser }, engine: { name: Blink }, os: { name: Android, version: 8.1 }, device: { type: tablet, model: T8_T106 } } + result: { browser: { name: 'Kiwi Browser', family: { name: Chrome, version: 69 }, version: 69.0.3440.40, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.2 }, device: { type: tablet, model: T8_T106 } } From 040ad10491b2ab0e03721c044a8ea451757f355e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:23:05 +0100 Subject: [PATCH 064/540] KKMAN Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..b853f678a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -70,6 +70,7 @@ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org + [ 'name' => 'KKMAN Browser', 'id' => 'kkman', 'regexp' => '/ KKman([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.kkbox.com/kkman/ [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c519bd0e9 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|kkman|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..7365ffc02 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; KKman3.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From e733763986fab80bbfc2ce61ac5267ddaa9bd58e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:38:16 +0100 Subject: [PATCH 065/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7365ffc02..35ee22f92 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; KKman3.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'KKMAN Browser 3.0 on Windows Vista' + result: { browser: { name: 'KKMAN Browser', version: '3.0', type: browser }, os: { name: Windows, version: { value: '6.0', alias: Vista } }, device: { type: desktop } } From f0718a25f8eacbe96ca551799e75164c03a6115a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:50:08 +0100 Subject: [PATCH 066/540] Klondike Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..bd0f538ed 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -70,6 +70,7 @@ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org + [ 'name' => 'Klondike', 'id' => 'klondike', 'regexp' => '/Klondike\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c58af5de0 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|klondike|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..169550d2d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Klondike/1.50 (WSP Win32) (Google WAP Proxy/1.0)' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From dcc59c7665d2756f29d542c5a062a1f264869426 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 16:58:07 +0100 Subject: [PATCH 067/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 169550d2d..2feba6d64 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Klondike/1.50 (WSP Win32) (Google WAP Proxy/1.0)' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Klondike 1.50 on Windows' + result: { browser: { name:Klondike, version: '1.50', type: browser }, os: { name: Windows }, device: { type: desktop } } From de299e198506672d4f086b34ae84f27b7c629300 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:00:08 +0100 Subject: [PATCH 068/540] Light Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e07ceed77 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -71,6 +71,7 @@ [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn + [ 'name' => 'Light Browser', 'id' => 'light', 'regexp' => '/ Light\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://en.wikipedia.org/wiki/Light_(web_browser) [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8d6855498 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|light|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..741dd170c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 Light/44.0' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 88a9c25ae94048838cf5e5486853430163767f5a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:11:27 +0100 Subject: [PATCH 069/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 741dd170c..2a8e4d1aa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 Light/44.0' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Light Browser 44.0 on Windows 10' + result: { browser: { name: 'Light Browser', family: { name: Firefox, version: '44.0' }, version: '44.0', type: browser }, engine: { name: Gecko, version: '44.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 50556cf63ba8ac3675c933cab4cbca251b29169f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:19:26 +0100 Subject: [PATCH 070/540] ignore --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 2feba6d64..b6281c62a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Klondike/1.50 (WSP Win32) (Google WAP Proxy/1.0)' readable: 'Klondike 1.50 on Windows' result: { browser: { name:Klondike, version: '1.50', type: browser }, os: { name: Windows }, device: { type: desktop } } +x \ No newline at end of file From 35159056e2f4b511b293ab74d85c6692f98230de Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:27:44 +0100 Subject: [PATCH 071/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index b6281c62a..2feba6d64 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Klondike/1.50 (WSP Win32) (Google WAP Proxy/1.0)' readable: 'Klondike 1.50 on Windows' result: { browser: { name:Klondike, version: '1.50', type: browser }, os: { name: Windows }, device: { type: desktop } } -x \ No newline at end of file From f0ff9013334bd69a72919aea8beef4a18afa8763 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:38:02 +0100 Subject: [PATCH 072/540] Lolifox Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..b217dcfa6 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -72,6 +72,7 @@ [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ + [ 'name' => 'Lolifox', 'id' => 'lolifox', 'regexp' => '/lolifox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://ja.wikipedia.org/wiki/Lolifox [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..bc021a11c 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lolifox|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..287c7f5f1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070224 lolifox/0.3.2' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From a8a5a70e8a224a03dd9f430af9c10ddffde273cd Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:44:19 +0100 Subject: [PATCH 073/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 287c7f5f1..4010eac8d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070224 lolifox/0.3.2' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Lolifox 0.3.2 on Windows XP' + result: { browser: { name: Lolifox, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 1.8.1 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } From ff79c35692628662ab14d4c31263963a89716f03 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:52:54 +0100 Subject: [PATCH 074/540] Lovense Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..d2ccd4af1 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -72,6 +72,7 @@ [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ + [ 'name' => 'Lovense', 'id' => 'lovense', 'regexp' => '/Lovense\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.lovense.com/cam-model/guides/pc-phone [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..89001d151 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflw|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lovense|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..4b4afdf0f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 Lovense/30.0.9' + result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Tungsten Browser 2.0 on Windows 10' From ab1e433ee211c60c473b52725dbeb6e571d7b442 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 17:57:31 +0100 Subject: [PATCH 075/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 4b4afdf0f..ceea1ea4d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 Lovense/30.0.9' - result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'Tungsten Browser 2.0 on Windows 10' + result: { browser: { name: Lovense, family: { name: Chrome, version: 75 }, version: 30.0.9, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Lovense 30.0.9 on Windows 10' From 8f65ea7b24d7821af58aa09a3ee3e640f3073dfe Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 18:26:51 +0100 Subject: [PATCH 076/540] Epic Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..609b75f0a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -129,6 +129,7 @@ [ 'name' => 'Doris', 'id' => 'doris', 'regexp' =>'/Doris\/([0-9.]*)/u' ], [ 'name' => 'Dorothy', 'id' => 'doroty', 'regexp' =>'/Dorothy$/u' ], [ 'name' => 'EMOBILE Browser', 'id' => 'www browser', 'regexp' =>'/WWW Browser\/ver([0-9.]*)/u' ], + [ 'name' => 'Epic Browser', 'id' => 'epic', 'regexp' => '/ Epic\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://en.wikipedia.org/wiki/Epic_(web_browser) [ 'name' => 'EUI Browser', 'id' => 'eui', 'regexp' =>'/EUI Browser\/[^0-9\s]*([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Go.Web', 'id' => 'go\.web', 'regexp' =>'/Go\.Web\/([0-9.]*)/u' ], // used on early Blackberry, by GoAmerica [ 'name' => 'Helium', 'id' => 'helium', 'regexp' =>'/HeliumMobileBrowser\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..4f8b27751 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|epic|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..00e70f30b 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 5.0.2; Le X507 Build/DHXOSOP5501405251S) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 Epic/1.0' + readable: 'Epic Browser 1.0 on a LeEco Le 1s X507 running Android 5.0.2' + result: { browser: { name: 'Epic Browser', version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Android, version: 5.0.2 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 1s X507' } } From a5fdae6e69b88dbec5f8c39c06ed1b868064a3fa Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 18:33:17 +0100 Subject: [PATCH 077/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 00e70f30b..e3b1906d1 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -73,4 +73,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 5.0.2; Le X507 Build/DHXOSOP5501405251S) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 Epic/1.0' readable: 'Epic Browser 1.0 on a LeEco Le 1s X507 running Android 5.0.2' - result: { browser: { name: 'Epic Browser', version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Android, version: 5.0.2 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 1s X507' } } + result: { browser: { name: 'Epic Browser', using: { name: 'Chromium WebView', version: '37' }, version: '1.0', type: browser }, engine: { name: Blink }, os: { name: Android, version: 5.0.2 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 1s X507' } } From d465020a77bf0939710165b8e3dcf51fa308d9f6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 18:45:52 +0100 Subject: [PATCH 078/540] Mint Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..6781bd196 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -145,6 +145,7 @@ [ 'name' => 'MaCross Mobile', 'id' => 'macross', 'regexp' =>'/MaCross\/([0-9.]*)/u' ], [ 'name' => 'Mammoth', 'id' => 'mammoth', 'regexp' =>'/Mammoth\/([0-9.]*)/u' ], // see: https://itunes.apple.com/cn/app/meng-ma-liu-lan-qi/id403760998?mt=8 [ 'name' => 'mCent Browser', 'id' => 'mcent', 'regexp' =>'/mCent\/([0-9.]*)/u' ], + [ 'name' => 'Mint Browser', 'id' => 'mint', 'regexp' => '/XiaoMi\/Mint Browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: http://www.mintbrowser.com/ [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB\/([0-9.]*)/u' ], [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB([0-9.]+)\//u' ], [ 'name' => 'Motorola Internet Browser', 'id' => 'cmcs', 'regexp' =>'/Browser\/CMCS([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c73c8bb42 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mint|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..3da116b41 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; pl-pl; Redmi 6A Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/Mint Browser/3.3.1' + readable: 'Mint Browser 3.3.1 on a Xiaomi Redmi 6A running Android 9' + result: { browser: { name: 'Mint Browser', version: 3.3.1, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, manufacturer: Xiaomi, model: 'Redmi 6A' } } From ca345223146c89174f6a8002c1b9aa3a2d8a5c17 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 18:53:21 +0100 Subject: [PATCH 079/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 3da116b41..cb14c1d34 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -73,4 +73,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; pl-pl; Redmi 6A Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 XiaoMi/Mint Browser/3.3.1' readable: 'Mint Browser 3.3.1 on a Xiaomi Redmi 6A running Android 9' - result: { browser: { name: 'Mint Browser', version: 3.3.1, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, manufacturer: Xiaomi, model: 'Redmi 6A' } } + result: { browser: { name: 'Mint Browser', family: { name: Chrome, version: 61 }, version: 3.3.1, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Xiaomi, model: 'Redmi 6A' } } From 23c10c876dbfd30ecc4fc2cbb48597787c798478 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 19:09:46 +0100 Subject: [PATCH 080/540] Mobicip Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..cfaa9bc14 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -145,6 +145,7 @@ [ 'name' => 'MaCross Mobile', 'id' => 'macross', 'regexp' =>'/MaCross\/([0-9.]*)/u' ], [ 'name' => 'Mammoth', 'id' => 'mammoth', 'regexp' =>'/Mammoth\/([0-9.]*)/u' ], // see: https://itunes.apple.com/cn/app/meng-ma-liu-lan-qi/id403760998?mt=8 [ 'name' => 'mCent Browser', 'id' => 'mcent', 'regexp' =>'/mCent\/([0-9.]*)/u' ], + [ 'name' => 'Mobicip', 'id' => 'mobicip', 'regexp' => '/ Mobicip\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://www.mobicip.com/ [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB\/([0-9.]*)/u' ], [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB([0-9.]+)\//u' ], [ 'name' => 'Motorola Internet Browser', 'id' => 'cmcs', 'regexp' =>'/Browser\/CMCS([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1f7274964 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mobicip|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..9b45fbbe9 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 Version/10.3 Safari/8536.25 Mobicip/1882608256' + result: { browser: { name: Mobicip, version: '1882608256', type: 'browser' }, engine: { name: Webkit }, os: { name: iOS, version: 10.3.3 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + readable: 'Mobicip 1882608256 on an Apple iPad running iOS 10.3.3' From 6f8b9c68853e001994e0e70a1910c364b14d732f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 19:19:22 +0100 Subject: [PATCH 081/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 9b45fbbe9..cbd53e245 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 Version/10.3 Safari/8536.25 Mobicip/1882608256' - result: { browser: { name: Mobicip, version: '1882608256', type: 'browser' }, engine: { name: Webkit }, os: { name: iOS, version: 10.3.3 }, device: { type: tablet, manufacturer: Apple, model: iPad } } + result: { browser: { name: Mobicip, version: '1882608256', type: 'browser' }, engine: { name: Webkit, version: 603.3.8 }, os: { name: iOS, version: 10.3.3 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Mobicip 1882608256 on an Apple iPad running iOS 10.3.3' From 7541cd918c067d593d879387fc8c04c6a4291f75 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 22:24:35 +0100 Subject: [PATCH 082/540] MultiZilla Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..725bad5b1 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -149,6 +149,7 @@ [ 'name' => 'Motorola Internet Browser', 'id' => 'mib', 'regexp' =>'/MIB([0-9.]+)\//u' ], [ 'name' => 'Motorola Internet Browser', 'id' => 'cmcs', 'regexp' =>'/Browser\/CMCS([0-9.]*)/u' ], [ 'name' => 'Motorola WebKit', 'id' => 'motorola', 'regexp' =>'/MotorolaWebKit(?:\/([0-9.]*))?/u', 'details' => 3 ], + [ 'name' => 'MultiZilla', 'id' => 'multizilla', 'regexp' => '/MultiZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://sourceforge.net/projects/multizilla/ [ 'name' => 'NetFront Life Browser', 'id' => 'netfrontlife', 'regexp' =>'/NetFrontLifeBrowser\/([0-9.]*)/u' ], [ 'name' => 'OneBrowser', 'id' => 'onebrowser', 'regexp' =>'/OneBrowser\/([0-9.]*)/u' ], [ 'name' => 'PocketLink', 'id' => 'plink', 'regexp' =>'/PLink ([0-9.]+)/iu', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..d763b7c5c 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5e883f2b0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 7e02c7444d31448102809b88f7c9d82708f70b9e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 22:30:39 +0100 Subject: [PATCH 083/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5e883f2b0..cff7daaa1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'MultiZilla 1.6.1.0 on Windows XP' + result: { browser: { name: MultiZilla, version: 1.6.1.0, type: browser }, engine: { name: Gecko }, os: { name: Windows, version: { value: '5.1', alias: XP }, device: { type: desktop } } From dcc77742365c20b018dded0c6e54dd8cf39d3634 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 22:35:45 +0100 Subject: [PATCH 084/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index cff7daaa1..14f16db80 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a' readable: 'MultiZilla 1.6.1.0 on Windows XP' - result: { browser: { name: MultiZilla, version: 1.6.1.0, type: browser }, engine: { name: Gecko }, os: { name: Windows, version: { value: '5.1', alias: XP }, device: { type: desktop } } + result: { browser: { name: MultiZilla, version: 1.6.1.0, type: browser }, engine: { name: Gecko }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } From 65e40d90f3c3b7636931a0d8e1d3cc52e75abd36 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 22:41:49 +0100 Subject: [PATCH 085/540] Nichrome Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3bb53d58e 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -79,6 +79,7 @@ [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], + [ 'name' => 'Nichrome', 'id' => 'nichrome', 'regexp' => '/Nichrome\/self\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..93b841253 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|nichrome|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..291722abc 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 Nichrome/self/40' + result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'x' From 859d68d222c0ffc1909d90da8ea5133e4fa31d1f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 22:47:14 +0100 Subject: [PATCH 086/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 291722abc..86cb0ed40 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 Nichrome/self/40' - result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'x' + result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 40 }, version: '40', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Nichrome 40 on Windows 10' From a8cb31e6c4ab4b5032d9f25edb2a169fcab15ea8 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 23:06:45 +0100 Subject: [PATCH 087/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 86cb0ed40..8b7834b7e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 Nichrome/self/40' - result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 40 }, version: '40', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Nichrome, family: { name: Chrome, version: 40 }, version: '40', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } readable: 'Nichrome 40 on Windows 10' From d3fe57bf5d31c68902f12a42ea92031c344f9905 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 23:18:25 +0100 Subject: [PATCH 088/540] ignore --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 14f16db80..1ee8effbd 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a' readable: 'MultiZilla 1.6.1.0 on Windows XP' result: { browser: { name: MultiZilla, version: 1.6.1.0, type: browser }, engine: { name: Gecko }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } +x \ No newline at end of file From 5d844846a67f1f9334a976ff34f4716fcf41ef97 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 5 Jun 2020 23:25:42 +0100 Subject: [PATCH 089/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 1ee8effbd..14f16db80 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a' readable: 'MultiZilla 1.6.1.0 on Windows XP' result: { browser: { name: MultiZilla, version: 1.6.1.0, type: browser }, engine: { name: Gecko }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } -x \ No newline at end of file From 0344f31c161e20869532447bcb2f9d3802b6c1cb Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:02:54 +0100 Subject: [PATCH 090/540] Shiira Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..dcbaa9f92 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -91,6 +91,7 @@ [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Shiira', 'id' => 'shiira', 'regexp' => '/Shiira/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..601cecd7e 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|shiira|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..f00f59e77 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/522.11.1 (KHTML, like Gecko) Shiira Safari/125' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From bd36698c3683d1421b219bc75cdd34ca3ea14ec5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:24:59 +0100 Subject: [PATCH 091/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index f00f59e77..94df84bc2 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/522.11.1 (KHTML, like Gecko) Shiira Safari/125' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Shiira on OS X' + result: { browser: { name: Shiira, type: browser }, engine: { name: Webkit, version: 522.11.1 }, os: { name: 'OS X'}, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From a11b1efe011b4237858af1ab49f53e18d0f91768 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:40:00 +0100 Subject: [PATCH 092/540] OnePlus Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..00057f9dd 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -151,6 +151,7 @@ [ 'name' => 'Motorola WebKit', 'id' => 'motorola', 'regexp' =>'/MotorolaWebKit(?:\/([0-9.]*))?/u', 'details' => 3 ], [ 'name' => 'NetFront Life Browser', 'id' => 'netfrontlife', 'regexp' =>'/NetFrontLifeBrowser\/([0-9.]*)/u' ], [ 'name' => 'OneBrowser', 'id' => 'onebrowser', 'regexp' =>'/OneBrowser\/([0-9.]*)/u' ], + [ 'name' => 'OnePlus Browser', 'id' => 'oneplus', 'regexp' => '/OnePlusBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://www.oneplus.com/ [ 'name' => 'PocketLink', 'id' => 'plink', 'regexp' =>'/PLink ([0-9.]+)/iu', 'details' => 2 ], [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/Polaris[\/ ]v?([0-9.]*)/iu', 'details' => 2 ], [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/POLARIS([0-9.]+)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..9fdc722f6 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|oneplus|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..592ab3656 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 10; en-us; GM1910 Build/QKQ1.190716.003) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OnePlusBrowser/30.5.0.9' + readable: 'OnePlus Browser 3.3.1 on a OnePlus 7 Pro running Android 10' + result: { browser: { name: 'OnePlus Browser', family: { name: Chrome, version: 53.0.2785.134 }, version: 30.5.0.9, type: browser }, engine: { name: Blink }, os: { name: Android, version: 10 }, device: { type: mobile, subtype: smart, manufacturer: OnePlus, model: '7 Pro' } } From b25641dd8cdf0beaeda1e142b872885ffccd15d6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:46:16 +0100 Subject: [PATCH 093/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 592ab3656..31088c3ac 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 10; en-us; GM1910 Build/QKQ1.190716.003) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OnePlusBrowser/30.5.0.9' - readable: 'OnePlus Browser 3.3.1 on a OnePlus 7 Pro running Android 10' - result: { browser: { name: 'OnePlus Browser', family: { name: Chrome, version: 53.0.2785.134 }, version: 30.5.0.9, type: browser }, engine: { name: Blink }, os: { name: Android, version: 10 }, device: { type: mobile, subtype: smart, manufacturer: OnePlus, model: '7 Pro' } } + readable: 'OnePlus Browser 30.5.0.9 on an OnePlus 7 Pro running Android 10' + result: { browser: { name: 'OnePlus Browser', family: { name: Chrome, version: 53 }, version: 30.5.0.9, type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart, manufacturer: OnePlus, model: '7 Pro' } } From 94b6667f8506c2034024895e1c326cd3b58f274a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:49:31 +0100 Subject: [PATCH 094/540] Privacy Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5032d25c9 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -85,6 +85,7 @@ [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org + [ 'name' => 'Privacy Browser', 'id' => 'privacy', 'regexp' => '/PrivacyBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.stoutner.com/privacy-browser/ [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..443d4db95 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|privacy|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..9e0ecc7fb 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) PrivacyBrowser/1.0' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From a3b72af6611aab4ea31cd13b0f60c1174fff07ff Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:56:27 +0100 Subject: [PATCH 095/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 9e0ecc7fb..91295a050 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) PrivacyBrowser/1.0' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Privacy Browser 1.0 on Windows 10' + result: { browser: { name: 'Privacy Browser', version: '1.0', type: browser }, engine: { name: Webkit, version: '537.36' }, os: { name: Windows, version: { value: '10.0', alias: '10' }, device: { type: desktop } } From a7ae65d8aad331ce23e203f96ed63e6f0a08abcd Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 09:58:52 +0100 Subject: [PATCH 096/540] Qiyu Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..fe0a33d45 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -86,6 +86,7 @@ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], + [ 'name' => 'Qiyu Browser', 'id' => 'qiyu', 'regexp' => '/Qiyu\/([0-9.]*)/i', 'type' => Constants\DeviceType::DESKTOP ], // see: https://apps.apple.com/cn/app/qi-yu-liu-lan-qi/id959447103 [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..fa372c0a6 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|qiyu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5a07eb516 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.63 Safari/537.36 Qiyu/1.6.0.0' + result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Tungsten Browser 2.0 on Windows 10' From 02b742bdf6c49a12885be4fbb6337f2714a73d32 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:14:18 +0100 Subject: [PATCH 097/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5a07eb516..ae0cd7d51 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.63 Safari/537.36 Qiyu/1.6.0.0' - result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'Tungsten Browser 2.0 on Windows 10' + result: { browser: { name: 'Qiyu Browser', family: { name: Chrome, version: 51 }, version: 1.6.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Qiyu Browser 1.6.0.0 on Windows 10' From f730c6d97b0f7f76acd4e4c7698eda0bec688e21 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:21:20 +0100 Subject: [PATCH 098/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 91295a050..d31068355 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) PrivacyBrowser/1.0' readable: 'Privacy Browser 1.0 on Windows 10' - result: { browser: { name: 'Privacy Browser', version: '1.0', type: browser }, engine: { name: Webkit, version: '537.36' }, os: { name: Windows, version: { value: '10.0', alias: '10' }, device: { type: desktop } } + result: { browser: { name: 'Privacy Browser', version: '1.0', type: browser }, engine: { name: Webkit, version: '537.36' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 6649fedf488b4e7bac83ca2ca7b7f17aaed16b11 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:28:53 +0100 Subject: [PATCH 099/540] Quick Look Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..6125e9362 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -87,6 +87,7 @@ [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], + [ 'name' => 'Quick Look', 'id' => 'quicklook', 'regexp' => '/QuickLook\/([0-9.]*)/u' ], // see: https://en.wikipedia.org/wiki/Quick_Look [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..b937cdcde 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|quicklook|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..8452f52c8 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) QuickLook/5.0' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From b51d22f05823089eb4e45fefcfe26f9ff63dd089 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:35:41 +0100 Subject: [PATCH 100/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 8452f52c8..049bbef0d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) QuickLook/5.0' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Quick Look 5.0 on OS X El Capitan 10.11' + result: { browser: { name: 'Quick Look', version: '5.0', type: browser }, engine: { name: Webkit, version: 601.6.17 }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 214526438cc18a3894b4885564a47b899f5cca23 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:38:38 +0100 Subject: [PATCH 101/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 049bbef0d..bbf7d4d93 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) QuickLook/5.0' readable: 'Quick Look 5.0 on OS X El Capitan 10.11' result: { browser: { name: 'Quick Look', version: '5.0', type: browser }, engine: { name: Webkit, version: 601.6.17 }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +x \ No newline at end of file From 463752f48105834f7e03a6378025e39afbd284c9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 10:39:05 +0100 Subject: [PATCH 102/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index bbf7d4d93..049bbef0d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) QuickLook/5.0' readable: 'Quick Look 5.0 on OS X El Capitan 10.11' result: { browser: { name: 'Quick Look', version: '5.0', type: browser }, engine: { name: Webkit, version: 601.6.17 }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } -x \ No newline at end of file From 2cbfc511c8e3390e0a9630ba4a29cc95739c7fb2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 11:22:55 +0100 Subject: [PATCH 103/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index ae0cd7d51..45b1db59a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.63 Safari/537.36 Qiyu/1.6.0.0' result: { browser: { name: 'Qiyu Browser', family: { name: Chrome, version: 51 }, version: 1.6.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } readable: 'Qiyu Browser 1.6.0.0 on Windows 10' +z \ No newline at end of file From a25f4289f221484ab149e0f01d619b79cb15eac2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 11:23:08 +0100 Subject: [PATCH 104/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 45b1db59a..ae0cd7d51 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.63 Safari/537.36 Qiyu/1.6.0.0' result: { browser: { name: 'Qiyu Browser', family: { name: Chrome, version: 51 }, version: 1.6.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } readable: 'Qiyu Browser 1.6.0.0 on Windows 10' -z \ No newline at end of file From 4410b08e04f396e1d45ed59bea9c16a2ece6843c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 11:50:07 +0100 Subject: [PATCH 105/540] SlimJet Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..b01b20846 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -92,6 +92,7 @@ [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'SlimJet Browser', 'id' => 'slimjet', 'regexp' => '/ Slimjet\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.slimjet.com/ [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1a8ddfb88 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|slimjet|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..65ee9c895 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Slimjet/19.0.2.0' + result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Tungsten Browser 2.0 on Windows 10' From 9e4ccff6072e37b465a51ec1ca93fc48d5c653b0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 11:59:02 +0100 Subject: [PATCH 106/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 65ee9c895..0779a08c5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Slimjet/19.0.2.0' - result: { browser: { name: 'Tungsten Browser', family: { name: Chrome, version: 44 }, version: '2.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'Tungsten Browser 2.0 on Windows 10' + result: { browser: { name: 'SlimJet Browser', family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'SlimJet Browser 19.0.2.0 on Windows 10' From 0873e737fe9c5c3f9ad3eba66720be9e93f4d5e7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 13:45:29 +0100 Subject: [PATCH 107/540] Sputnik Browser --- data/applications-browsers.php | 2 ++ data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..50ec0c74a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -93,6 +93,8 @@ [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' => '/SputnikBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://browser.sputnik.ru/ + [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' => '/Sputnik\/([0-9.]*)/iu', 'details' => 3 ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..bf2b215a0 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|sputnik|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d7626093e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 SputnikBrowser/4.1.2810.0 (GOST) Safari/537.36' + readable: 'Sputnik 4.1.2810.0 on Windows 10' + result: { browser: { name: 'Sputnik', family: { name: Chrome, version: 64 }, version: 4.1.2810.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From b3d37f8093a4246ea712b5d2b73a514a2ac892f7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 20:41:15 +0100 Subject: [PATCH 108/540] Tenta Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e4b2eb997 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -167,6 +167,7 @@ [ 'name' => 'Sogou Mobile', 'id' => 'sogou', 'regexp' =>'/SogouMobileBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing\(And\)\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Symphony', 'id' => 'symphony', 'regexp' =>'/Symphony ([0-9.]+)$/u' ], + [ 'name' => 'Tenta Browser', 'id' => 'tenta', 'regexp' => '/ Tenta\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.tenta.android&hl=en [ 'name' => 'TinY', 'id' => 'ucpro', 'regexp' =>'/ucpro\/([0-9.]+)/iu' ], [ 'name' => 'Vivo Browser', 'id' => 'vivo', 'regexp' =>'/VivoBrowser\/([0-9.]+)/iu' ], [ 'name' => 'WebLite', 'id' => 'weblite', 'regexp' =>'/WebLite\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..5808c8825 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..6f134826f 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; th; vivo 1915) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' + readable: 'Tenta Browser 3.1.6 on a Vivo 1915 running Android 9' + result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64.0.3282.137 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, model: Vivo 1915 } } From dfb7df861608936f217166625c87822a0787019f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 20:47:34 +0100 Subject: [PATCH 109/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 6f134826f..82a7db600 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -71,6 +71,6 @@ readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; th; vivo 1915) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; en; SM-A205GN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' readable: 'Tenta Browser 3.1.6 on a Vivo 1915 running Android 9' result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64.0.3282.137 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, model: Vivo 1915 } } From f021d6f3c407e634a804ee11a5c120d9e4a04c99 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 20:52:39 +0100 Subject: [PATCH 110/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 82a7db600..7ec05ff0d 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; en; SM-A205GN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' - readable: 'Tenta Browser 3.1.6 on a Vivo 1915 running Android 9' - result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64.0.3282.137 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, model: Vivo 1915 } } + readable: 'Tenta Browser 3.1.6 on a Samsung Galaxy A20 running Android 9' + result: { browser: { name: 'Tenta Browser', version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy A20' } } From 56957514b9b02b77c0a879e278e6ce5783d46aae Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 6 Jun 2020 21:07:26 +0100 Subject: [PATCH 111/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 7ec05ff0d..99377239e 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -73,4 +73,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; en; SM-A205GN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' readable: 'Tenta Browser 3.1.6 on a Samsung Galaxy A20 running Android 9' - result: { browser: { name: 'Tenta Browser', version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy A20' } } + result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy A20' } } From ce96c263de3378cad596bcd65647aa914c947452 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 13:49:04 +0100 Subject: [PATCH 112/540] VMware Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..62dadf7e2 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -102,6 +102,7 @@ [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'VMware Browser', 'id' => 'vmware', 'regexp' => '/Air[Ww]atch Browser v([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..f4f81cc0b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|vmware|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..17cbb06a3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.4.1 Safari/605.1.15 (Airwatch Browser v7.9)' + result: { browser: { name: 'VMware Browser', version: 7.9, type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', nickname: 'El Capitan', version: '10.11.5' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'VMware Browser 7.9 on Mac OS X 10.11.5' From b5514ca72a6b7b693c1dbb4329982171a9d061ac Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 13:53:32 +0100 Subject: [PATCH 113/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 17cbb06a3..7b51ff272 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.4.1 Safari/605.1.15 (Airwatch Browser v7.9)' - result: { browser: { name: 'VMware Browser', version: 7.9, type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', nickname: 'El Capitan', version: '10.11.5' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'VMware Browser 7.9 on Mac OS X 10.11.5' + result: { browser: { name: 'VMware Browser', version: '7.9', type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'VMware Browser 7.9 on OS X El Capitan 10.11' From 6ef563e9f37e739cbf293dfe8f2b366c995e2a17 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 14:46:49 +0100 Subject: [PATCH 114/540] Whale Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..add8a277c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -104,6 +104,7 @@ [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Whale Browser', 'id' => 'whale', 'regexp' => '/ Whale\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://whale.naver.com/ [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], /* Mobile browsers */ diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..6a7aab42f 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|whale|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..ec5e701a6 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Whale/2.7.97.12 Safari/537.36' + readable: 'Whale Browser 2.7.97.12 on Windows 10' + result: { browser: { name: 'Whale Browser', family: { name: Chrome, version: 80 }, version: 2.7.97.12, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From be05350ec5a22e53cdf5050e2f9ed417d7918970 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:00:59 +0100 Subject: [PATCH 115/540] WinWAP Browser --- data/applications-browsers.php | 2 ++ data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..1e8b0789f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -104,6 +104,8 @@ [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'WinWAP Browser', 'id' => 'winwap', 'regexp' => '/WinWAP\/([0-9]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.winwap.com/mobile_applications/winwap_browser.php + [ 'name' => 'WinWAP Browser', 'id' => 'winwap', 'regexp' => '/WinWAP-SPBE\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], /* Mobile browsers */ diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8f24071e3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|winwap|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..6e9727fff 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: WinWAP/4.1 (Win32) WinWAP-X/4.1.0.192' + readable: 'WinWAP Browser 4 on Windows' + result: { browser: { name: 'WinWAP Browser', version: 4, type: browser }, os: { name: Windows }, device: { type: desktop } } From bcf322c5535ac84b2f72767bfb49177ded71433f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:10:52 +0100 Subject: [PATCH 116/540] WK Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..0fd21a716 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -104,6 +104,7 @@ [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'WK Browser', 'id' => 'wk', 'regexp' => '/wkbrowser ([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://github.com/keanulee/WKBrowser [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], /* Mobile browsers */ diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c261bbe79 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|wk|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..60370ca7b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; SM-G928F Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 wkbrowser 4.0.8 421' + readable: 'WK Browser 4.0.8 421 on a Samsung Galaxy S6 Edge+ running Android 7.0' + result: { browser: { name: 'WK Browser', family: { name: Chrome, version: 61 }, version: 4.0.8 421, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S6 Edge+' } } From 005972498eb1a6d97f2a61525d3964d8f47ec3d1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:17:20 +0100 Subject: [PATCH 117/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 60370ca7b..292649e88 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; SM-G928F Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 wkbrowser 4.0.8 421' - readable: 'WK Browser 4.0.8 421 on a Samsung Galaxy S6 Edge+ running Android 7.0' - result: { browser: { name: 'WK Browser', family: { name: Chrome, version: 61 }, version: 4.0.8 421, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S6 Edge+' } } + readable: 'WK Browser 4.0.8 on a Samsung Galaxy S6 Edge+ running Android 7.0' + result: { browser: { name: 'WK Browser', family: { name: Chrome, version: 61 }, version: 4.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S6 Edge+' } } From 7334955f5c42965f00b3067d8ef813a12c4458d7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:32:00 +0100 Subject: [PATCH 118/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 292649e88..a5964ebc5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; SM-G928F Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 wkbrowser 4.0.8 421' readable: 'WK Browser 4.0.8 on a Samsung Galaxy S6 Edge+ running Android 7.0' - result: { browser: { name: 'WK Browser', family: { name: Chrome, version: 61 }, version: 4.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S6 Edge+' } } + result: { browser: { name: 'WK Browser', using: { name: 'Chromium WebView', version: '61' }, version: 4.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S6 Edge+' } } From 0452d8ec7ff26003cd1c6a96d1445ac0bcafbf17 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:41:00 +0100 Subject: [PATCH 119/540] Yaani Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..25e2c912d 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -105,6 +105,7 @@ [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Yaani Browser', 'id' => 'yaani', 'regexp' => '/YaaniBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://www.yaani.com.tr/ /* Mobile browsers */ [ 'name' => '1Browser', 'id' => '1password', 'regexp' =>'/1Password\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..dcf146746 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|yaani|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..4c35beb62 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Android 8.0.0; SM-G950F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.9 YaaniBrowser/4.2.0.186 (Turkcell-TR) Mobile Safari/537.36' + readable: 'Yaani Browser 4.0.8 421 on a Samsung Galaxy S8 running Android 8.0.0' + result: { browser: { name: 'Yaani Browser', using: { name: Chrome, version: 54 }, version: 4.0.8 421, type: browser }, engine: { name: Blink }, os: { name: Android, version: '8.0.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } From a072828a0a105628ecacec7102a356a2e58315a0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:46:37 +0100 Subject: [PATCH 120/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 4c35beb62..2d2106db3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Android 8.0.0; SM-G950F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.9 YaaniBrowser/4.2.0.186 (Turkcell-TR) Mobile Safari/537.36' - readable: 'Yaani Browser 4.0.8 421 on a Samsung Galaxy S8 running Android 8.0.0' - result: { browser: { name: 'Yaani Browser', using: { name: Chrome, version: 54 }, version: 4.0.8 421, type: browser }, engine: { name: Blink }, os: { name: Android, version: '8.0.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } + readable: 'Yaani Browser 4.2.0.186 on a Samsung Galaxy S8 running Android 8.0.0' + result: { browser: { name: 'Yaani Browser',family: { name: Chrome, version: 54 }, version: 4.2.0.186, type: browser }, engine: { name: Blink }, os: { name: Android, version: '8.0.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } From c7956c352d25bc1f01755b453ee430e3e19371e9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:49:51 +0100 Subject: [PATCH 121/540] Zvu Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..12f12b47b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -105,6 +105,7 @@ [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Zvu Browser', 'id' => 'zvu', 'regexp' => '/ Zvu\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://zvu.com/ /* Mobile browsers */ [ 'name' => '1Browser', 'id' => '1password', 'regexp' =>'/1Password\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..ff6d84992 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|zvu|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..c5ca21afd 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20130204 Zvu/18.0.1' + result: { browser: { name: 'Zvu Browser', version: 18.0.1, type: browser }, engine: { name: Gecko, version: '18.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Zvu Browser 18.0.1 on Windows 7' From 06195a4e1a051a87b2c5e33c5bc5ef5a8897451a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 15:59:43 +0100 Subject: [PATCH 122/540] Falkon Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..07ba163a2 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -57,6 +57,7 @@ [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], + [ 'name' => 'Falkon', 'id' => 'falkon', 'regexp' => '/ Falkon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.falkon.org/ [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..026b54e2a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|falkon|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..02f9a39fc 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Falkon/3.0.0 Chrome/56.0.2924.122 Safari/537.36' + result: { browser: { name: 'Falkon', family: { name: Chrome, version: 56.0.2924.122 }, version: 3.0.0, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } + readable: 'Falkon 3.0.0 on Linux' From 59b4bc8b33b7c7d49347e946e5b366ddf20cd119 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 17:51:57 +0100 Subject: [PATCH 123/540] BlackHawk Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..242fa0e50 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -39,6 +39,7 @@ [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser + [ 'name' => 'Black Hawk', 'id' => 'blackhawk', 'regexp' => '/ BlackHawk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.netgate.sk/blackhawk/help/welcome-to-blackhawk-web-browser.html [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..ec0092f08 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|blackhawk|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..a1e92c687 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:25.3) Gecko/20150425 BlackHawk/25.3.1' + result: { browser: { name: 'Black Hawk', version: 25.3.1, type: browser }, engine: { name: Gecko, version: 25.3 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Black Hawk 25.3.1 on Windows 7' From 67ccc4febd9f76b4561c5f237fb90f3697620bcc Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 17:52:17 +0100 Subject: [PATCH 124/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 242fa0e50..8920de82a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -39,7 +39,7 @@ [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser - [ 'name' => 'Black Hawk', 'id' => 'blackhawk', 'regexp' => '/ BlackHawk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.netgate.sk/blackhawk/help/welcome-to-blackhawk-web-browser.html + [ 'name' => 'Black Hawk', 'id' => 'blackhawk', 'regexp' => '/BlackHawk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.netgate.sk/blackhawk/help/welcome-to-blackhawk-web-browser.html [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], From 529c8359066ea4237c7a3b33bc83e93e3a2a270b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 17:57:32 +0100 Subject: [PATCH 125/540] Bolt Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..c810d687f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -39,6 +39,7 @@ [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser + [ 'name' => 'Bolt Browser', 'id' => 'bolt', 'regexp' => '/ Bolt\/([0-9.]*)/i', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.boltbrowser.com/ [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..16631c542 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|bolt|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..268911b0d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' + result: { browser: { name: 'Bolt Browser', version: 2.514, type: browser }, engine: { name: Webkit, version: 534.6.3 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + readable: 'Bolt Browser 2.514 on Windows XP' From 58a190cf89445fd295e144c1ea88985c6b9425cf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:01:43 +0100 Subject: [PATCH 126/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 268911b0d..c7fce5574 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' - result: { browser: { name: 'Bolt Browser', version: 2.514, type: browser }, engine: { name: Webkit, version: 534.6.3 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' From 98a02010b5af4b2232d0caa5bfa05f6e7c937cc3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:03:46 +0100 Subject: [PATCH 127/540] BriskBard Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..4f291ed20 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -40,6 +40,7 @@ [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], + [ 'name' => 'Brisk Bard', 'id' => 'brisk', 'regexp' => '/BriskBard\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.briskbard.com/index.php?lang=en [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..668aefc6d 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brisk|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..03dda7f99 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: BriskBard/1.0 (Windows 10) BriskBard/1.0' + readable: 'Brisk Bard 1.0 on Windows 10' + result: { browser: { name: 'Brisk Bard', version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 2897807449a785c9151b50c9049cba236ff9da72 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:16:53 +0100 Subject: [PATCH 128/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 03dda7f99..51b1e53f7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: BriskBard/1.0 (Windows 10) BriskBard/1.0' - readable: 'Brisk Bard 1.0 on Windows 10' - result: { browser: { name: 'Brisk Bard', version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Brisk Bard 1.0 on Windows' + result: { browser: { name: 'Brisk Bard', version: '1.0', type: browser }, engine: { name: Blink }, os: { name: Windows }, device: { type: desktop } } From 936e260f31f1508df9e2d855b99f4297357ada6a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:22:22 +0100 Subject: [PATCH 129/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 51b1e53f7..f3649ed20 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: BriskBard/1.0 (Windows 10) BriskBard/1.0' readable: 'Brisk Bard 1.0 on Windows' - result: { browser: { name: 'Brisk Bard', version: '1.0', type: browser }, engine: { name: Blink }, os: { name: Windows }, device: { type: desktop } } + result: { browser: { name: 'Brisk Bard', version: '1.0', type: browser }, os: { name: Windows }, device: { type: desktop } } From e53273ec584d7cf7a92f62648a48cc2c37b98475 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:30:49 +0100 Subject: [PATCH 130/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index c7fce5574..3d56bb9b0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' +x \ No newline at end of file From 790e3dc1fcb20a129e351018c7e896146c6f54a1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:31:00 +0100 Subject: [PATCH 131/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 3d56bb9b0..c7fce5574 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' -x \ No newline at end of file From a68c3a8f7f354519251cdc709f6257d7a899dcd3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:39:56 +0100 Subject: [PATCH 132/540] gbfvdbvs --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index c7fce5574..3d56bb9b0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' +x \ No newline at end of file From 61bea40f090b824c86b2fd7432b5fb98285b7b06 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:40:15 +0100 Subject: [PATCH 133/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 3d56bb9b0..c7fce5574 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' -x \ No newline at end of file From a8df3f283a243c545d62c42861dff9e692df8009 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:52:57 +0100 Subject: [PATCH 134/540] BrowseX Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..54a15561a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -40,6 +40,7 @@ [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], + [ 'name' => 'BrowseX', 'id' => 'browsex', 'regexp' => '/BrowseX \(([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://dev.pdqi.com/fossil/browsex/doc/tip/index.html [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..36655a238 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|browsex|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..29b06b3ce 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5 [en] (X11; U; ) - BrowseX (2.0.0 Windows)' + readable: 'BrowseX 2.0.0 on Windows' + result: { browser: { name: 'BrowseX', version: 2.0.0, type: browser }, os: { name: Windows }, device: { type: desktop } } From b418f3b3dd3870eaca4e5a0a01bfb59bb4c549a9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 18:58:14 +0100 Subject: [PATCH 135/540] CCleaner Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3fbc65b71 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -43,6 +43,7 @@ [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html + [ 'name' => 'CCleaner Browser', 'id' => 'ccleaner', 'regexp' => '/CCleaner\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.ccleaner.com/ccleaner/browser [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..03da13fe9 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|ccleaner|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e7d4ab886 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 CCleaner/75.1.103.145' + result: { browser: { name: 'CCleaner Browser', family: { name: Chrome, version: 75.0.3770.142 }, version: 75.1.103.145, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'CCleaner Browser 75.1.103.145 on Windows 7' From 6870003ad8a4750f4287edc177552f854f52423b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 19:05:33 +0100 Subject: [PATCH 136/540] Chim Lac Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..27690fc07 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -44,6 +44,7 @@ [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html + [ 'name' => 'Chim Lac', 'id' => 'chimlac', 'regexp' => '/chimlac_browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://chimlac.com.vn/ [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..b283cbb63 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chimlac|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d48a560fa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) chimlac_browser/1.0 Chrome/57.0.2987.110 Safari/537.36' + result: { browser: { name: 'Chim Lac', family: { name: Chrome, version: 57.0.2987.110 }, version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Chim Lac 1.0 on Windows 7' From c8a66f19c5379a14c582a12dc524502dba7f5d9c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 19:13:38 +0100 Subject: [PATCH 137/540] Colibri Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e46fb1018 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -45,6 +45,7 @@ [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Colibri', 'id' => 'colibri', 'regexp' => '/Colibri\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://colibri.opqr.co/ [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Comodo Dragon', 'id' => 'dragon', 'regexp' =>'/Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..5b9c3766b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|colibri|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..3cea5b355 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Colibri/1.5.1 Chrome/61.0.3163.100 Electron/2.0.2 Safari/537.36' + result: { browser: { name: 'Colibri', using: { name: Electron, version: 2.0.2 }, family: { name: Chrome, version: 61.0.3163.100 }, version: 1.5.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Colibri 1.5.1 on Windows 7' From 570fff588bd0e95d1a5a18466b3b4eec5095b6bf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 19:22:03 +0100 Subject: [PATCH 138/540] Deg-degan Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..7a2d096b0 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -54,6 +54,7 @@ [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Deg-degan', 'id' => 'degan', 'regexp' => '/Degdegan\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..68e6f16e3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|degan|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e8866b570 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Degdegan/72.4.206 Chrome/66.4.3359.206 Safari/537.36' + result: { browser: { name: 'Deg-degan', using: { name: Electron, version: 2.0.2 }, family: { name: Chrome, version: 66.4.3359.206 }, version: 72.4.206, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Deg-degani 72.4.206 on Windows 7' From b3673c126fd3b2c3f346cf018052a99447466a2e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 19:27:31 +0100 Subject: [PATCH 139/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e8866b570..96cbf9fe7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Degdegan/72.4.206 Chrome/66.4.3359.206 Safari/537.36' - result: { browser: { name: 'Deg-degan', using: { name: Electron, version: 2.0.2 }, family: { name: Chrome, version: 66.4.3359.206 }, version: 72.4.206, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'Deg-degani 72.4.206 on Windows 7' + result: { browser: { name: 'Deg-degan', family: { name: Chrome, version: 66 }, version: 72.4.206, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Deg-degan 72.4.206 on Windows 7' From 9d98d0c5388b9a4189314da0104e56cc0a028c35 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 20:14:47 +0100 Subject: [PATCH 140/540] Add missing Firefox Channel Code Name --- src/Analyser/Header/Useragent/Browser.php | 5 ++--- tests/data/desktop/browser-other.yaml | 4 ++++ tests/data/mobile/browser-other.yaml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index f85d23b7a..426e7df22 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -673,7 +673,7 @@ private function detectOpera($ua) private function detectFirefox($ua) { - if (!preg_match('/(Firefox|GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho|Fennec|Phoenix|Firebird|Minimo|FxiOS|Focus)/ui', $ua)) { + if (!preg_match('/(Firefox|Lorentz|GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho|Fennec|Phoenix|Firebird|Minimo|FxiOS|Focus)/ui', $ua)) { return; } @@ -737,8 +737,7 @@ private function detectFirefox($ua) } } - - if (preg_match('/(GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho)/u', $ua, $match)) { + if (preg_match('/(Lorentz|GranParadiso|Namoroka|Shiretoko|Minefield|BonEcho)/u', $ua, $match)) { $this->data->browser->stock = false; $this->data->browser->name = 'Firefox'; $this->data->browser->channel = str_replace('GranParadiso', 'Gran Paradiso', $match[1]); diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..09e9bc465 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100411 Lorentz/3.6.3 GTB7.0' + readable: 'x' + result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..cdb56d4c3 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -69,4 +69,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' - result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } + result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } \ No newline at end of file From 20673dbf3f5e94200a3cd3d7f76ae61a19d5476f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 20:21:53 +0100 Subject: [PATCH 141/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 09e9bc465..27c18881d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100411 Lorentz/3.6.3 GTB7.0' - readable: 'x' - result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } + readable: 'Firefox Lorentz 3.6.3 on Mac OS X 10.6' + result: { browser: { name: Firefox, version: 3.6.3, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.6' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 828bfb5aadd982857cf4cd82905ea5ecefcfa900 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 20:24:09 +0100 Subject: [PATCH 142/540] cleanup --- tests/data/mobile/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index cdb56d4c3..5570a981f 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -69,4 +69,4 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' - result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } \ No newline at end of file + result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } From 07216ed14abd14542eac8e75b2e60f6d40222dd2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 21:45:24 +0100 Subject: [PATCH 143/540] FlameSky Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3780a8433 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -57,6 +57,7 @@ [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], + [ 'name' => 'FlameSky', 'id' => 'flamesky', 'regexp' => '/FlameSky\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/flameskyofficial/flamesky [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8872c95e3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flamesky|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..4a3179dc0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: FlameSky/5.0.0.0 Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.2987.110 Safari/537.36' + result: { browser: { name: 'FlameSky', family: { name: Chrome, version: 64.0.2987.110 }, version: 5.0.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'FlameSky 5.0.0.0 on Windows 7' From f43eea97193ebe15fa684702b68438b051ebd75f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 21:51:15 +0100 Subject: [PATCH 144/540] Framafox Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..31df07183 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -58,6 +58,7 @@ [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Framafox', 'id' => 'framafox', 'regexp' => '/Framafox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://framakey.org/telecharger/applications-portables-libres#internet [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..4319874ef 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|framafox|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..837c666ef 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0 Framafox/43.0.1' + result: { browser: { name: 'Framafox', version: 43.0.1, type: browser }, engine: { name: Gecko, version: 43.0 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Framafox 43.0.1 on Windows 7' From 3d03bf6c039c3d26870b229f2498eb2a91106ad5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 21:56:23 +0100 Subject: [PATCH 145/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 837c666ef..0461032aa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0 Framafox/43.0.1' - result: { browser: { name: 'Framafox', version: 43.0.1, type: browser }, engine: { name: Gecko, version: 43.0 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Framafox', family: { name: Firefox, version: '43.0' }, version: 43.0.1, type: browser }, engine: { name: Gecko, version: '43.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Framafox 43.0.1 on Windows 7' From 5e0c4bc4aaf3b834605b6aca4733bf8773e66d5f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 22:05:02 +0100 Subject: [PATCH 146/540] Freeu Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..af0bc3e0c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -58,6 +58,7 @@ [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Freeu Browser', 'id' => 'freeu', 'regexp' => '/ Free[Uu]\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://play.google.com/store/apps/details?id=com.freeuvpn.android&hl=en [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..80f453a93 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|freeu|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5391cfada 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.69 Freeu/61.0.3163.69 MRCHROME SOC Safari/537.36' + result: { browser: { name: 'Freeu Browser', family: { name: Chrome, version: 61 }, version: 61.0.3163.69, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Freeu Browser 61.0.3163.69 on Windows 7' From 3cba4bf09224b407abd67b92bd05793623aa3e28 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sun, 7 Jun 2020 22:39:53 +0100 Subject: [PATCH 147/540] Hola Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5b5343327 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -60,6 +60,7 @@ [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Hola Browser', 'id' => 'hola', 'regexp' => '/ Hola\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://play.google.com/store/apps/details?id=org.hola&hl=en [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?[\/ ](?:Pre)?([0-9.]*)/u' ], [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..3b8cead26 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|hola|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..780ffcfbc 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36 Hola/1.142.604' + result: { browser: { name: 'Hola Browser', family: { name: Chrome, version: 74.0.3729.157 }, version: 1.142.604, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Hola Browser 1.142.604 on Windows 7' From 05011e4f11095b0784e08b1508b999654b7f73cf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 12:27:00 +0100 Subject: [PATCH 148/540] K.Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..63581f982 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -139,6 +139,7 @@ [ 'name' => 'iSurf', 'id' => 'isurf', 'regexp' =>'/iSurf version \/v([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Jig Browser', 'id' => 'jig browser', 'regexp' =>'/jig browser(?: web| core|9i?)?;? ?([0-9.]+)?/u', 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Jumanji', 'id' => 'jumanji', 'regexp' =>'/jumanji/u' ], // see: jumanji browser ubuntu + [ 'name' => 'K.Browser', 'id' => 'kbrowser', 'regexp' => '/TNSBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.tnsua.browser [ 'name' => 'Kiosk', 'id' => 'kiosk', 'regexp' =>'/Kiosk\/([0-9.]*)/u' ], // see: http://www.kioskbrowser.net [ 'name' => 'LeBrowser', 'id' => 'lebrowser', 'regexp' =>'/LeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'LieBaoFast', 'id' => 'liebao', 'regexp' =>'/LieBaoFast\/([0-9.]*)/u' ], // see: http://www.liebao.cn diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8bb44f35e 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kbrowser|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..aea5f5345 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-J510H Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36 TNSBrowser/25.01' + readable: 'K.Browser 25.01 on a Samsung Galaxy S8 running Android 7.1.1' + result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64.0.3282.204 }, version: 25.01, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)', identifier: 'SM-J510H' } } From 8ce9be5b512418fd78761ee940737bc657df57c0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 12:31:22 +0100 Subject: [PATCH 149/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index aea5f5345..c8a61a027 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-J510H Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36 TNSBrowser/25.01' - readable: 'K.Browser 25.01 on a Samsung Galaxy S8 running Android 7.1.1' - result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64.0.3282.204 }, version: 25.01, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)', identifier: 'SM-J510H' } } + readable: 'K.Browser 25.01 on a Samsung Galaxy J5 (2016) running Android 7.1.1' + result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64 }, version: '25.01', type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)' } } From 87e4f889f3a25c18f17070a7c1f01d5f72a11f3d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 12:44:11 +0100 Subject: [PATCH 150/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index c8a61a027..4f7e1857b 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -74,3 +74,4 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-J510H Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36 TNSBrowser/25.01' readable: 'K.Browser 25.01 on a Samsung Galaxy J5 (2016) running Android 7.1.1' result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64 }, version: '25.01', type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)' } } +x \ No newline at end of file From c2bf90e1e60ed97664a3803b807046ac62803608 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 12:44:22 +0100 Subject: [PATCH 151/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 4f7e1857b..c8a61a027 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -74,4 +74,3 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-J510H Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36 TNSBrowser/25.01' readable: 'K.Browser 25.01 on a Samsung Galaxy J5 (2016) running Android 7.1.1' result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64 }, version: '25.01', type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)' } } -x \ No newline at end of file From 9baabad159e3b3fb008322ca952c9d4a903ab7ce Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 12:57:02 +0100 Subject: [PATCH 152/540] Kapiko Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..a2b563e33 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -67,6 +67,7 @@ [ 'name' => 'Iceweasel', 'id' => 'iceweasel', 'regexp' =>'/Iceweasel\/([0-9.]*)/iu', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Iridium', 'id' => 'iridium', 'regexp' =>'/Iridium\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php [ 'name' => 'Iron', 'id' => 'iron', 'regexp' =>'/Iron\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php + [ 'name' => 'Kapiko', 'id' => 'kapiko', 'regexp' => '/ Kapiko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://sites.google.com/site/kapikoproject/ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..7ea8adaa3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kapiko|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..743e7af5c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0' + result: { browser: { name: 'Kapiko', version: 3.0, type: browser }, engine: { name: Gecko, version: 1.9 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + readable: 'Kapiko 3.0 on Windows XP' From e660a94ccb498419228e07704b54d84b2a9fac6c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 13:09:00 +0100 Subject: [PATCH 153/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 743e7af5c..3be1fcc9d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0' - result: { browser: { name: 'Kapiko', version: 3.0, type: browser }, engine: { name: Gecko, version: 1.9 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: 'Kapiko', family: { name: Firefox, version: '3.0' }, version: '3.0', type: browser }, engine: { name: Gecko, version: 1.9 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Kapiko 3.0 on Windows XP' From d07af49fb40e6e9990a1f249f2a56245867ac75a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 13:32:00 +0100 Subject: [PATCH 154/540] Kylo Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..af5498239 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -70,6 +70,7 @@ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org + [ 'name' => 'Kylo', 'id' => 'kylo', 'regexp' => '/ Kylo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kylo.tv/ [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1591d9f34 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|kylo|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..f795ab2b3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100222 Firefox/3.6 Kylo/0.8.4.74873' + result: { browser: { name: 'Kylo', version: 0.8.4.74873, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + readable: 'Kylo 0.8.4.74873 on Windows XP' From c41811fc2b32eed727feef2bbe4f223b93bf6640 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 13:37:24 +0100 Subject: [PATCH 155/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index f795ab2b3..33b5ad360 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100222 Firefox/3.6 Kylo/0.8.4.74873' - result: { browser: { name: 'Kylo', version: 0.8.4.74873, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: 'Kylo', family: { name: Firefox, version: '3.6' }, version: 0.8.4.74873, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } readable: 'Kylo 0.8.4.74873 on Windows XP' From 669c7e0bf4f0ae642d69739332d4d37f9f205657 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:02:22 +0100 Subject: [PATCH 156/540] Min Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..a040ce5ad 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -76,6 +76,7 @@ [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], + [ 'name' => 'Min Browser', 'id' => 'min', 'regexp' => '/ min\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://minbrowser.github.io/min/ [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..2facb1f45 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|min|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e900c6cc7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) min/1.2.2 Chrome/49.0.2623.75 Electron/0.37.1 Safari/537.36' + result: { browser: { name: 'Min Browser', using: { name: Electron, version: 0.37.1 }, family: { name: Chrome, version: 49.0.2623.75 }, version: 1.2.2, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Min Browser 1.2.2 on Windows 7' From 6e4bc62cc8e6da787b4cc2c65f1c7fe0831d848d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:10:57 +0100 Subject: [PATCH 157/540] Mini Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..768a95e35 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -76,6 +76,7 @@ [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], + [ 'name' => 'Mini Browser', 'id' => 'mini', 'regexp' => '/MiniBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://dmkho.tripod.com/mb/index.html [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..f925ff345 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mini|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..fd33c00d3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) MiniBrowser/3.0 Safari/532.4' + result: { browser: { name: 'Mini Browser', version: 3.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Mini Browser 3.0 on Windows 7' From ddf34fb0cd736ad2544d9f9fb61881dd7cffa8d5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:18:40 +0100 Subject: [PATCH 158/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 768a95e35..a10d9cd7c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -76,7 +76,7 @@ [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], - [ 'name' => 'Mini Browser', 'id' => 'mini', 'regexp' => '/MiniBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://dmkho.tripod.com/mb/index.html + [ 'name' => 'Mini Browser', 'id' => 'mini', 'regexp' => '/ MiniBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://dmkho.tripod.com/mb/index.html [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], From 596067e15e476c522022f6b218664842f75824b6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:31:31 +0100 Subject: [PATCH 159/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fd33c00d3..919e2624b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) MiniBrowser/3.0 Safari/532.4' - result: { browser: { name: 'Mini Browser', version: 3.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Mini Browser', version: '3.0', type: browser }, engine: { name: Webkit, version: '532.4' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Mini Browser 3.0 on Windows 7' From d76ff22c4e2196b9a73fe10eaff4e05f295dcc7c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:38:17 +0100 Subject: [PATCH 160/540] Mypal Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..a01ec5605 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -78,6 +78,7 @@ [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser + [ 'name' => 'Mypal Browser', 'id' => 'mypal', 'regexp' => '/ Mypal\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/Feodor2/Mypal [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..d9a452a4f 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|mypal|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..69d02b0df 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:68.9) Gecko/20100101 Goanna/4.4 Firefox/68.9 Mypal/28.8.4' + result: { browser: { name: 'Mypal Browser', version: 28.8.4, type: browser }, engine: { name: Goanna, version: 4.4 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Mypal Browser 28.8.4 on Windows 7' From 30b459a8680651de9bf6aa8acda09f1283ee97a8 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:48:48 +0100 Subject: [PATCH 161/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 69d02b0df..db33ce453 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:68.9) Gecko/20100101 Goanna/4.4 Firefox/68.9 Mypal/28.8.4' - result: { browser: { name: 'Mypal Browser', version: 28.8.4, type: browser }, engine: { name: Goanna, version: 4.4 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Mypal Browser', family: { name: Firefox, version: '68.9' }, version: 28.8.4, type: browser }, engine: { name: Goanna, version: '4.4' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Mypal Browser 28.8.4 on Windows 7' From 8239e13a64e10966f109532a96de591096cc2763 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 14:58:31 +0100 Subject: [PATCH 162/540] Qute Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3d5b4090f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -88,6 +88,7 @@ [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Qute Browser', 'id' => 'qute', 'regexp' => '/qutebrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/qutebrowser/qutebrowser [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..182a0fe95 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|qute|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' + result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Qute Browser 0.9.1 on Windows 7' From 772770090751397893f3dae71a68b603a4689897 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 15:36:04 +0100 Subject: [PATCH 163/540] SalamWeb Browser --- data/applications-browsers.php | 2 ++ data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..9116b0792 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -91,6 +91,8 @@ [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'SalamWeb', 'id' => 'salam', 'regexp' => '/SalamWeb\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://salamweb.com/ + [ 'name' => 'SalamWeb', 'id' => 'salam', 'regexp' => '/Salam Browser/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..7f7b25307 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|salam|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..350bec8d1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' + result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'SalamWeb 3.0.1.592 on Windows 7' From c53c865c7cd10cb0b565ca764a44754621977b47 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:14:36 +0100 Subject: [PATCH 164/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 350bec8d1..6f265831f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' +x \ No newline at end of file From 1aa0784a0d740c88510435f5e5a4e778cbe5a78e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:14:47 +0100 Subject: [PATCH 165/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6f265831f..350bec8d1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' -x \ No newline at end of file From 106087f3a76a6cad5d42c37f64ea8bfc0a738565 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:28:03 +0100 Subject: [PATCH 166/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..6d7c2a551 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +x \ No newline at end of file From 1a571426951aa7a66ed974b583a8f18803ca6046 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:28:15 +0100 Subject: [PATCH 167/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d7c2a551..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -x \ No newline at end of file From b943f3b0e87fcb5a2e338915934a72356bec03e7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:54:45 +0100 Subject: [PATCH 168/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..6d7c2a551 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +x \ No newline at end of file From 69479295ff962bb7408bd2afeaf1dcfd2f6828aa Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 16:55:04 +0100 Subject: [PATCH 169/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d7c2a551..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -x \ No newline at end of file From a2883bbf1477f9d4f557028111630ca924fb10ea Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 17:19:20 +0100 Subject: [PATCH 170/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..6d7c2a551 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +x \ No newline at end of file From 4617ba7451d5a1017b6ec4f99f7c459144f2a867 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 17:19:43 +0100 Subject: [PATCH 171/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d7c2a551..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -x \ No newline at end of file From 1d85cb050fb05809c05fec1af79eb2089f2f8067 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 17:33:00 +0100 Subject: [PATCH 172/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 350bec8d1..6f265831f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' +x \ No newline at end of file From 5d8e53f16d7e7cbba53a8ed3d87420fec605b843 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 17:33:13 +0100 Subject: [PATCH 173/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6f265831f..350bec8d1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' -x \ No newline at end of file From dc0791a5320f08c9ecd6af5c45bd8841becdd8a6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:10:42 +0100 Subject: [PATCH 174/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..6d7c2a551 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +x \ No newline at end of file From fcbed6ac0d35be980a44f27d824572c0a0c0ccac Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:11:06 +0100 Subject: [PATCH 175/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d7c2a551..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -x \ No newline at end of file From 7c1bd21e0df717502aa8daa244acf3d9b3ceda33 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:35:49 +0100 Subject: [PATCH 176/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..4f2c5ab2d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +v \ No newline at end of file From 9ff8f57603c0d13b397a2a0e6aa402ddb1611a02 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:35:57 +0100 Subject: [PATCH 177/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 4f2c5ab2d..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -v \ No newline at end of file From affb5622d60add65fb7a9c94971f0a0672c98d40 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:38:14 +0100 Subject: [PATCH 178/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fbad910c7..04d06d3e5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' +n \ No newline at end of file From 37069f458a16c07f9aafdbbe884f1dbeeb45720d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 18:38:34 +0100 Subject: [PATCH 179/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 04d06d3e5..fbad910c7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' -n \ No newline at end of file From b344a4251281b5a71649bb91388ab1af02850c1c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 19:10:37 +0100 Subject: [PATCH 180/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 350bec8d1..1befa8493 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' +f \ No newline at end of file From f82998b9391fc757fc5ba51d453ba4305cd2cac1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 19:10:45 +0100 Subject: [PATCH 181/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 1befa8493..350bec8d1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' -f \ No newline at end of file From 9dc99e5dfbf299e0477b96e7e206c909c059bb8e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 19:49:30 +0100 Subject: [PATCH 182/540] Sielo Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..238ea9eb0 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -91,6 +91,7 @@ [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Sielo Browser', 'id' => 'sielo', 'regexp' => '/ Sielo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/SieloBrowser/sielo-legacy [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..ae5fa865b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sielo|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..b2e91b4de 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Sielo/1.16.07 Chrome/65.0.3325.151 Safari/537.36' + readable: 'x' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 90a40016c63d54e75cea6de97ed1955f725cd786 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 19:55:49 +0100 Subject: [PATCH 183/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index b2e91b4de..b73f4aeae 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Sielo/1.16.07 Chrome/65.0.3325.151 Safari/537.36' - readable: 'x' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Sielo Browser 1.16.07 on Windows 8' + result: { browser: { name: 'Sielo Browser', family: { name: Chrome, version: 65 }, version: 1.16.07, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.2', alias: '8' } }, device: { type: desktop } } From 215c2aa9c4f299b532455f89d0fb2a2b3532734f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 20:05:59 +0100 Subject: [PATCH 184/540] SiteKiosk browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..d1309e7a8 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -91,6 +91,7 @@ [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'SiteKiosk', 'id' => 'sitekiosk', 'regexp' => '/SiteKiosk ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.provisio.com/web/us/products/windows-kiosk-software-sitekiosk [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a1ebdd005 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sitekiosk|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..c3a57b819 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; SiteKiosk 7.0 Build 248)' + result: { browser: { name: 'SiteKiosk', version: 7.0, type: browser }, engine: { name: Trident }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'SiteKiosk 7.0 on Windows 7' From 3556a5815e82ca054d48d7ebae02857efb4616fe Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 20:10:26 +0100 Subject: [PATCH 185/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index c3a57b819..b8df41f8f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; SiteKiosk 7.0 Build 248)' - result: { browser: { name: 'SiteKiosk', version: 7.0, type: browser }, engine: { name: Trident }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'SiteKiosk', version: '7.0', type: browser }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SiteKiosk 7.0 on Windows 7' From ebaa0eb78053f2cb7ecbc4786dbd9e4fba8b1865 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 20:20:52 +0100 Subject: [PATCH 186/540] Slack (in-App) web browser --- data/applications-others.php | 1 + data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..1ffeea4b4 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,6 +72,7 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], + [ 'name' => 'Slack', 'id' => 'slack', 'regexp' => '/ Slack_SSB\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..9a28422e6 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|slack|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..5b02175ac 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) AtomShell/2.3.1 Chrome/52.0.2743.82 Electron/1.3.8 Safari/537.36 Slack_SSB/2.3.1' + readable: 'Slack 2.3.1 on a LeEco Le 2 X526 running Android 6.0.1' + result: { browser: { name: Slack, using: { name: Electron, version: 1.3.8 }, family: { name: Chrome, version: 52.0.2743.82 }, version: 2.3.1, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 7.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } From 45cafa95b87bc7c334f3946b837cf32ae1721808 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 20:28:12 +0100 Subject: [PATCH 187/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 5b02175ac..1bb667352 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -84,5 +84,5 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) AtomShell/2.3.1 Chrome/52.0.2743.82 Electron/1.3.8 Safari/537.36 Slack_SSB/2.3.1' - readable: 'Slack 2.3.1 on a LeEco Le 2 X526 running Android 6.0.1' - result: { browser: { name: Slack, using: { name: Electron, version: 1.3.8 }, family: { name: Chrome, version: 52.0.2743.82 }, version: 2.3.1, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 7.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } + readable: 'Slack 2.3.1 on macOS Sierra 10.12' + result: { browser: { name: Slack, using: { name: Electron, version: 2.3.1 }, family: { name: Chrome, version: 52 }, version: 2.3.1, type: 'app:chat' }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '10.12', nickname: Sierra } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 7ff3ea988f7ae5a5bfc1a21a8a7c753e5e419d3c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 20:35:07 +0100 Subject: [PATCH 188/540] Station browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..0dcb78604 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -94,6 +94,7 @@ [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com + [ 'name' => 'Station Browser', 'id' => 'station', 'regexp' => '/ Station\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://getstation.com/ [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8e7602e64 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|station|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..196a26d57 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Station/1.57.1 Chrome/76.0.3809.131 Safari/537.36' + readable: 'Station Browser 1.57.1 on Windows 10' + result: { browser: { name: 'Station Browser', family: { name: Chrome, version: 76 }, version: 1.57.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 12a7dd2745b84c2c34da3d66f5e2c462ffd3f803 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 21:13:12 +0100 Subject: [PATCH 189/540] Update applications-browsers.php --- data/regexes/applications-browsers.php | 1 + 1 file changed, 1 insertion(+) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..8f1983526 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -3,3 +3,4 @@ namespace WhichBrowser\Data; Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +x \ No newline at end of file From 1cf5f7cfbce5e032443e4e9356269eac2e558c8c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Mon, 8 Jun 2020 21:13:22 +0100 Subject: [PATCH 190/540] Update applications-browsers.php --- data/regexes/applications-browsers.php | 1 - 1 file changed, 1 deletion(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 8f1983526..a23752a7a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -3,4 +3,3 @@ namespace WhichBrowser\Data; Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; -x \ No newline at end of file From 707d2dd9e8622d716262fc36b1c4937996f0cd45 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 09:40:53 +0100 Subject: [PATCH 191/540] AVG Secure Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..08b2cf5c6 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -32,6 +32,7 @@ [ 'name' => 'Avant Browser', 'id' => 'avant', 'regexp' =>'/Avant Browser/u' ], [ 'name' => 'Avant Browser', 'id' => 'avant', 'regexp' =>'/Avant TriCore/u' ], [ 'name' => 'Avast SafeZone', 'id' => 'asw', 'regexp' =>'/ASW\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'AVG Secure Browser', 'id' => 'avg', 'regexp' =>'/ AVG\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.avg.com/secure-browser [ 'name' => 'Aviator', 'id' => 'aviator', 'regexp' =>'/Aviator\/([0-9.]*)/u', 'details' => 1 ], // see: https://github.com/WhiteHatSecurity/Aviator [ 'name' => 'Baidu Browser', 'id' => 'flyflow', 'regexp' =>'/FlyFlow\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser\/([0-9.]*)/i' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..2d70a5e90 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..1757c6836 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 AVG/70.1.682.112' + result: { browser: { name: 'AVG Secure Browser', family: { name: Chrome, version: 70 }, version: 70.1.682.112, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'AVG Secure Browser 70.1.682.112 on Windows 7' From efb77313a42451f9f01a3a4d647dc59b16eca395 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 09:55:59 +0100 Subject: [PATCH 192/540] Beonex Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..36f1844fd 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -38,6 +38,7 @@ [ 'name' => 'Baidu Browser', 'id' => 'bdbrowser', 'regexp' =>'/bdbrowser_i18n\/([0-9.]*)/i' ], [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com + [ 'name' => 'Beonex', 'id' => 'beonex', 'regexp' =>'/Beonex\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.beonex.com/ [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..2bcfd47d4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..1e173315c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable' + result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'x' From a8411c085ae4199d09f64dcda825e9d0f961612d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:02:05 +0100 Subject: [PATCH 193/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 1e173315c..a287b92e6 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable' - result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'x' + result: { browser: { name: Beonex, version: 0.8.2, type: browser }, engine: { name: Gecko, version: 1.0.2 }, os: { name: Windows }, device: { type: desktop } } + readable: 'Beonex 0.8.2 on Windows' From 72ecd7243b5b6a82e0b35c07012d9daf82769270 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:11:15 +0100 Subject: [PATCH 194/540] Blackbird Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..b71c6f4d8 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -39,6 +39,7 @@ [ 'name' => 'Baidu Spark', 'id' => 'bdspark', 'regexp' =>'/BDSpark\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Beamrise', 'id' => 'beamrise', 'regexp' =>'/Beamrise\/([0-9.]*)/u' ], // see: http://beamrise.com [ 'name' => 'Black Wren', 'id' => 'blackwren', 'regexp' =>'/BlackWren\/([0-9.]*)/u', 'details' => 2 ], // see: https://github.com/conmarap/jetbrowser + [ 'name' => 'Blackbird', 'id' => 'blackbird', 'regexp' =>'/Blackbird\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.blackbirdbrowser.com/ [ 'name' => 'Brave', 'id' => 'brave', 'regexp' =>'/brave\/([0-9.]*)/u' ], [ 'name' => 'Byffox', 'id' => 'byffox', 'regexp' =>'/Byffox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Camino', 'id' => 'camino', 'regexp' =>'/Camino\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1647eb3b5 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|blackbird|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..59e1a1d8c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008120120 Blackbird/0.9991' + result: { browser: { name: 'Blackbird', version: 0.9991, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'Blackbird 0.9991 on Windows XP' From 8885538807fb429554f45bc9033b98b021fcbd91 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:17:49 +0100 Subject: [PATCH 195/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 59e1a1d8c..186e19dc5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008120120 Blackbird/0.9991' - result: { browser: { name: 'Blackbird', version: 0.9991, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'Blackbird', version: '0.9991', type: browser }, engine: { name: Blink, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Blackbird 0.9991 on Windows XP' From 4e5f81f8252cbfa5b65fe28a5f1049c869bd3771 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:22:22 +0100 Subject: [PATCH 196/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 186e19dc5..182820278 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008120120 Blackbird/0.9991' - result: { browser: { name: 'Blackbird', version: '0.9991', type: browser }, engine: { name: Blink, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'Blackbird', version: '0.9991', type: browser }, engine: { name: Gecko, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Blackbird 0.9991 on Windows XP' From abbeb9986613dd33fe864f701865a4e671f4a8d9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:47:34 +0100 Subject: [PATCH 197/540] Columbus Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..53319970d 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -45,6 +45,7 @@ [ 'name' => 'Canure', 'id' => 'canure', 'regexp' =>'/Canure\/([0-9.]*)/u', 'details' => 3 ], // see: http://canure.weebly.com/index.html [ 'name' => 'Charon', 'id' => 'charon', 'regexp' =>'/Charon/' ], // see: http://www.vitanuova.com/inferno/man/1/charon.html [ 'name' => 'ChromePlus', 'id' => 'chromeplus', 'regexp' =>'/ChromePlus(?:\/([0-9.]*))?$/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Columbus', 'id' => 'columbus', 'regexp' =>'/Columbus\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'CometBird', 'id' => 'cometbird', 'regexp' =>'/CometBird\/([0-9.]*)/u' ], // see: http://www.cometbird.com [ 'name' => 'Comodo Dragon', 'id' => 'comodo', 'regexp' =>'/Comodo_Dragon\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Comodo Dragon', 'id' => 'dragon', 'regexp' =>'/Dragon\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..b8fa0538d 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..a1420c7e7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) Columbus/1.2.1.0 Safari/533.3' + result: { browser: { name: Columbus, version: 1.2.1.0, type: browser }, engine: { name: Gecko, version: 533.3 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Columbus 1.2.1.0 on Windows 7' From 4d0c131bb8e2b9023dee72fe555f9280d04293ed Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 10:52:30 +0100 Subject: [PATCH 198/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index a1420c7e7..2fcc7dbab 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) Columbus/1.2.1.0 Safari/533.3' - result: { browser: { name: Columbus, version: 1.2.1.0, type: browser }, engine: { name: Gecko, version: 533.3 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: Columbus, version: 1.2.1.0, type: browser }, engine: { name: Webkit, version: '533.3' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Columbus 1.2.1.0 on Windows 7' From ffe67405063454204242f03c60b5ca6af8dfbf8c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 11:06:28 +0100 Subject: [PATCH 199/540] Cyberdog Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..898555771 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -52,6 +52,7 @@ [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Cyberdog', 'id' => 'cyberdog', 'regexp' =>'/Cyberdog\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..4f9f19a75 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..815a914a0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Cyberdog/2.0 (Macintosh; PPC)' + readable: 'Cyberdog 2.0 on Mac OS' + result: { browser: { name: Cyberdog, version: 2.0, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 4f57e63af84c1f1cb7a3fcc5dd0c45fecd34f5f3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 11:19:49 +0100 Subject: [PATCH 200/540] Demeter Browser --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..b7aced8f4 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -54,6 +54,7 @@ [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Demeter', 'id' => 'demeter', 'regexp' =>'/Demeter\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..0408c82a6 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|demeter|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..4a9ec1acb 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Demeter/1.0.9 Safari/125' + readable: 'Demeter 1.0.9 on Mac OS' + result: { browser: { name: Demeter, version: 1.0.9, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From a01d20fd3fefa0ec54ba80fc960f520685784852 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 11:28:30 +0100 Subject: [PATCH 201/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 4a9ec1acb..3d4cf79aa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Demeter/1.0.9 Safari/125' - readable: 'Demeter 1.0.9 on Mac OS' - result: { browser: { name: Demeter, version: 1.0.9, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Demeter 1.0.9 on Mac OS X 10.5' + result: { browser: { name: Demeter, version: 1.0.9, type: browser }, engine: { name: Webkit, version: 525.27.1 }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.5' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 3c459147887819d7bf93033d5b7de3e62005c0d0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 12:52:02 +0100 Subject: [PATCH 202/540] DeskBrowse Browser DeskBrowse Browser #395 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..fbd6edb78 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -54,6 +54,7 @@ [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'DeskBrowse', 'id' => 'deskbrowse', 'regexp' =>'/DeskBrowse\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..decb628d2 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|deskbrowse|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..070fe5344 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-pl) AppleWebKit/312.8 (KHTML, like Gecko, Safari) DeskBrowse/1.0' + readable: 'DeskBrowse 1.0 on Mac OS' + result: { browser: { name: DeskBrowse, version: 1.0, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 2136fd239409306805b9c410334c5938437613a7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 12:58:07 +0100 Subject: [PATCH 203/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 070fe5344..38ba29b11 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-pl) AppleWebKit/312.8 (KHTML, like Gecko, Safari) DeskBrowse/1.0' - readable: 'DeskBrowse 1.0 on Mac OS' - result: { browser: { name: DeskBrowse, version: 1.0, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'DeskBrowse 1.0 on OS X' + result: { browser: { name: DeskBrowse, version: '1.0', type: browser }, engine: { name: Webkit, version: '312.8' }, os: { name: 'OS X' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 5e62897a7c9201d8b8dda7d0f8046856749aeae5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 13:25:42 +0100 Subject: [PATCH 204/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 38ba29b11..53ad86de4 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-pl) AppleWebKit/312.8 (KHTML, like Gecko, Safari) DeskBrowse/1.0' readable: 'DeskBrowse 1.0 on OS X' result: { browser: { name: DeskBrowse, version: '1.0', type: browser }, engine: { name: Webkit, version: '312.8' }, os: { name: 'OS X' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +i \ No newline at end of file From d9fb0c1c05c4b2b155c182a7f5733acb6e15cdba Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 13:25:49 +0100 Subject: [PATCH 205/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 53ad86de4..38ba29b11 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-pl) AppleWebKit/312.8 (KHTML, like Gecko, Safari) DeskBrowse/1.0' readable: 'DeskBrowse 1.0 on OS X' result: { browser: { name: DeskBrowse, version: '1.0', type: browser }, engine: { name: Webkit, version: '312.8' }, os: { name: 'OS X' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } -i \ No newline at end of file From f05e41fabc6f31236ffe1d608b6d9935390addc0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 13:53:12 +0100 Subject: [PATCH 206/540] DocZilla Browser DocZilla Browser #397 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..8345cef1f 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -55,6 +55,7 @@ [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org + [ 'name' => 'DocZilla', 'id' => 'doczilla', 'regexp' =>'/DocZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..9336e6637 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|doczilla|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..66e4155df 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: DocZilla/2.7 (Windows; U; Windows NT 5.1; en-US; rv:2.7.0) Gecko/20050706 CiTEC Information' + result: { browser: { name: DocZilla, version: 2.7, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'DocZilla 2.7 on Windows XP' From 4f3a930578950d248a85f058a6f86b600bc09ba0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 13:59:20 +0100 Subject: [PATCH 207/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 66e4155df..b594ccf16 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: DocZilla/2.7 (Windows; U; Windows NT 5.1; en-US; rv:2.7.0) Gecko/20050706 CiTEC Information' - result: { browser: { name: DocZilla, version: 2.7, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: DocZilla, version: '2.7', type: browser }, engine: { name: Gecko, version: 2.7.0 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'DocZilla 2.7 on Windows XP' From ea961447130b9701a32962e55fecb203ff699233 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 14:12:30 +0100 Subject: [PATCH 208/540] DPlus Browser DPlus Browser #399 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e28c55305 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -56,6 +56,7 @@ [ 'name' => 'Daedalus', 'id' => 'daedalus', 'regexp' =>'/Daedalus ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Dillo', 'id' => 'dillo', 'regexp' =>'/Dillo\/([0-9.]*)/u' ], // see: http://www.dillo.org [ 'name' => 'Doga Rhodonit', 'id' => 'rhodonit', 'regexp' =>'/DogaRhodonit/u' ], + [ 'name' => 'DPlus Browser', 'id' => 'dplus', 'regexp' =>'/ DPlus ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..09dd6655a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|dplus|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e845aa81c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; DPlus 0.5)' + readable: 'DPlus Browser 0.5' + result: { browser: { name: DPlus Browser, version: '0.5', type: browser } } From 351f3dbb39ba84bc822b6107a2eb23518d5f91c7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 14:16:29 +0100 Subject: [PATCH 209/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e845aa81c..c61b54786 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/4.0 (compatible; DPlus 0.5)' readable: 'DPlus Browser 0.5' - result: { browser: { name: DPlus Browser, version: '0.5', type: browser } } + result: { browser: { name: DPlus Browser, version: '0.5', type: browser }, device: { type: desktop } } From 9ad9950f9c8373a95c2afbb704f05a1010c56264 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:04:01 +0100 Subject: [PATCH 210/540] GlobalMojo Browser GlobalMojo Browser #404 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..56d093cd0 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -59,6 +59,7 @@ [ 'name' => 'EudoraWeb', 'id' => 'eudoraweb', 'regexp' =>'/EudoraWeb ([0-9.]*)/u' ], [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'GlobalMojo', 'id' => 'globalmojo', 'regexp' =>'/GlobalMojo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?[\/ ](?:Pre)?([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..57578d83a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|globalmojo|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5ec2de8aa 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091105 Firefox/3.5.5 compat GlobalMojo/1.5.5 GlobalMojoExt/1.5' + result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'GlobalMojo 1.5.5 on Windows 7' From ff6421b247a7b014a14f15e9a7f6329dc96f1407 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:07:57 +0100 Subject: [PATCH 211/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5ec2de8aa..77e4c845e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091105 Firefox/3.5.5 compat GlobalMojo/1.5.5 GlobalMojoExt/1.5' - result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'GlobalMojo 1.5.5 on Windows 7' From 64d49884861a24a5ba0950ee0d4784359f4ddecf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:26:38 +0100 Subject: [PATCH 212/540] GreenBrowser GreenBrowser #406 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..997493788 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -60,6 +60,7 @@ [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'GreenBrowser', 'id' => 'greenbrowser', 'regexp' =>'/GreenBrowser/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?[\/ ](?:Pre)?([0-9.]*)/u' ], [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..3b96f74db 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|greenbrowser|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..74979b227 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; GreenBrowser)' + result: { browser: { name: 'GreenBrowser', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'GreenBrowser on Windows XP' From acaec5030afa12e57e5910da054ba7d326bfec69 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:33:09 +0100 Subject: [PATCH 213/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 74979b227..29f3c4cf1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; GreenBrowser)' - result: { browser: { name: 'GreenBrowser', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'GreenBrowser', type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'GreenBrowser on Windows XP' From c0b4e5025bb8788f06b0ba9a1771bd77f26360d3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:49:54 +0100 Subject: [PATCH 214/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 77e4c845e..72faf506c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091105 Firefox/3.5.5 compat GlobalMojo/1.5.5 GlobalMojoExt/1.5' result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'GlobalMojo 1.5.5 on Windows 7' +x \ No newline at end of file From a8ce069b193deade84427ae1d22849a62112207e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 15:50:01 +0100 Subject: [PATCH 215/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 72faf506c..77e4c845e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091105 Firefox/3.5.5 compat GlobalMojo/1.5.5 GlobalMojoExt/1.5' result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'GlobalMojo 1.5.5 on Windows 7' -x \ No newline at end of file From ddc124249e732f1c0ec2978d1319fee8c155059c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 17:36:59 +0100 Subject: [PATCH 216/540] Hydra Browser Hydra Browser #408 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..159ac1772 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -60,6 +60,7 @@ [ 'name' => 'Flock', 'id' => 'flock', 'regexp' =>'/Flock\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Galeon', 'id' => 'galeon', 'regexp' =>'/Galeon\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'GNOME Web', 'id' => 'epiphany', 'regexp' =>'/Epiphany\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Hydra Browser', 'id' => 'hydra', 'regexp' =>'/Hydra Browser/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'IBrowse', 'id' => 'ibrowse', 'regexp' =>'/IBrowse[\/ ]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'iCab', 'id' => 'icab', 'regexp' =>'/iCab(?: J)?[\/ ](?:Pre)?([0-9.]*)/u' ], [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..6955a0256 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|hydra|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d9b8e83ee 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Hydra Browser; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)' + result: { browser: { name: '115 Browser', family: { name: Chrome, version: 31 }, version: 5.1.6, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'x' From f5714771fc72bb8cd0f5a24c7995d8761379c678 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 17:48:36 +0100 Subject: [PATCH 217/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d9b8e83ee..e9ebe268f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Hydra Browser; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)' - result: { browser: { name: '115 Browser', family: { name: Chrome, version: 31 }, version: 5.1.6, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } - readable: 'x' + result: { browser: { name: 'Hydra Browser', type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'Hydra Browser on Windows XP' From f162175b1781b3dd5976997ae6edc740512a3313 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:00:16 +0100 Subject: [PATCH 218/540] iRider Browser iRider Browser #410 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..7070c09b9 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -65,6 +65,7 @@ [ 'name' => 'Iceape', 'id' => 'iceape', 'regexp' =>'/Iceape\/([0-9.]*)/u' ], [ 'name' => 'IceCat', 'id' => 'icecat', 'regexp' =>'/IceCat[ \/]([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.gnu.org/software/gnuzilla/ [ 'name' => 'Iceweasel', 'id' => 'iceweasel', 'regexp' =>'/Iceweasel\/([0-9.]*)/iu', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'iRider Browser', 'id' => 'irider', 'regexp' =>'/iRider ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Iridium', 'id' => 'iridium', 'regexp' =>'/Iridium\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php [ 'name' => 'Iron', 'id' => 'iron', 'regexp' =>'/Iron\/([0-9.]*)/u', 'details' => 2 ], // see: http://www.srware.net/en/software_srware_iron.php [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..3104df9b5 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e67f119ee 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; iRider 2.21.1108; FDM)' + result: { browser: { name: 'iRider Browser ', version: 2.21.1108, type: browser },os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'iRider Browser 2.21.1108 on Windows XP' From 24cb72fd0761a62874700cd1001ee292dff412ac Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:05:17 +0100 Subject: [PATCH 219/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e67f119ee..bb405956a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; iRider 2.21.1108; FDM)' - result: { browser: { name: 'iRider Browser ', version: 2.21.1108, type: browser },os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'iRider Browser', version: 2.21.1108, type: browser },os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'iRider Browser 2.21.1108 on Windows XP' From 51f0fadf14245f2457f90762c39dbdd684ba3e75 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:11:32 +0100 Subject: [PATCH 220/540] LBrowser LBrowser #412 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..f4ab3a1e3 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -70,6 +70,7 @@ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org + [ 'name' => 'LBrowser', 'id' => 'lbrowser', 'regexp' =>'/LBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..45eadc87e 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbrowser|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..eebaa3cbd 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20071115 Firefox/2.0.0.6 LBrowser/2.0.0.6' + result: { browser: { name: LBrowser, family: { name: Firefox, version: 2 }, version: 2.0.0.6, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } + readable: 'LBrowser 2.0.0.6 on Linux' From b9b1960b9df772df743fbb6dea2c903add00a3df Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:20:43 +0100 Subject: [PATCH 221/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index eebaa3cbd..ea0f4d817 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20071115 Firefox/2.0.0.6 LBrowser/2.0.0.6' - result: { browser: { name: LBrowser, family: { name: Firefox, version: 2 }, version: 2.0.0.6, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } + result: { browser: { name: LBrowser, family: { name: Firefox, version: 2.0.0.6 }, version: 2.0.0.6, type: browser }, engine: { name: Gecko, version: 1.8.1 }, os: { name: Linux }, device: { type: desktop } } readable: 'LBrowser 2.0.0.6 on Linux' From 7738184654a32c690b51ccc341d3149bf6955c60 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:30:50 +0100 Subject: [PATCH 222/540] Madfox Browser Madfox Browser #414 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..229023dab 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -74,6 +74,7 @@ [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS + [ 'name' => 'Madfox', 'id' => 'madfox', 'regexp' =>'/Madfox\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..2745b961e 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|madfox|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..30f61a153 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20051001 Firefox/1.0.7 Madfox/0.3.2u3' + result: { browser: { name: 'Madfox', family: { name: Firefox, version: '1.0.7' }, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 20051001 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'Madfox 0.3.2 on Windows XP' From fba2cb9861da1cf0506b057ce6f701778dc34c79 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:35:10 +0100 Subject: [PATCH 223/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 30f61a153..ca4fcfe11 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20051001 Firefox/1.0.7 Madfox/0.3.2u3' - result: { browser: { name: 'Madfox', family: { name: Firefox, version: '1.0.7' }, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 20051001 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'Madfox', family: { name: Firefox, version: '1.0.7' }, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 1.7.12 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Madfox 0.3.2 on Windows XP' From a98c9acc78feb4479592f34cee60023c7a40c867 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:55:56 +0100 Subject: [PATCH 224/540] Multi-Browser XP Multi-Browser XP #416 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..188749c07 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -78,6 +78,7 @@ [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser + [ 'name' => 'Multi-Browser XP', 'id' => 'multixp', 'regexp' =>'/Multi-Browser([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1f6285916 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|multixp|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..5623d2fe3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Multi-Browser 10.1 (www.multibrowser.de); .NET CLR 1.1.4322)' + result: { browser: { name: 'Multi-Browser XP', version: '10.1', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'Multi-Browser XP 10.1 on Windows XP' From 27d2c99314f45a6e2a086bf9904696f78736dfe2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 18:57:16 +0100 Subject: [PATCH 225/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 188749c07..31b5b0991 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -78,7 +78,7 @@ [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php [ 'name' => 'mlbrowser', 'id' => 'mlbrowser', 'regexp' =>'/mlbrowser/u' ], // see: https://github.com/Topguy/mlbrowser - [ 'name' => 'Multi-Browser XP', 'id' => 'multixp', 'regexp' =>'/Multi-Browser([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Multi-Browser XP', 'id' => 'multixp', 'regexp' =>'/Multi-Browser ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], From 400142d62b78867a42f2c86b9276b77cfb8e9759 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 19:08:10 +0100 Subject: [PATCH 226/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 5623d2fe3..240c86104 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Multi-Browser 10.1 (www.multibrowser.de); .NET CLR 1.1.4322)' - result: { browser: { name: 'Multi-Browser XP', version: '10.1', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'Multi-Browser XP', version: '10.1', type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Multi-Browser XP 10.1 on Windows XP' From 315060a916e2a58c8538e762f92818cab5846127 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 21:24:12 +0100 Subject: [PATCH 227/540] Realme Browser --- data/applications-browsers.php | 4 +++- data/regexes/applications-browsers.php | 2 +- tests/data/mobile/browser-other.yaml | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..f9a925d2b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -161,7 +161,9 @@ [ 'name' => 'Openwave', 'id' => 'km', 'regexp' =>'/KM\.Browser\/([0-9.]+)/iu', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Openwave', 'id' => 'up', 'regexp' =>'/UP\/([0-9.]+)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Oppo Browser', 'id' => 'oppo', 'regexp' =>'/OppoBrowser\/([0-9.]+)/iu' ], - [ 'name' => 'Quark Browser', 'id' => 'quark', 'regexp' =>'/Quark\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Quark Browser', 'id' => 'quark', 'regexp' =>'/Quark\/([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Realme Browser', 'id' => 'realme', 'regexp' =>'/RealmeBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], + [ 'name' => 'SEMC Browser', 'id' => 'semc', 'regexp' =>'/SEMC-Browser\/([0-9.]*)/u' ], [ 'name' => 'STNC HitchHiker' , 'id' => 'stnc', 'regexp' =>'/STNC-WTL\/[0-9.]*/u' ], [ 'name' => 'Sogou Mobile', 'id' => 'sogou', 'regexp' =>'/SogouMobileBrowser\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a5793389d 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 5570a981f..875c16a5f 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -70,3 +70,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7 Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OppoBrowser/4.6.5.3' readable: 'Oppo Browser 4.6.5.3 on an Oppo R7 running Android 4.4.4' result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; RMX1941 Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 RealmeBrowser/35.5.0.8' + readable: 'Realme Browser 35.5.0.8 on a RMX1941 running Android 4.4.4' + result: { browser: { name: 'Realme Browser', family: { name: Chrome, version: 53 }, version: 35.5.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } From b59ab748f6920143a4fd603655c366fd574653d3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 21:31:13 +0100 Subject: [PATCH 228/540] Update browser-other.yaml --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 875c16a5f..d78869a81 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -72,5 +72,5 @@ result: { browser: { name: 'Oppo Browser', family: { name: Chrome, version: 53 }, version: 4.6.5.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 4.4.4 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; RMX1941 Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 RealmeBrowser/35.5.0.8' - readable: 'Realme Browser 35.5.0.8 on a RMX1941 running Android 4.4.4' - result: { browser: { name: 'Realme Browser', family: { name: Chrome, version: 53 }, version: 35.5.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: 9 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: R7 } } + readable: 'Realme Browser 35.5.0.8 on a RMX1941 running Android 9' + result: { browser: { name: 'Realme Browser', family: { name: Chrome, version: 53 }, version: 35.5.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, model: RMX1941 } } From 230a862975c7e901fe048988b22f8e9de8a52037 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 21:51:40 +0100 Subject: [PATCH 229/540] Pure Browser Pure Browser not detected #240 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..10c369289 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -154,6 +154,7 @@ [ 'name' => 'PocketLink', 'id' => 'plink', 'regexp' =>'/PLink ([0-9.]+)/iu', 'details' => 2 ], [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/Polaris[\/ ]v?([0-9.]*)/iu', 'details' => 2 ], [ 'name' => 'Polaris', 'id' => 'polaris', 'regexp' =>'/POLARIS([0-9.]+)/u', 'details' => 2 ], + [ 'name' => 'Pure Browser', 'id' => 'pure', 'regexp' =>'/PureBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Open[Ww]ave\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Openwave Mobile Browser ([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Openwave', 'id' => 'openwave', 'regexp' =>'/Browser\/OpenWave([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::MOBILE ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..260db3455 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|pure|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d8e66003b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 PureBrowser/60.9.0' + result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: 60 }, version: 60.9.0, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } + readable: 'x' From cb8900b8619e5431c09cdb36f615db760e63e1fc Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 21:56:39 +0100 Subject: [PATCH 230/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d8e66003b..aa40a1166 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 PureBrowser/60.9.0' - result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: 60 }, version: 60.9.0, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } - readable: 'x' + result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: '60.0' }, version: 60.9.0, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } + readable: 'Pure Browser 60.9 on Linux' From 3eb82e86b130a76811e84859cc71ed76a0f5e21d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 22:01:24 +0100 Subject: [PATCH 231/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index aa40a1166..da6e9fe26 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 PureBrowser/60.9.0' - result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: '60.0' }, version: 60.9.0, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } + result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: '60.0' }, version: 60.9, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } readable: 'Pure Browser 60.9 on Linux' From 8b9d31430dd5aac49e133b85a705cbc6a9356fdb Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Tue, 9 Jun 2020 22:14:19 +0100 Subject: [PATCH 232/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index da6e9fe26..45e944745 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 PureBrowser/60.9.0' - result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: '60.0' }, version: 60.9, type: browser }, engine: { name: Gecko, version: '69.0' }, os: { name: Linux }, device: { type: desktop } } + result: { browser: { name: 'Pure Browser', family: { name: Firefox, version: '60.0' }, version: '60.9', type: browser }, engine: { name: Gecko, version: '60.0' }, os: { name: Linux }, device: { type: desktop } } readable: 'Pure Browser 60.9 on Linux' From 506b3039a39b9bd3fde5da0b9d64f8f659fb7321 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 12:33:26 +0100 Subject: [PATCH 233/540] NetCaptor Browser NetCaptor Browser #424 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..3192caea1 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -74,6 +74,7 @@ [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS + [ 'name' => 'NetCaptor', 'id' => 'netcaptor', 'regexp' =>'/NetCaptor ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://en.wikipedia.org/wiki/NetCaptor [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser\/([0-9.]*)/u' ], [ 'name' => 'Maxthon', 'id' => 'mxbrowser', 'regexp' =>'/MxBrowser-iPhone\/([0-9.]*)/u' ], [ 'name' => 'MixShark', 'id' => 'mixshark', 'regexp' =>'/MixShark\/([0-9.]*)/u' ], // see: http://terbaddo.free.fr/mixshark.php diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..b5fba9f9c 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|netcaptor|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..3b8325662 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0; NetCaptor 6.5.0RC1)' + result: { browser: { name: NetCaptor, version: 6.5.0, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + readable: 'NetCaptor 6.5.0 on Windows XP' From f5df8d77399e71a964bdd254b9eb457febc7cb0d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 12:46:07 +0100 Subject: [PATCH 234/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 3b8325662..cc3ce4412 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0; NetCaptor 6.5.0RC1)' - result: { browser: { name: NetCaptor, version: 6.5.0, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } - readable: 'NetCaptor 6.5.0 on Windows XP' + result: { browser: { name: NetCaptor, version: 6.5.0, type: browser }, os: { name: Windows, version: { value: '5.0', alias: 2000 } }, device: { type: desktop } } + readable: 'NetCaptor 6.5.0 on Windows 2000' From 851390b681918a523babfa2dbda0f7d77344a93d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 14:16:41 +0100 Subject: [PATCH 235/540] Open Live Writer --- data/applications-others.php | 1 + data/regexes/applications-others.php | 2 +- tests/data/appliance/openlivewriter.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 tests/data/appliance/openlivewriter.yaml diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..0aa153bd5 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -142,5 +142,6 @@ [ 'name' => 'Google Desktop', 'id' => 'google', 'regexp' =>'/Google Desktop\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Open Live Writer', 'id' => 'openlive', 'regexp' =>'/Open Live Writer ([0-9.]*)/u', 'details' => 3 ], ] ]; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..dc7722bf7 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor|openlive)/i'; diff --git a/tests/data/appliance/openlivewriter.yaml b/tests/data/appliance/openlivewriter.yaml new file mode 100644 index 000000000..94d235dfa --- /dev/null +++ b/tests/data/appliance/openlivewriter.yaml @@ -0,0 +1,4 @@ +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Open Live Writer 1.0)' + readable: 'Open Live Writer 1.0 on Windows 7' + result: { browser: { name: 'Microsoft Mobile Explorer', version: '3.0', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop, manufacturer: Compaq } } From 9dd770ba8dd99b4cd8c59740170f428323d4ea08 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 14:32:09 +0100 Subject: [PATCH 236/540] re-write after tests --- data/applications-browsers.php | 1 + data/applications-others.php | 3 +-- data/regexes/applications-browsers.php | 2 +- data/regexes/applications-others.php | 2 +- tests/data/appliance/openlivewriter.yaml | 4 ---- tests/data/desktop/browser-other.yaml | 4 ++++ 6 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 tests/data/appliance/openlivewriter.yaml diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5c488c19c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,6 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], + [ 'name' => 'Open Live Writer', 'id' => 'openlive', 'regexp' =>'/Open Live Writer ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://openlivewriter.org/ [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org diff --git a/data/applications-others.php b/data/applications-others.php index 0aa153bd5..5245ed3a9 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -141,7 +141,6 @@ [ 'name' => 'Google Earth', 'id' => 'google', 'regexp' =>'/Google Earth\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Google Desktop', 'id' => 'google', 'regexp' =>'/Google Desktop\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], - [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], - [ 'name' => 'Open Live Writer', 'id' => 'openlive', 'regexp' =>'/Open Live Writer ([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] ]; diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..da4d41dc1 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|openlive|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index dc7722bf7..382b3ab4c 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor|openlive)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/appliance/openlivewriter.yaml b/tests/data/appliance/openlivewriter.yaml deleted file mode 100644 index 94d235dfa..000000000 --- a/tests/data/appliance/openlivewriter.yaml +++ /dev/null @@ -1,4 +0,0 @@ -- - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Open Live Writer 1.0)' - readable: 'Open Live Writer 1.0 on Windows 7' - result: { browser: { name: 'Microsoft Mobile Explorer', version: '3.0', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop, manufacturer: Compaq } } diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d14e20ae3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Open Live Writer 1.0)' + readable: 'Open Live Writer 1.0 on Windows 7' + result: { browser: { name: 'Open Live Writer', version: '1.0', type: browser }, engine: { name: Trident, version: '11.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From 3ef49e5389623fda9822603a28ff4805f2182670 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 14:46:37 +0100 Subject: [PATCH 237/540] Orange Browser Orange Browser #430 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..31c818c94 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,6 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], + [ 'name' => 'Orange Browser', 'id' => 'orange', 'regexp' =>'/JuziBrowser/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.123juzi.com/ [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c57332809 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orange|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..ac5351821 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0; JuziBrowser) like Gecko' + result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'x on Windows 7' From 4aa101660c103f399afd507ec8ccd9bfcc9f0b24 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 14:55:58 +0100 Subject: [PATCH 238/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index ac5351821..003320d4a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0; JuziBrowser) like Gecko' - result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'x on Windows 7' + result: { browser: { name: 'Orange Browser', type: browser }, engine: { name: Trident, version: '7.0' }, os: { name: Windows, version: { value: '6.3', alias: '8.1' } }, device: { type: desktop } } + readable: 'Orange Browser on Windows 8.1' From d7b95ae71c8f8e3f0f35c8a3c42db623c734e6af Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:02:48 +0100 Subject: [PATCH 239/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 003320d4a..34dc17cf7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0; JuziBrowser) like Gecko' result: { browser: { name: 'Orange Browser', type: browser }, engine: { name: Trident, version: '7.0' }, os: { name: Windows, version: { value: '6.3', alias: '8.1' } }, device: { type: desktop } } readable: 'Orange Browser on Windows 8.1' +x \ No newline at end of file From d7acea0338ca25e8a472aafeacc5a3d3538a4ef7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:03:09 +0100 Subject: [PATCH 240/540] re-send as testrunner errored yet again --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 34dc17cf7..003320d4a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0; JuziBrowser) like Gecko' result: { browser: { name: 'Orange Browser', type: browser }, engine: { name: Trident, version: '7.0' }, os: { name: Windows, version: { value: '6.3', alias: '8.1' } }, device: { type: desktop } } readable: 'Orange Browser on Windows 8.1' -x \ No newline at end of file From acd370840890551a06b5980713b3e7ba7a75e75a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:14:40 +0100 Subject: [PATCH 241/540] Patriott Browser Patriott Browser #432 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..76b5b4df4 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -85,6 +85,7 @@ [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org + [ 'name' => 'Patriott Browser', 'id' => 'patriott', 'regexp' =>'/Patriott\:\:Browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://madgroup.x10.mx/patriott1.php [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..5ece198fd 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|patriott|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d3c284b78 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) Patriott::Browser/1.0.0 Safari/533.3' + result: { browser: { name: '115 Chrome', family: { name: Chrome, version: 21 }, version: 1.0.3, type: browser }, engine: { name: Webkit, version: '537.1' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: '115 Chrome 1.0.3 on Windows 7' From 9afc9f15005e4db146950a721030ce6b192cf4f0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:21:01 +0100 Subject: [PATCH 242/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d3c284b78..4a98cc609 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) Patriott::Browser/1.0.0 Safari/533.3' - result: { browser: { name: '115 Chrome', family: { name: Chrome, version: 21 }, version: 1.0.3, type: browser }, engine: { name: Webkit, version: '537.1' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: '115 Chrome 1.0.3 on Windows 7' + result: { browser: { name: 'Patriott Browser', version: 1.0.0, type: browser }, engine: { name: Webkit, version: '533.3' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Patriott Browser 1.0.0 on Windows 7' From f8ce0c3f2a852294692e83cd1eed9184fd3dac43 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:31:02 +0100 Subject: [PATCH 243/540] Perk Browser Perk Browser #434 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..126ece6ce 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -85,6 +85,7 @@ [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org + [ 'name' => 'Perk', 'id' => 'perk', 'regexp' =>'/ Perk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.perk.com/ [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..180ea9c85 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|perk|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..4da0d07a7 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 Perk/3.6.0.0' + result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Beamrise 29.3.0.6900 on Windows 7' From c4e8460a3fc5ea1f8dd39dcf452eaa28022b5fa7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 15:39:53 +0100 Subject: [PATCH 244/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 4da0d07a7..1f9ddd85a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22 Perk/3.6.0.0' - result: { browser: { name: Beamrise, family: { name: Chrome, version: 29 }, version: 29.3.0.6900, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'Beamrise 29.3.0.6900 on Windows 7' + result: { browser: { name: Perk, family: { name: Chrome, version: 25 }, version: 3.6.0.0, type: browser }, engine: { name: Webkit, version: '537.22' }, os: { name: Windows, version: { value: '6.2', alias: '8' } }, device: { type: desktop } } + readable: 'Perk 3.6.0.0 on Windows 8' From d399d841f51a5f4c70fb1eeaf2256da3636dfd7f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:20:30 +0100 Subject: [PATCH 245/540] Polarity Browser Polarity Browser #438 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..7a96ded5e 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -85,6 +85,7 @@ [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org + [ 'name' => 'Polarity', 'id' => 'polarity', 'regexp' =>'/Polarity\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Qihoo 360', 'id' => 'qihu', 'regexp' =>'/QIHU THEWORLD/u' ], [ 'name' => 'QtWeb', 'id' => 'qtweb', 'regexp' =>'/QtWeb Internet Browser\/([0-9.]*)/u' ], [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..9525ebfc4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|polarity|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..fc2230cd3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Villanova/1.9.2.12 Polarity/3.0.0 Firefox/4.0' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From e50060fbe57bc4c6b6743f56ac11abc4e338448e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:28:37 +0100 Subject: [PATCH 246/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index fc2230cd3..27bd9e23b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Villanova/1.9.2.12 Polarity/3.0.0 Firefox/4.0' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Polarity 3.0.0 on Windows 7' + result: { browser: { name: Polarity, family: { name: Firefox, version: '4.0' }, version: 3.0.0, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From a5e76d8393822fd38dfbf58ce2eaead7b20b346d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:38:52 +0100 Subject: [PATCH 247/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 27bd9e23b..c43a40669 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Villanova/1.9.2.12 Polarity/3.0.0 Firefox/4.0' readable: 'Polarity 3.0.0 on Windows 7' result: { browser: { name: Polarity, family: { name: Firefox, version: '4.0' }, version: 3.0.0, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } +z \ No newline at end of file From f2803617fad7975e630e145d36991e37fb781ab5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:39:15 +0100 Subject: [PATCH 248/540] re-submit as testrunner broken again (no code change) --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index c43a40669..27bd9e23b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Villanova/1.9.2.12 Polarity/3.0.0 Firefox/4.0' readable: 'Polarity 3.0.0 on Windows 7' result: { browser: { name: Polarity, family: { name: Firefox, version: '4.0' }, version: 3.0.0, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } -z \ No newline at end of file From 089b9f751c3ab5da344920312bad6bcd5e25bab2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:49:01 +0100 Subject: [PATCH 249/540] Sundance Browser Sundance Browser #440 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..5aa14df61 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -95,6 +95,7 @@ [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], + [ 'name' => 'Sundance', 'id' => 'sundance', 'regexp' =>'/Sundance\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a83e9b6ff 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|sundance|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..8adc9ab82 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0(Compatible; Windows; U; en-US;) Sundance/0.9.0.33' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 4c9ef92290ab5dcd9407306152a7390074377755 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 16:53:21 +0100 Subject: [PATCH 250/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 8adc9ab82..49e343a1f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0(Compatible; Windows; U; en-US;) Sundance/0.9.0.33' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Sundance 0.9.0.33 on Windows' + result: { browser: { name: Sundance, version: 0.9.0.33, type: browser }, os: { name: Windows }, device: { type: desktop } } From 78af32e8e9da9c30c2be97c3a96f62820c8cc1a6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 17:10:36 +0100 Subject: [PATCH 251/540] Sundial Browser Sundial Browser #442 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..567051ab8 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -95,6 +95,7 @@ [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], + [ 'name' => 'Sundial', 'id' => 'sundial', 'regexp' =>'/Sundial\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.sundialbrowser.com/ [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a28075f91 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|sundial|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..40b61e20d 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20110610 Firefox/4.0.1 Sundial/4.0.1_1.0' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 3eabbc86650ce1b2ef22730078191af4c566107f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 17:20:59 +0100 Subject: [PATCH 252/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 40b61e20d..0e0543501 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20110610 Firefox/4.0.1 Sundial/4.0.1_1.0' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Sundial 4.0.1 on Windows 7' + result: { browser: { name: Sundial, family: { name: Firefox, version: 4.0.1 }, version: 4.0.1, type: browser }, engine: { name: Gecko, version: 2.0.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } },device: { type: desktop } } From 550ae9c2fc122545da8512e9bb83425b40e278c2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 17:33:45 +0100 Subject: [PATCH 253/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 0e0543501..7f7edf5ae 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20110610 Firefox/4.0.1 Sundial/4.0.1_1.0' readable: 'Sundial 4.0.1 on Windows 7' result: { browser: { name: Sundial, family: { name: Firefox, version: 4.0.1 }, version: 4.0.1, type: browser }, engine: { name: Gecko, version: 2.0.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } },device: { type: desktop } } +z \ No newline at end of file From b1d09b4f8da384b4823e7ae74b171c6ff3ae5edf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 17:40:42 +0100 Subject: [PATCH 254/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7f7edf5ae..0e0543501 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20110610 Firefox/4.0.1 Sundial/4.0.1_1.0' readable: 'Sundial 4.0.1 on Windows 7' result: { browser: { name: Sundial, family: { name: Firefox, version: 4.0.1 }, version: 4.0.1, type: browser }, engine: { name: Gecko, version: 2.0.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } },device: { type: desktop } } -z \ No newline at end of file From 895b3fb6c44c0811e733c44c45bfb70dba22ad35 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 17:53:49 +0100 Subject: [PATCH 255/540] Swiftfox Browser Swiftfox Browser #444 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..bd04162ab 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -96,6 +96,7 @@ [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Swiftfox', 'id' => 'swiftfox', 'regexp' =>'/Swiftfox/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..3a65a79ef 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swiftfox|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..99637ec48 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061025 Firefox/2.0 (Swiftfox)' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 43e99a375d3d39301a72b9e7a065cf3551cf028c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:02:09 +0100 Subject: [PATCH 256/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 99637ec48..c64f7d011 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061025 Firefox/2.0 (Swiftfox)' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Swiftfox on Linux' + result: { browser: { name: Swiftfox, family: { name: Firefox, version: '2.0' }, type: browser }, engine: { name: Gecko, version: 1.8.1 }, os: { name: Linux }, device: { type: desktop } } From aa609302b962f6e5466fd49527dcd0098eb20df5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:10:02 +0100 Subject: [PATCH 257/540] Swiftweasel Browser Swiftweasel Browser #446 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..32f48eb9d 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -96,6 +96,7 @@ [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Swiftweasel', 'id' => 'swiftweasel', 'regexp' =>'/Swiftweasel\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://swiftweasel.tuxfamily.org/ [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..85bfbb627 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swiftweasel|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..d1a7da79f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.7) Gecko/20070919 Swiftweasel/2.0.0.7' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 9b5e2fb8fb6213ee6452c3719b92263b1db5b6bf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:16:31 +0100 Subject: [PATCH 258/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d1a7da79f..80b07754a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.7) Gecko/20070919 Swiftweasel/2.0.0.7' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Swiftweasel 2.0.0.7 on Linux' + result: { browser: { name: Swiftweasel, version: 2.0.0.7, type: browser }, engine: { name: Gecko, version: 1.8.1 }, os: { name: Linux }, device: { type: desktop } } From aba63c9e25e43dd73565dbc1ab7db98c950f95de Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:28:46 +0100 Subject: [PATCH 259/540] Sylera Browser Sylera Browser #448 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..7c5598319 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -90,6 +90,7 @@ [ 'name' => 'QupZilla', 'id' => 'qupzilla', 'regexp' =>'/QupZilla\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'rekonq', 'id' => 'rekonq', 'regexp' =>'/rekonq(?:\/([0-9.]*))?/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko + [ 'name' => 'Sylera', 'id' => 'sylera', 'regexp' =>'/Sylera\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // Needs to be discovered before SeaMonkey Browser, see: https://ja.wikipedia.org/wiki/Sylera [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..80c33f0f5 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|sylera|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..86e106583 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.8.1.9) Gecko/20071110 Sylera/3.0.20 SeaMonkey/1.1.6' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 17f7a3d97d11b23a096e376cf5aecbff7b8aee4f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:33:39 +0100 Subject: [PATCH 260/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 86e106583..04d615f0b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.8.1.9) Gecko/20071110 Sylera/3.0.20 SeaMonkey/1.1.6' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Sylera 3.0.20 on Windows 7' + result: { browser: { name: Sylera, version: 3.0.20, type: browser }, engine: { name: Gecko, version: 1.8.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From 99666ef6f407dcfa8f610df63d82ace15f798f69 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 18:56:47 +0100 Subject: [PATCH 261/540] t-online.de Browser t-online.de Browser #450 --- data/applications-browsers.php | 2 ++ data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..e39827772 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -97,6 +97,8 @@ [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com + [ 'name' => 't-online.de', 'id' => 'tonline', 'regexp' =>'/TO-Browser\/TOB([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.t-online.de/computer/browser/ + [ 'name' => 't-online.de', 'id' => 'tonline', 'regexp' =>'/TO-Browser/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..c2e66fd8e 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tonline|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..54891709f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 TO-Browser/TOB7.68.0.201_01' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 7419a5cff712e53c11be5aa49b66090ac488e447 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:04:19 +0100 Subject: [PATCH 262/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 54891709f..7840354f6 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 TO-Browser/TOB7.68.0.201_01' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 't-online.de 7.68.0.201 on Windows 10' + result: { browser: { name: t-online.de, family: { name: Firefox, version: '68.0' }, version: 7.68.0.201, type: browser }, engine: { name: Gecko, version: '68.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 97e10d0a23366d8593e69504dd7cc755513c6d09 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:07:44 +0100 Subject: [PATCH 263/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7840354f6..3495b6f1e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 TO-Browser/TOB7.68.0.201_01' readable: 't-online.de 7.68.0.201 on Windows 10' result: { browser: { name: t-online.de, family: { name: Firefox, version: '68.0' }, version: 7.68.0.201, type: browser }, engine: { name: Gecko, version: '68.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } +x \ No newline at end of file From 41effb586ff1a7225f3b973bc8ad7b4e19eae5f5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:07:52 +0100 Subject: [PATCH 264/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 3495b6f1e..7840354f6 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0 TO-Browser/TOB7.68.0.201_01' readable: 't-online.de 7.68.0.201 on Windows 10' result: { browser: { name: t-online.de, family: { name: Firefox, version: '68.0' }, version: 7.68.0.201, type: browser }, engine: { name: Gecko, version: '68.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } -x \ No newline at end of file From ec8f4b27caf9224d1e0f3d86ad856cfcf1fd8a5d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:30:23 +0100 Subject: [PATCH 265/540] Tulip Chain Browser Tulip Chain Browser #452 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..99288ac9e 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -100,6 +100,7 @@ [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], + [ 'name' => 'Tulip Chain', 'id' => 'tulip', 'regexp' =>'/TulipChain\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://ostermiller.org/tulipchain/ [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..971f931b4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tulip|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..ded26b844 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 3c06d0c4f84303b9b182821b2ae3ef966f97fb37 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:34:35 +0100 Subject: [PATCH 266/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index ded26b844..39a959525 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Tulip Chain 6.03 on Windows' + result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } From c4bb6e561cc4b257c444b34d2f3475cc7655bbaf Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:49:06 +0100 Subject: [PATCH 267/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 39a959525..acba47326 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } +x \ No newline at end of file From b6738bc5e07efbc3b0db025b1777359a59e9973b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 19:49:17 +0100 Subject: [PATCH 268/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index acba47326..39a959525 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } -x \ No newline at end of file From 8294b6ea205c8ff7f54223c4686882b451f3d580 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:02:44 +0100 Subject: [PATCH 269/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 39a959525..6d27468f2 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } +l \ No newline at end of file From 40c6ce17878629a506ad9aa54e11b350f20e985c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:03:05 +0100 Subject: [PATCH 270/540] Testrunner / Travis errored yet again and again --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 6d27468f2..39a959525 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } -l \ No newline at end of file From a5200e963918692240e97c161bc30c46d95c820f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:06:17 +0100 Subject: [PATCH 271/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 39a959525..0fb6bd6d8 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,3 +162,4 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } +bgfdc \ No newline at end of file From 33a9ab8626e79d79ced63b436cda09c590a2a7b6 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:06:28 +0100 Subject: [PATCH 272/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 0fb6bd6d8..39a959525 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -162,4 +162,3 @@ headers: 'User-Agent: TulipChain/6.03 (http://ostermiller.org/tulipchain/) Java/1.4.2_05 (http://java.sun.com/) Windows_XP/5.1 RPT-HTTPClient/0.3-3' readable: 'Tulip Chain 6.03 on Windows' result: { browser: { name: 'Tulip Chain', version: '6.03', type: browser }, os: { name: Windows }, device: { type: desktop } } -bgfdc \ No newline at end of file From db862134e71cd572e7d0878b08345f9d48a733ef Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:42:14 +0100 Subject: [PATCH 273/540] UltraBrowser UltraBrowser #456 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..d9b95c5b8 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -101,6 +101,7 @@ [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], + [ 'name' => 'UltraBrowser', 'id' => 'ultrab', 'regexp' =>'/UltraBrowser ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.ultrabrowser.com/ [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..1a4542a21 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|ultrab|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..e37fd278c 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; JyxoToolbar1.0; SV1; UltraBrowser 11.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322)' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From f3f4bcb220468bef9dae2f79f06f24e2fecb1b15 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 20:49:30 +0100 Subject: [PATCH 274/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e37fd278c..736bee834 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; JyxoToolbar1.0; SV1; UltraBrowser 11.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322)' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'UltraBrowser 11.0 on Windows XP' + result: { browser: { name: UltraBrowser, version: '11.0', type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } From 6bdddb53ee7f719381f9f34aebab7bb1451069b3 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 21:27:31 +0100 Subject: [PATCH 275/540] Correct Cloudflare bot name --- data/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..a033100f4 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -55,7 +55,7 @@ [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], - [ 'name' => 'CloudFare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], + [ 'name' => 'Cloudflare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], [ 'name' => 'Comodo', 'id' => 'comodo', 'regexp' => '/Comodo Spider ([0-9.]*)/u' ], [ 'name' => 'CommaFeed', 'id' => 'commafeed', 'regexp' => '/CommaFeed\/([0-9.]*)/u' ], [ 'name' => 'CommonCrawl', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..629e7b756 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) AppleWebKit/534.34' + readable: 'Cloudflare Always Online 1.0' + result: { browser: { name: 'Cloudflare Always Online', version: '1.0' }, device: { type: bot } } From 272e653b786a041bba1f340740082e324e651c28 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:02:24 +0100 Subject: [PATCH 276/540] Opera Neon --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..c204ae8ce 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,6 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], + [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/ MMS\/([0-9.]*)/u' ], // see: https://www.opera.com/computer/neon [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..0e4191680 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|mms|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..462207086 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36 MMS/1.0.2531.0' + result: { browser: { name: 'Opera Neon', family: { name: Chrome, version: 53 }, version: '1.0.2531.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Opera Neon 1.0.2531.0 on Windows 10' From 0a3d503e347d8935074823089b95fe95cbd66647 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:12:22 +0100 Subject: [PATCH 277/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index c204ae8ce..30aff031b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/ MMS\/([0-9.]*)/u' ], // see: https://www.opera.com/computer/neon + [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/MMS\/([0-9.]*)$/u' ], // see: https://www.opera.com/computer/neon [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From e95e9aa5291cf92da3f2d95cb06a28c730f665e0 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:17:41 +0100 Subject: [PATCH 278/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 30aff031b..60293aa89 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/MMS\/([0-9.]*)$/u' ], // see: https://www.opera.com/computer/neon + [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/ MMS\/([0-9.]*)$/u' ], // see: https://www.opera.com/computer/neon [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From dc81c11f50e766f57f046d41853319095fe06161 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:28:47 +0100 Subject: [PATCH 279/540] Opera GX --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..c768f7ec0 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,6 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], + [ 'name' => 'Opera GX', 'id' => 'operagx', 'regexp' =>'/OPRGX\/([0-9.]*)$/u' ], // see: https://www.opera.com/gx [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..a1f141279 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|operagx|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..7b84e0484 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.50747 OPRGX/60.0.3255.50747' + result: { browser: { name: 'Opera GX', family: { name: Chrome, version: '60' }, version: '60.0.3255.50747', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Opera GX 60.0.3255.50747 on Windows 7' From 8042c805438618f1712ed328765870942baedaef Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:47:50 +0100 Subject: [PATCH 280/540] Update Browser.php --- src/Analyser/Header/Useragent/Browser.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index f85d23b7a..2dbbb35a5 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -505,7 +505,7 @@ private function detectEdge($ua) private function detectOpera($ua) { - if (!preg_match('/(OPR|OMI|Opera|OPiOS|OPT|Coast|Oupeng)/ui', $ua)) { + if (!preg_match('/(OPR|OMI|Opera|OPiOS|OPT|Coast|Oupeng|OPRGX)/ui', $ua)) { return; } @@ -666,6 +666,13 @@ private function detectOpera($ua) $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); $this->data->browser->type = Constants\BrowserType::BROWSER; } + + if (preg_match('/OPRGX\/([0-9.]*)$/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Opera GX'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } } From f6edd8e41212f3d5db5dea06deed3b09e5d84a86 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 22:53:19 +0100 Subject: [PATCH 281/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7b84e0484..e818ac7f0 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.50747 OPRGX/60.0.3255.50747' - result: { browser: { name: 'Opera GX', family: { name: Chrome, version: '60' }, version: '60.0.3255.50747', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'Opera GX 60.0.3255.50747 on Windows 7' + result: { browser: { name: 'Opera GX', family: { name: Chrome, version: 73 }, version: '60.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'Opera GX 60.0 on Windows 7' From 18375cff33c5bda1471c86c54bca53a18b093307 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 10 Jun 2020 23:02:11 +0100 Subject: [PATCH 282/540] Update Browser.php --- src/Analyser/Header/Useragent/Browser.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index f85d23b7a..a10bc65f9 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -505,7 +505,7 @@ private function detectEdge($ua) private function detectOpera($ua) { - if (!preg_match('/(OPR|OMI|Opera|OPiOS|OPT|Coast|Oupeng)/ui', $ua)) { + if (!preg_match('/(OPR|OMI|Opera|OPiOS|OPT|Coast|Oupeng|MMS)/ui', $ua)) { return; } @@ -666,6 +666,13 @@ private function detectOpera($ua) $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); $this->data->browser->type = Constants\BrowserType::BROWSER; } + + if (preg_match('/\sMMS\/([0-9.]*)$/u', $ua, $match)) { + $this->data->browser->stock = false; + $this->data->browser->name = 'Opera Neon'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } } From 270e0f92fdf10188ab78273db6a7e51d0b7ee638 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 12:57:44 +0100 Subject: [PATCH 283/540] Usejump Browser Usejump Browser #461 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..0d5d92108 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -101,6 +101,7 @@ [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], + [ 'name' => 'Usejump', 'id' => 'usejump', 'regexp' =>'/Usejump\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..f69bbd22a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|usejump|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..3ee3ea270 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) Usejump/0.10.5 Safari/532.4' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From d26fadef4886b7353ad828563060b49bbd59d218 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 13:04:24 +0100 Subject: [PATCH 284/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 3ee3ea270..3b3bf93bf 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) Usejump/0.10.5 Safari/532.4' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Usejump 0.10 on Windows 7' + result: { browser: { name: Usejump, version: '0.10', type: browser }, engine: { name: Webkit, version: '532.4' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From ea7a306def7f94448b95f9ad214637f71f954e06 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 13:20:05 +0100 Subject: [PATCH 285/540] ViaSat Sparrow Browser ViaSat Sparrow Browser (Sparrow Browser) #463 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..2a78c9a25 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -93,6 +93,7 @@ [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Sparrow', 'id' => 'sparrow', 'regexp' =>'/Sparrow\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..d76169e15 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|sparrow|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..0c9cd9ba3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.16817 Safari/537.36 Sparrow/0.1' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 5ce0b33c8fa1befbbfc312d1f0a7a80aa95ac4fe Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 13:30:18 +0100 Subject: [PATCH 286/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 0c9cd9ba3..cd33f8eb9 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.16817 Safari/537.36 Sparrow/0.1' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Sparrow 0.1 on Windows 7' + result: { browser: { name: Sparrow, family: { name: Chrome, version: 64 }, version: '0.1', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From 6fbb8b18ea10a6b09408623cb945cdb808ab4c91 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 13:39:47 +0100 Subject: [PATCH 287/540] Vimprobable Browser Vimprobable Browser #465 --- data/applications-browsers.php | 3 ++- data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..0c2684d0b 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -101,7 +101,8 @@ [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], - [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Vimprobable', 'id' => 'vimprobable', 'regexp' =>'/Vimprobable\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..89696d5e3 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vimprobable|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..cd9c73fc3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Vimprobable/0.9.20.5' + readable: 'Vimprobable 0.9.20.5' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 000d1754f0b09bc304031558a543f4867c6d0bdd Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 13:52:07 +0100 Subject: [PATCH 288/540] update code --- data/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 0c2684d0b..c8e31238c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -101,7 +101,7 @@ [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], - [ 'name' => 'Vimprobable', 'id' => 'vimprobable', 'regexp' =>'/Vimprobable\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Vimprobable', 'id' => 'vimprobable', 'regexp' =>'/Vimprobable\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index cd9c73fc3..b66dc0244 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Vimprobable/0.9.20.5' readable: 'Vimprobable 0.9.20.5' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Vimprobable, version: '0.9.20.5', type: browser }, device: { type: desktop } } From e7d0804352a7fa85db8331f2ec01d0caef92463e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 14:02:06 +0100 Subject: [PATCH 289/540] Vonkeror Browser Vonkeror Browser #467 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..684961e59 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -102,6 +102,7 @@ [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Vonkeror', 'id' => 'vonkeror', 'regexp' =>'/Vonkeror\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..f3a119f31 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|vonkeror|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..0c9cd9ba3 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.16817 Safari/537.36 Sparrow/0.1' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From d1556abfc958581d56ec68c3dfc1aeefa8fd1045 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 14:06:34 +0100 Subject: [PATCH 290/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 0c9cd9ba3..e4de3d38f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -159,6 +159,6 @@ readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.16817 Safari/537.36 Sparrow/0.1' + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1pre) Gecko/20090629 Vonkeror/1.0' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From f9fa905c6b980ed33608bf727821ba90fd7bf636 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 14:12:24 +0100 Subject: [PATCH 291/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e4de3d38f..c73f9caa2 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1pre) Gecko/20090629 Vonkeror/1.0' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Vonkeror 1.0 on Windows XP' + result: { browser: { name: Vonkeror, version: '1.0', type: browser }, engine: { name: Gecko, version: 1.9.1pre }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } From 3eb4296c09297911f7105ee6ae449055a356d450 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 14:52:23 +0100 Subject: [PATCH 292/540] Xvast Browser Xvast Browser #471 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..867ebec80 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -104,6 +104,7 @@ [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'Xvast', 'id' => 'xvast', 'regexp' =>'/Xvast\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.xvast.com/ [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], /* Mobile browsers */ diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..494dd2a38 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|xvast|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..a9cfd736e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3390.0 Xvast/1.1.0.3 Safari/537.36' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From b384f4272912eaa34a8e3fd92d35f57cf355d080 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 14:57:46 +0100 Subject: [PATCH 293/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index a9cfd736e..557d9c69b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3390.0 Xvast/1.1.0.3 Safari/537.36' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Xvast 1.1.0.3 on Windows 8' + result: { browser: { name: Xvast, family: { name: Chrome, version: 67 }, version: 1.1.0.3, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.2', alias: '8' } }, device: { type: desktop } } From 8a041547f8f83f6dc420bb8da41c1c41bbdf6b76 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 15:09:35 +0100 Subject: [PATCH 294/540] ZipZap Browser ZipZap Browser #473 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..44f7b5003 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -105,6 +105,7 @@ [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'ZipZap', 'id' => 'zipzap', 'regexp' =>'/ZipZap ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.zipzaphome.com/ /* Mobile browsers */ [ 'name' => '1Browser', 'id' => '1password', 'regexp' =>'/1Password\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..2b2727972 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; From 10b583c494ba46a3ea50d9a387e79397989c7433 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 15:09:49 +0100 Subject: [PATCH 295/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 16a324267..de1393c1e 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -158,3 +158,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS)' readable: 'iCab 3.0.3 on Mac OS' result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.571.0 Safari/534.12 ZipZap 3.1' + readable: 'iCab 3.0.3 on Mac OS' + result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 8e84b6a29e4ce93c880d3b89b0e271cd56d2a82f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 15:18:33 +0100 Subject: [PATCH 296/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index de1393c1e..0ba550bd9 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.571.0 Safari/534.12 ZipZap 3.1' - readable: 'iCab 3.0.3 on Mac OS' - result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'ZipZap 3.1 on Windows 7' + result: { browser: { name: ZipZap, family: { name: Chrome, version: 9 }, version: '3.1', type: browser }, engine: { name: Webkit, version: '534.12' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From 0a5c13cc8e89415172048f6b214fa89b256fa1c5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 15:27:29 +0100 Subject: [PATCH 297/540] Netbox Browser Netbox Browser #475 --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/television/other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 80f42743a..336c91128 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -177,6 +177,7 @@ [ 'name' => 'AwoX', 'id' => 'awox', 'regexp' =>'/AwoX(?:\/([0-9.]*))? Browser/i' ], [ 'name' => 'Isis', 'id' => 'browserserver', 'regexp' =>'/BrowserServer/u' ], [ 'name' => 'Isis', 'id' => 'isis', 'regexp' =>'/ISIS\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Netbox', 'id' => 'netbox', 'regexp' =>'/Netbox\/([0-9.]*)/u', 'type' => Constants\DeviceType::TELEVISION ], [ 'name' => 'Spyglass', 'id' => 'spyglass', 'regexp' =>'/Spyglass ([0-9.]+); OpenTV/u' ], [ 'name' => 'Oregan Browser', 'id' => 'oregan', 'regexp' =>'/OreganMediaBrowser(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Viera Browser', 'id' => 'viera', 'regexp' =>'/Viera\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a23752a7a..d0ea7414a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/television/other.yaml b/tests/data/television/other.yaml index f56dae8f7..295db9a66 100644 --- a/tests/data/television/other.yaml +++ b/tests/data/television/other.yaml @@ -614,3 +614,7 @@ headers: 'User-Agent: HbbTV/1.1.1 (; ST; FLTk3D; 1.0; 1.0;) NetFront/3.5' readable: 'NetFront 3.5 on a television' result: { browser: { name: NetFront, version: '3.5', type: browser }, engine: { name: NetFront }, device: { type: television } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Netbox/3.5 R92; Linux 2.2)' + readable: 'Netbox 3.5 on a television' + result: { browser: { name: Netbox, version: '3.5', type: browser }, engine: { name: Linux }, device: { type: television } } From 10861a1a87bd5bdc83c0344841c8e14460cd7b56 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 15:32:32 +0100 Subject: [PATCH 298/540] Update other.yaml --- tests/data/television/other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/television/other.yaml b/tests/data/television/other.yaml index 295db9a66..2e0e5054d 100644 --- a/tests/data/television/other.yaml +++ b/tests/data/television/other.yaml @@ -617,4 +617,4 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Netbox/3.5 R92; Linux 2.2)' readable: 'Netbox 3.5 on a television' - result: { browser: { name: Netbox, version: '3.5', type: browser }, engine: { name: Linux }, device: { type: television } } + result: { browser: { name: Netbox, version: '3.5', type: browser }, device: { type: television } } From a7242d3181abf2001a149cee87b990b9c769cb1c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:03:19 +0100 Subject: [PATCH 299/540] Update Browser.php --- src/Analyser/Header/Useragent/Browser.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index f85d23b7a..d10b00299 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -464,6 +464,17 @@ private function detectExplorer($ua) } } + /* Miurcosoft Open Live Writer */ + + if (preg_match('/Open Live Writer ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1], 'details' => 1 ]) ]); + + $this->data->browser->type = Constants\BrowserType::BROWSER; + $this->data->browser->stock = false; + $this->data->browser->name = 'Open Live Writer'; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->channel = null; + } /* Set the browser family */ From bcae074b4e78d955656760e127ae115ae580fe7e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:14:38 +0100 Subject: [PATCH 300/540] Done --- src/Analyser/Header/Useragent/Browser.php | 2 +- tests/data/desktop/browser-other.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index d10b00299..ec01bcc33 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -467,7 +467,7 @@ private function detectExplorer($ua) /* Miurcosoft Open Live Writer */ if (preg_match('/Open Live Writer ([0-9.]*)/u', $ua, $match)) { - $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1], 'details' => 1 ]) ]); + $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1] ]) ]); $this->data->browser->type = Constants\BrowserType::BROWSER; $this->data->browser->stock = false; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d14e20ae3..8ab81fdfd 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -161,4 +161,4 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Open Live Writer 1.0)' readable: 'Open Live Writer 1.0 on Windows 7' - result: { browser: { name: 'Open Live Writer', version: '1.0', type: browser }, engine: { name: Trident, version: '11.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Open Live Writer', using: { name: 'Internet Explorer', version: '11.0' }, version: '1.0', type: browser }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From ffd3d11ec086e5ee2413ce70af8c59859f9da4d2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:16:45 +0100 Subject: [PATCH 301/540] Update applications-others.php --- data/applications-others.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index 5245ed3a9..a739a636d 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -141,6 +141,6 @@ [ 'name' => 'Google Earth', 'id' => 'google', 'regexp' =>'/Google Earth\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Google Desktop', 'id' => 'google', 'regexp' =>'/Google Desktop\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], - [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], + [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] ]; From 7ae7f1f7898e54ddd77b55e1692496140e7d8a9c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:18:11 +0100 Subject: [PATCH 302/540] typo --- src/Analyser/Header/Useragent/Browser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index ec01bcc33..0653a57a3 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -464,7 +464,7 @@ private function detectExplorer($ua) } } - /* Miurcosoft Open Live Writer */ + /* Microsoft Open Live Writer */ if (preg_match('/Open Live Writer ([0-9.]*)/u', $ua, $match)) { $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1] ]) ]); From b1fcf24c5690bba540bc10148d39e9c1e801a093 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:28:29 +0100 Subject: [PATCH 303/540] Update Browser.php --- src/Analyser/Header/Useragent/Browser.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index 0653a57a3..ac3d9b887 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -467,13 +467,15 @@ private function detectExplorer($ua) /* Microsoft Open Live Writer */ if (preg_match('/Open Live Writer ([0-9.]*)/u', $ua, $match)) { - $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1] ]) ]); - $this->data->browser->type = Constants\BrowserType::BROWSER; $this->data->browser->stock = false; $this->data->browser->name = 'Open Live Writer'; $this->data->browser->version = new Version([ 'value' => $match[1] ]); $this->data->browser->channel = null; + + if (preg_match('/MSIE ([0-9.]*)/u', $ua, $match)) { + $this->data->browser->using = new Using([ 'name' => 'Internet Explorer', 'version' => new Version([ 'value' => $match[1] ]) ]); + } } /* Set the browser family */ From 7e4d7312c27aedcf494298e63b2d761a1a6e5e49 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 18:59:17 +0100 Subject: [PATCH 304/540] Moz bot --- data/applications-bots.php | 3 +++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 12 ++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..15a8e778c 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -151,6 +151,9 @@ [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], + [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/DotBot\/([0-9.]*)/i' ], + [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], + [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/Ezooms\/([0-9.]*)/i' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..5e3f48203 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|moz|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..9bfeac98b 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,15 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)' + readable: 'Moz 1.1' + result: { browser: { name: Moz, version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: rogerbot/1.0 (http://www.moz.com/dp/rogerbot, rogerbot-crawler@moz.com)' + readable: 'Moz 1.0' + result: { browser: { name: Moz, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)' + readable: 'Moz 1.0' + result: { browser: { name: Moz, version: '1.0' }, device: { type: bot } } From 9841174c64b4614d517900cb1ce0c9cda4eb2191 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:04:40 +0100 Subject: [PATCH 305/540] done --- data/applications-bots.php | 1 - tests/data/bots/generic.yaml | 4 ---- 2 files changed, 5 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 15a8e778c..1caa2584c 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -153,7 +153,6 @@ [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/DotBot\/([0-9.]*)/i' ], [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], - [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/Ezooms\/([0-9.]*)/i' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 9bfeac98b..58ed18a25 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -522,7 +522,3 @@ headers: 'User-Agent: rogerbot/1.0 (http://www.moz.com/dp/rogerbot, rogerbot-crawler@moz.com)' readable: 'Moz 1.0' result: { browser: { name: Moz, version: '1.0' }, device: { type: bot } } -- - headers: 'User-Agent: Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)' - readable: 'Moz 1.0' - result: { browser: { name: Moz, version: '1.0' }, device: { type: bot } } From eafb5243fa3856ab81cfd4a99d98965868a59e96 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:14:12 +0100 Subject: [PATCH 306/540] Nimbostratus Bot Added Nimbostratus bot it's quite common on the internet. As per request: https://github.com/WhichBrowser/Parser-PHP/issues/100#issuecomment-624314133 --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..1ed7a286b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -161,6 +161,7 @@ [ 'name' => 'NewsGator', 'id' => 'newsgator', 'regexp' => '/NewsGator\/([0-9.]*)/u' ], [ 'name' => 'NewsGator', 'id' => 'newsgator', 'regexp' => '/NewsGatorOnline\/([0-9.]*)/u' ], [ 'name' => 'NewsGator FetchLinks', 'id' => 'newsgator', 'regexp' => '/NewsGator FetchLinks extension\/([0-9.]*)/u' ], + [ 'name' => 'Nimbostratus', 'id' => 'nimbostratus', 'regexp' => '/Nimbostratus-Bot\/v([0-9.]*)/u' ], [ 'name' => 'OpenWebSpider', 'id' => 'spider', 'regexp' => '/OpenWebSpider v([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..cacc63731 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..01b9160a1 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Nimbostratus-Bot/v1.3.2; http://cloudsystemnetworks.com)' + readable: 'Nimbostratus 1.3.2' + result: { browser: { name: Nimbostratus, version: '1.3.2' }, device: { type: bot } } From d9ac9163532a18856466be127fa19e16ab020eab Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:20:04 +0100 Subject: [PATCH 307/540] Semrush Bot --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..98ff7a34b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -179,6 +179,7 @@ [ 'name' => 'SafeSearch Microdata', 'id' => 'safesearch', 'regexp' => '/SafeSearch microdata crawler/u' ], [ 'name' => 'Scrapy', 'id' => 'scrapy', 'regexp' => '/Scrapy\/([0-9.]*)/u' ], [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], + [ 'name' => 'Semrush', 'id' => 'semrush', 'regexp' => '/SemrushBot\/([0-9.]*)/u' ], [ 'name' => 'Server Density', 'id' => 'monitor', 'regexp' => '/Server Density Service Monitoring/u' ], [ 'name' => 'Seznam bot', 'id' => 'seznam', 'regexp' => '/SeznamBot|SklikBot|Seznam screenshot-generator/u' ], [ 'name' => 'Seznam Email Proxy', 'id' => 'seznam', 'regexp' => '/SeznamEmailProxy/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..eadda52e6 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|semrush|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..987a429e7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)' + readable: 'Semrush 6' + result: { browser: { name: Semrush, version: '6' }, device: { type: bot } } From 2ac4e14f92a45f6e3cb7ce75c710ebff4edcb4a5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:32:46 +0100 Subject: [PATCH 308/540] Buck Bot Common crawler on the internet. --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..905fa6a20 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -52,6 +52,7 @@ [ 'name' => 'BoardReader', 'id' => 'boardreader', 'regexp' => '/BoardReader\/([0-9.]*)/u' ], [ 'name' => 'Browsershots', 'id' => 'browsershots', 'regexp' => '/Browsershots/u' ], [ 'name' => 'BUbiNG', 'id' => 'bubing', 'regexp' => '/BUbiNG/u' ], + [ 'name' => 'Buck', 'id' => 'buck', 'regexp' => '/Buck\/([0-9.]*)/u' ], [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..cdd634c86 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|buck|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..a0ddf571a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Buck/2.2; (+https://app.hypefactors.com/media-monitoring/about.html)' + readable: 'Buck 2.2' + result: { browser: { name: Buck, version: '2.2' }, device: { type: bot } } From 875b2419b6cc5d30e7072567aae83d9e87916fb2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:36:24 +0100 Subject: [PATCH 309/540] Netcraft Survey Bot --- data/applications-bots.php | 1 + tests/data/bots/generic.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..7ff5b3833 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -153,6 +153,7 @@ [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], + [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/NetcraftSurveyAgent\/([0-9.]*)/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Favicon Fetcher/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Feed Fetcher/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..402106244 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' + readable: 'Netcraft Survey Bot 1.0' + result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } From 35b1f023dfa382a9a6746f011ea1dd6652d1cd4b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:45:34 +0100 Subject: [PATCH 310/540] ignore --- tests/data/bots/generic.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 402106244..e0eaa0fd2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,3 +518,4 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' readable: 'Netcraft Survey Bot 1.0' result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } +x \ No newline at end of file From 4a0d4f73066800b4db34a5ca66fbc665a0eeeffd Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:45:59 +0100 Subject: [PATCH 311/540] reset testrunner and travis as they crashed --- tests/data/bots/generic.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e0eaa0fd2..402106244 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,4 +518,3 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' readable: 'Netcraft Survey Bot 1.0' result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } -x \ No newline at end of file From 544f4f805d294323605e5374a7e35a324ab16946 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:49:57 +0100 Subject: [PATCH 312/540] Update generic.yaml --- tests/data/bots/generic.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 402106244..e0eaa0fd2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,3 +518,4 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' readable: 'Netcraft Survey Bot 1.0' result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } +x \ No newline at end of file From 17085dd2a0bc90b08392bce9dd7eeba4e5908ca2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 19:50:18 +0100 Subject: [PATCH 313/540] testrunner setup crashed again --- tests/data/bots/generic.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e0eaa0fd2..402106244 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,4 +518,3 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' readable: 'Netcraft Survey Bot 1.0' result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } -x \ No newline at end of file From 42cfa4995e346a1953f23bdba0c95279c543e865 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 20:01:24 +0100 Subject: [PATCH 314/540] DomainCrawler Bot --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..1b16f9089 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -64,6 +64,7 @@ [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], + [ 'name' => 'DomainCrawler', 'id' => 'domaincrawl', 'regexp' => '/DomainCrawler\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..7f254215f 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..133622eb0 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: DomainCrawler/3.0 (info@domaincrawler.com; http://www.domaincrawler.com/example.com)' + readable: 'DomainCrawler 3.0' + result: { browser: { name: DomainCrawler, version: '3.0' }, device: { type: bot } } From 8c5c60c3aa945a025e7aac9e106837bfc432d4e9 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 20:11:45 +0100 Subject: [PATCH 315/540] Mail.ru Bot --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..98a3c3444 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -147,6 +147,8 @@ [ 'name' => 'LTX71', 'id' => 'ltx71', 'regexp' => '/ltx71/u' ], [ 'name' => 'Magpie RSS', 'id' => 'magpie', 'regexp' => '/MagpieRSS\/([0-9.]*)/u' ], [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], + [ 'name' => 'Mail.ru Bot', 'id' => 'mailru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], + [ 'name' => 'Mail.ru Bot', 'id' => 'mailru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..e0a700dc1 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mailru|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..565fba5b7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/Img/2.0; +http://go.mail.ru/help/robots)' + readable: 'Mail.ru Bot 2.0' + result: { browser: { name: 'Mail.ru Bot', version: '2.0' }, device: { type: bot } } From be49fac88bb04297a0611cceb2fa2bdec2ab9a57 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 11 Jun 2020 20:21:32 +0100 Subject: [PATCH 316/540] Bytespider --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..d5587b024 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -53,6 +53,7 @@ [ 'name' => 'Browsershots', 'id' => 'browsershots', 'regexp' => '/Browsershots/u' ], [ 'name' => 'BUbiNG', 'id' => 'bubing', 'regexp' => '/BUbiNG/u' ], [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], + [ 'name' => 'Bytespider', 'id' => 'bytespider', 'regexp' => '/Bytespider/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], [ 'name' => 'CloudFare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..de81f08e9 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..36f0fe588 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/)' + readable: 'Bytespider' + result: { browser: { name: Bytespider }, device: { type: bot } } From a6972b083578b403549492fc7698a152a2c7b5d8 Mon Sep 17 00:00:00 2001 From: Piers Wombwell Date: Mon, 13 Jul 2020 17:09:42 +0100 Subject: [PATCH 317/540] Add Flow browser and EkiohFlow engine. --- src/Analyser/Header/Useragent/Browser.php | 17 ++++++++++++++++- src/Analyser/Header/Useragent/Engine.php | 11 +++++++++++ tests/data/desktop/browser-flow.yaml | 12 ++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 tests/data/desktop/browser-flow.yaml diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index f85d23b7a..030f14d9c 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -1843,7 +1843,7 @@ private function detectOmniWeb($ua) private function detectDesktopBrowsers($ua) { - if (!preg_match('/(WebPositive|WebExplorer|WorldWideweb|Midori|Maxthon|Browse)/ui', $ua)) { + if (!preg_match('/(WebPositive|WebExplorer|WorldWideweb|Midori|Maxthon|Browse|Flow)/ui', $ua)) { return; } @@ -1940,6 +1940,21 @@ private function detectDesktopBrowsers($ua) $this->data->browser->version = new Version([ 'value' => $match[1] ]); $this->data->browser->type = Constants\BrowserType::BROWSER; } + + /* Browse for Flow */ + + if (preg_match('/ Flow\/([0-9.]+)/u', $ua, $match)) { + $this->data->browser->name = 'Flow'; + $this->data->browser->channel = ''; + $this->data->browser->version = new Version([ 'value' => $match[1] ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + unset($this->data->browser->family); + + if (preg_match('/EkiohFlow\/[0-9\.]+M/u', $ua)) { + $this->data->browser->name = 'Flow Nightly Build'; + $this->data->browser->version = null; + } + } } private function detectMobileBrowsers($ua) diff --git a/src/Analyser/Header/Useragent/Engine.php b/src/Analyser/Header/Useragent/Engine.php index 3837c31a6..f0c97bec4 100644 --- a/src/Analyser/Header/Useragent/Engine.php +++ b/src/Analyser/Header/Useragent/Engine.php @@ -16,6 +16,7 @@ private function &detectEngine($ua) $this->detectPresto($ua); $this->detectTrident($ua); $this->detectEdgeHTMLUseragent($ua); + $this->detectFlow($ua); return $this; } @@ -171,4 +172,14 @@ private function detectEdgeHTMLUseragent($ua) $this->data->engine->version = new Version([ 'value' => $match[1], 'hidden' => true ]); } } + + /* Flow */ + + private function detectFlow($ua) + { + if (preg_match('/EkiohFlow\/([0-9.]*)/u', $ua, $match)) { + $this->data->engine->name = 'EkiohFlow'; + $this->data->engine->version = new Version([ 'value' => $match[1] ]); + } + } } diff --git a/tests/data/desktop/browser-flow.yaml b/tests/data/desktop/browser-flow.yaml new file mode 100644 index 000000000..a2e0ffaf9 --- /dev/null +++ b/tests/data/desktop/browser-flow.yaml @@ -0,0 +1,12 @@ +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.10.0.32202 Flow/5.10.0 (like Gecko Firefox/62.0 rv:62.0)' + result: { browser: { name: 'Flow', version: '5.10.0', type: browser }, engine: { name: EkiohFlow, version: 5.10.0.32202 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Flow 5.10.0 on macOS Catalina 10.15' +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.9.4.32015 Flow/5.9.4 (like Gecko Firefox/53.0 rv:53.0)' + result: { browser: { name: 'Flow', version: '5.9.4', type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Flow 5.9.4 on macOS Catalina 10.15' +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.9.4.32015M Flow/5.9.4 (like Gecko Firefox/53.0 rv:53.0)' + result: { browser: { name: 'Flow Nightly Build', type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Flow Nightly Build on macOS Catalina 10.15' From 89de21585194a1e739e7a4817ace5324b9ce3b64 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 6 Aug 2020 18:27:33 +0100 Subject: [PATCH 318/540] Add Slackbot-LinkExpanding Added to bots list --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..e55041356 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -187,6 +187,7 @@ [ 'name' => 'SilverReader', 'id' => 'reader', 'regexp' => '/SilverReader\/([0-9.]*)/u' ], [ 'name' => 'SimplePie', 'id' => 'simplepie', 'regexp' => '/SimplePie\/([0-9.]*)/u' ], [ 'name' => 'Site24x7', 'id' => 'site24', 'regexp' => '/Site24x7/u' ], + [ 'name' => 'Slackbot Link Checker', 'id' => 'slack', 'regexp' => '/Slackbot-LinkExpanding ([0-9.]*)/u' ], [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/sogou spider/u' ], [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou pic spider\/([0-9.]*)/u' ], [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou inst spider\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..1a428fd43 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..057f0b301 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)' + readable: 'Slackbot-LinkExpanding 1.0' + result: { browser: { name: Slackbot-LinkExpanding, version: '1.0' }, device: { type: bot } } From deff36a2b725b56c9b5f66213b8ed963111820ba Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Thu, 6 Aug 2020 18:33:12 +0100 Subject: [PATCH 319/540] Update test results from testrunner --- tests/data/bots/generic.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 057f0b301..c09bd01d1 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -516,5 +516,5 @@ result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } - headers: 'User-Agent: Slackbot-LinkExpanding 1.0 (+https://api.slack.com/robots)' - readable: 'Slackbot-LinkExpanding 1.0' - result: { browser: { name: Slackbot-LinkExpanding, version: '1.0' }, device: { type: bot } } + readable: 'Slackbot Link Checker 1.0' + result: { browser: { name: 'Slackbot Link Checker', version: '1.0' }, device: { type: bot } } From af4d69d34f06c5dca9c76209b1f412326380726b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 12:45:21 +0100 Subject: [PATCH 320/540] Changed the word `crawler` to `bot` All the repo uses the word `bot` and so I decided to remove the word `crawler` and keep everything the same. --- data/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 581edea47..24ee10ad2 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -138,7 +138,7 @@ [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], - [ 'name' => 'KakaoTalk Crawler', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], + [ 'name' => 'KakaoTalk Bot', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 771fde52a..2bfe12512 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -516,5 +516,5 @@ result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } - headers: 'User-Agent: Facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https: //devtalk.kakao.com/t/scrap/33984' - readable: 'KakaoTalk Crawler 1.0' - result: { browser: {name: 'KakaoTalk Crawler', version: '1.0' }, device: { type: bot } } + readable: 'KakaoTalk Bot 1.0' + result: { browser: {name: 'KakaoTalk Bot', version: '1.0' }, device: { type: bot } } From 9eb255dd0c546e711c4630ce84db6eb606dc0b1c Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 13:25:50 +0100 Subject: [PATCH 321/540] Add `Yelp` app and bot --- data/applications-bots.php | 2 ++ data/applications-others.php | 1 + data/regexes/applications-bots.php | 2 +- data/regexes/applications-others.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ tests/data/mobile/app-social.yaml | 4 ++++ 6 files changed, 13 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..6a903e4d3 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -267,6 +267,8 @@ [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\/([0-9.]*)/u' ], [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\.so\/([0-9.]*)/u' ], + + [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], /* Generic bots */ [ 'name' => 'Apache Httpd', 'id' => 'httpclient', 'regexp' => '/Apache-HttpClient(?:\/([0-9.]*))?/u' ], diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..4923ed86a 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -91,6 +91,7 @@ [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/TwitterAndroid/u' ], [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/Twitter for iPhone/u' ], [ 'name' => 'WordPress', 'id' => 'wp-android', 'regexp' =>'/wp-android\/([0-9.]*)/u' ], + [ 'name' => 'Yelp', 'id' => 'yelp', 'regexp' =>'/YelpApp\/([0-9.]*)/u' ], ], Constants\BrowserType::APP_OFFICE => [ diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..b17c2b76c 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..015b93fd1 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..aab3fd1aa 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 compatible; yelpspider/yelpspider-1.0 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com)' + readable: 'xxx 0.2' + result: { browser: { name: xx, version: '0.2' }, device: { type: bot } } diff --git a/tests/data/mobile/app-social.yaml b/tests/data/mobile/app-social.yaml index a2950c9d3..94877bded 100644 --- a/tests/data/mobile/app-social.yaml +++ b/tests/data/mobile/app-social.yaml @@ -86,3 +86,7 @@ headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Mobile/15A372 [FBAN/FBIOS;FBAV/147.0.0.46.81;FBBV/76961488;FBDV/iPhone10,4;FBMD/iPhone;FBSN/iOS;FBSV/11.0;FBSS/2;FBCR/KPNNL;FBID/phone;FBLC/nl_NL;FBOP/5;FBRV/' readable: 'Facebook on an Apple iPhone 8 running iOS 11.0' result: { browser: { name: Facebook, type: 'app:social' }, engine: { name: Webkit, version: 604.1.38 }, os: { name: iOS, version: '11.0' }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 8' } } +- + headers: 'User-Agent: YelpWebView/1.5 Android/6.0.1 YelpApp/9.9.0 (x-screen-scale 1.0;)' + readable: 'xxx' + result: { browser: { name: Facebook, type: 'app:social' }, engine: { name: Webkit, version: 604.1.38 }, os: { name: iOS, version: '11.0' }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 8' } } From 15e897dc205044f70ed869f34b4a0537a04b0c9b Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 13:32:17 +0100 Subject: [PATCH 322/540] Update test results --- tests/data/bots/generic.yaml | 4 ++-- tests/data/mobile/app-social.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index aab3fd1aa..94695bb5d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -516,5 +516,5 @@ result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 compatible; yelpspider/yelpspider-1.0 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com)' - readable: 'xxx 0.2' - result: { browser: { name: xx, version: '0.2' }, device: { type: bot } } + readable: 'Yelp Spider 1.0' + result: { browser: { name: 'Yelp Spider', version: '1.0' }, device: { type: bot } } diff --git a/tests/data/mobile/app-social.yaml b/tests/data/mobile/app-social.yaml index 94877bded..4cd5a6c3b 100644 --- a/tests/data/mobile/app-social.yaml +++ b/tests/data/mobile/app-social.yaml @@ -88,5 +88,5 @@ result: { browser: { name: Facebook, type: 'app:social' }, engine: { name: Webkit, version: 604.1.38 }, os: { name: iOS, version: '11.0' }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 8' } } - headers: 'User-Agent: YelpWebView/1.5 Android/6.0.1 YelpApp/9.9.0 (x-screen-scale 1.0;)' - readable: 'xxx' - result: { browser: { name: Facebook, type: 'app:social' }, engine: { name: Webkit, version: 604.1.38 }, os: { name: iOS, version: '11.0' }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 8' } } + readable: 'Yelp 9.9.0 on Android 6.0.1' + result: { browser: { name: Yelp, version: 9.9.0, type: 'app:social' }, os: { name: Android, version: 6.0.1 }, device: { type: tablet } } From e9276846c80ebe32a3e3203316016ceae2b19c58 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 13:41:35 +0100 Subject: [PATCH 323/540] Update generic.yaml --- tests/data/bots/generic.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 94695bb5d..1821e872f 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,3 +518,4 @@ headers: 'User-Agent: Mozilla/5.0 compatible; yelpspider/yelpspider-1.0 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com)' readable: 'Yelp Spider 1.0' result: { browser: { name: 'Yelp Spider', version: '1.0' }, device: { type: bot } } +failed test \ No newline at end of file From 336ddab62f88f5292e5a67924ef9c135a2f387b7 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 13:41:56 +0100 Subject: [PATCH 324/540] Update generic.yaml --- tests/data/bots/generic.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 1821e872f..94695bb5d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,4 +518,3 @@ headers: 'User-Agent: Mozilla/5.0 compatible; yelpspider/yelpspider-1.0 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com)' readable: 'Yelp Spider 1.0' result: { browser: { name: 'Yelp Spider', version: '1.0' }, device: { type: bot } } -failed test \ No newline at end of file From 2baa91189a7de04664f0045ca0e2d8b52e8f3e62 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 19:13:44 +0100 Subject: [PATCH 325/540] WhatsApp not being detected --- data/applications-others.php | 1 + data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index a739a636d..19c61ff20 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -73,6 +73,7 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], + [ 'name' => 'WhatsApp', 'id' => 'whatsapp', 'regexp' =>'/WhatsApp\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 382b3ab4c..a5a9c77b7 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|whatsapp|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 7da09916b..4cb9d372b 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,3 +82,11 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) WhatsApp/2.2017.6 Chrome/76.0.3809.146 Electron/6.1.9 Safari/537.36' + result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } + readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' +- + headers: 'User-Agent: WhatsApp/2.19.360 A' + result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } + readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' From 0313af2d2e93a44f353c1598b429a542cf1bf9ab Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 19:40:32 +0100 Subject: [PATCH 326/540] Update test results --- tests/data/mobile/app-chat.yaml | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 4cb9d372b..21a116098 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -20,32 +20,32 @@ readable: 'Yahoo Messenger 1.8.4 on an Archos 79XE running Android 4.2.2' - headers: 'User-Agent: WhatsApp/2.11.164 Android/4_2_2 Device/samsung-GT-I9152' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.2.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Mega 5.8 Plus' } } - readable: 'WhatsApp 2.11 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' + result: { browser: { name: WhatsApp, version: 2.11.164, type: 'app:chat' }, os: { name: Android, version: 4.2.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Mega 5.8 Plus' } } + readable: 'WhatsApp 2.11.164 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' - headers: 'User-Agent: WhatsApp/2.11.139 Android/4.0.4 Device/HTC-HTC_Incredible_S' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: HTC, model: 'Incredible S' } } - readable: 'WhatsApp 2.11 on a HTC Incredible S running Android 4.0.4' + result: { browser: { name: WhatsApp, version: 2.11.139, type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: HTC, model: 'Incredible S' } } + readable: 'WhatsApp 2.11.139 on a HTC Incredible S running Android 4.0.4' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.1.2 Device/samsung-GT-S5310' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Pocket Neo' } } - readable: 'WhatsApp 2.11 on a Samsung Galaxy Pocket Neo running Android 4.1.2' + result: { browser: { name: WhatsApp, version: 2.11.107, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } + readable: 'WhatsApp 2.11.107 on a Nokia E51 running Series60 3.1' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.0.4 Device/Motorola-MB526' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: DEFY+ } } - readable: 'WhatsApp 2.11 on a Motorola DEFY+ running Android 4.0.4' + result: { browser: { name: WhatsApp, version: 2.11.236, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } + readable: 'WhatsApp 2.11.236 on a Nokia 6650 running Series60 3.2' - headers: 'User-Agent: WhatsApp/2.11.107 S60Version/3.1 Device/Nokia-E51-(02.1)' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } - readable: 'WhatsApp 2.11 on a Nokia E51 running Series60 3.1' + result: { browser: { name: WhatsApp, version: 2.11.356, type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } + readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' - headers: 'User-Agent: WhatsApp/2.11.236 S60Version/3.2 Device/Nokia-6650-(02.01)' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } - readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' + result: { browser: { name: WhatsApp, version: 2.11.282, type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } + readable: 'WhatsApp 2.11.282 on a Nokia Lumia 520 running Windows Phone 8.0' - headers: 'User-Agent: WhatsApp/2.11.356 WP7/7.10.8107 Device/SAMSUNG-GT-I8350-H23.15.0.8' result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } - readable: 'WhatsApp 2.11 on a Samsung Omnia W running Windows Phone 7.10' + readable: 'WhatsApp 2.11 on a Samsung Omnia W running Windows Phone 7.10' - headers: 'User-Agent: WhatsApp/2.11.282 WP7/8.0.10328.0 Device/NOKIA-RM-914_eu_euro2_341-H1.0.0.0' result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } @@ -84,9 +84,9 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) WhatsApp/2.2017.6 Chrome/76.0.3809.146 Electron/6.1.9 Safari/537.36' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } - readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' + result: { browser: { name: WhatsApp, using: { name: Electron, version: 6.1.9 }, family: { name: Chrome, version: 76 }, version: 2.2017.6, type: 'app:chat' }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'WhatsApp 2.2017.6 on Windows 10' - headers: 'User-Agent: WhatsApp/2.19.360 A' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } - readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' + result: { browser: { name: WhatsApp, version: 2.19.360, type: 'app:chat' } } + readable: 'WhatsApp 2.19.360' From 579313fdbc676831ef60c8d26aba5f332dc91e1d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 22:47:28 +0100 Subject: [PATCH 327/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 21a116098..63b2be2a6 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -28,28 +28,28 @@ readable: 'WhatsApp 2.11.139 on a HTC Incredible S running Android 4.0.4' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.1.2 Device/samsung-GT-S5310' - result: { browser: { name: WhatsApp, version: 2.11.107, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } - readable: 'WhatsApp 2.11.107 on a Nokia E51 running Series60 3.1' + result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Pocket Neo' } } + readable: 'WhatsApp 2.11 on a Samsung Galaxy Pocket Neo running Android 4.1.2' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.0.4 Device/Motorola-MB526' - result: { browser: { name: WhatsApp, version: 2.11.236, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } - readable: 'WhatsApp 2.11.236 on a Nokia 6650 running Series60 3.2' + result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: DEFY+ } } + readable: 'WhatsApp 2.11 on a Motorola DEFY+ running Android 4.0.4' - headers: 'User-Agent: WhatsApp/2.11.107 S60Version/3.1 Device/Nokia-E51-(02.1)' - result: { browser: { name: WhatsApp, version: 2.11.356, type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } - readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' + result: { browser: { name: WhatsApp, version: 2.11.107, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } + readable: 'WhatsApp 2.11.107 on a Nokia E51 running Series60 3.1' - headers: 'User-Agent: WhatsApp/2.11.236 S60Version/3.2 Device/Nokia-6650-(02.01)' - result: { browser: { name: WhatsApp, version: 2.11.282, type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } - readable: 'WhatsApp 2.11.282 on a Nokia Lumia 520 running Windows Phone 8.0' + result: { browser: { name: WhatsApp, version: 2.11.236, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } + readable: 'WhatsApp 2.11.236 on a Nokia 6650 running Series60 3.2' - headers: 'User-Agent: WhatsApp/2.11.356 WP7/7.10.8107 Device/SAMSUNG-GT-I8350-H23.15.0.8' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } - readable: 'WhatsApp 2.11 on a Samsung Omnia W running Windows Phone 7.10' + result: { browser: { name: WhatsApp, version: 2.11.356, type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } + readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' - headers: 'User-Agent: WhatsApp/2.11.282 WP7/8.0.10328.0 Device/NOKIA-RM-914_eu_euro2_341-H1.0.0.0' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } - readable: 'WhatsApp 2.11 on a Nokia Lumia 520 running Windows Phone 8.0' + result: { browser: { name: WhatsApp, version: 2.11.282, type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } + readable: 'WhatsApp 2.11.282 on a Nokia Lumia 520 running Windows Phone 8.0' - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 [FBAN/MessengerForiOS;FBAV/17.0.0.20.11;FBBV/5740516;FBDV/iPhone7,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.1.2;FBSS/3; FBCR/TelenorDK;FBID/phone;FBLC/da_DK;FBOP/5]' result: { browser: { name: 'Facebook Messenger', type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 6 Plus' } } From 7707552a4a68991566b3ebaa5d4f4d3b8930d718 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 23:50:57 +0100 Subject: [PATCH 328/540] Remove whitespace --- tests/data/mobile/app-chat.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 63b2be2a6..02d66abc6 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -21,7 +21,7 @@ - headers: 'User-Agent: WhatsApp/2.11.164 Android/4_2_2 Device/samsung-GT-I9152' result: { browser: { name: WhatsApp, version: 2.11.164, type: 'app:chat' }, os: { name: Android, version: 4.2.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Mega 5.8 Plus' } } - readable: 'WhatsApp 2.11.164 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' + readable: 'WhatsApp 2.11.164 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' - headers: 'User-Agent: WhatsApp/2.11.139 Android/4.0.4 Device/HTC-HTC_Incredible_S' result: { browser: { name: WhatsApp, version: 2.11.139, type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: HTC, model: 'Incredible S' } } @@ -29,7 +29,7 @@ - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.1.2 Device/samsung-GT-S5310' result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Pocket Neo' } } - readable: 'WhatsApp 2.11 on a Samsung Galaxy Pocket Neo running Android 4.1.2' + readable: 'WhatsApp 2.11 on a Samsung Galaxy Pocket Neo running Android 4.1.2' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.0.4 Device/Motorola-MB526' result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: DEFY+ } } @@ -45,7 +45,7 @@ - headers: 'User-Agent: WhatsApp/2.11.356 WP7/7.10.8107 Device/SAMSUNG-GT-I8350-H23.15.0.8' result: { browser: { name: WhatsApp, version: 2.11.356, type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } - readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' + readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' - headers: 'User-Agent: WhatsApp/2.11.282 WP7/8.0.10328.0 Device/NOKIA-RM-914_eu_euro2_341-H1.0.0.0' result: { browser: { name: WhatsApp, version: 2.11.282, type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } From 8df98df71da1a19bf70638fc4a17d61fc2f9a6ce Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Fri, 7 Aug 2020 23:51:37 +0100 Subject: [PATCH 329/540] remove a bit more whitespace --- tests/data/mobile/app-chat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 02d66abc6..821bce6e2 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -85,7 +85,7 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) WhatsApp/2.2017.6 Chrome/76.0.3809.146 Electron/6.1.9 Safari/537.36' result: { browser: { name: WhatsApp, using: { name: Electron, version: 6.1.9 }, family: { name: Chrome, version: 76 }, version: 2.2017.6, type: 'app:chat' }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'WhatsApp 2.2017.6 on Windows 10' + readable: 'WhatsApp 2.2017.6 on Windows 10' - headers: 'User-Agent: WhatsApp/2.19.360 A' result: { browser: { name: WhatsApp, version: 2.19.360, type: 'app:chat' } } From c0332d884b98a2f6b772b1ea30ddfe2e450fc567 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 11:55:58 +0100 Subject: [PATCH 330/540] Add `Florienzh` bot --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..b714986b8 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -91,6 +91,7 @@ [ 'name' => 'FeedValidator', 'id' => 'validator', 'regexp' => '/FeedValidator\/([0-9.]*)/u' ], [ 'name' => 'FeedZirra', 'id' => 'feed', 'regexp' => '/feedzirra/u' ], [ 'name' => 'Fever', 'id' => 'fever', 'regexp' => '/Fever\/([0-9.]*)/u' ], + [ 'name' => 'Florienzh', 'id' => 'florienzh', 'regexp' => '/Florienzh\/([0-9.]*)/u' ], [ 'name' => 'Friendica', 'id' => 'friendica', 'regexp' => '/Friendica/u' ], [ 'name' => 'FTRF: Friendly Robot', 'id' => 'robot', 'regexp' => '/FTRF: Friendly robot\/([0-9.]*)/u' ], [ 'name' => 'Genieo Web Filter', 'id' => 'genieo', 'regexp' => '/Genieo\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..8001a4e6f 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..830fb83cb 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Florienzh/1.0' + readable: 'Florienzh 1.0' + result: { browser: { name: Florienzh, version: '1.0' }, device: { type: bot } } From a28bd4a6ff91b50068bf6bd8c1e4f9491491d429 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 13:06:59 +0100 Subject: [PATCH 331/540] Add `Discord` bot to list --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..eba0547b0 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -64,6 +64,7 @@ [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], + [ 'name' => 'Discord', 'id' => 'discord', 'regexp' => '/Discordbot\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..88b445b98 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..b76481cd8 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Discordbot/2.0; +https://discordapp.com)' + readable: 'Discord 2.0' + result: { browser: { name: Discord, version: '2.0' }, device: { type: bot } } From f4a5b9c21d687a6a230c92199fd66c101a76e774 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 17:14:41 +0100 Subject: [PATCH 332/540] Add `Voat` Social media platform bot --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..9506275aa 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -208,6 +208,7 @@ [ 'name' => 'TLSProber', 'id' => 'tlsprober', 'regexp' => '/TLSProber\/([0-9.]*)/u' ], [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], + [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat.co OpenGraph Parser/u' ], [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], [ 'name' => 'Vodafone mCrawler', 'id' => 'mcrawler', 'regexp' => '/Vodafone mCrawler/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..1d4ade921 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..e42f67dc9 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,7 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: Voat.co OpenGraph Parser' + readable: 'Voat' + result: { browser: { name: Voat }, device: { type: bot } } From 6a96cb2d2db42c19fa8f515374f384a222e44477 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 17:18:12 +0100 Subject: [PATCH 333/540] Escape regex code --- data/applications-bots.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 9506275aa..1c474fea2 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -208,7 +208,7 @@ [ 'name' => 'TLSProber', 'id' => 'tlsprober', 'regexp' => '/TLSProber\/([0-9.]*)/u' ], [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], - [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat.co OpenGraph Parser/u' ], + [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat\.co OpenGraph Parser/u' ], [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], [ 'name' => 'Vodafone mCrawler', 'id' => 'mcrawler', 'regexp' => '/Vodafone mCrawler/u' ], From b1490f2cd09d4209a1c1e5d977fe7411ef11b516 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 17:28:13 +0100 Subject: [PATCH 334/540] Update generic.yaml --- tests/data/bots/generic.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e42f67dc9..8333d1bc7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,3 +518,4 @@ headers: 'User-Agent: Voat.co OpenGraph Parser' readable: 'Voat' result: { browser: { name: Voat }, device: { type: bot } } +reset \ No newline at end of file From c6c6e352e48ac6fa5afa70cd9a4d4d5ecd996506 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 17:36:07 +0100 Subject: [PATCH 335/540] Update generic.yaml --- tests/data/bots/generic.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 8333d1bc7..e42f67dc9 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -518,4 +518,3 @@ headers: 'User-Agent: Voat.co OpenGraph Parser' readable: 'Voat' result: { browser: { name: Voat }, device: { type: bot } } -reset \ No newline at end of file From 2c7108863a45b7aff50fd988290a76f96c94c947 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Sat, 8 Aug 2020 17:55:16 +0100 Subject: [PATCH 336/540] Add `Pocket` social media platform bots --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 322e1c506..2b5fc18b7 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -168,6 +168,8 @@ [ 'name' => 'Picsearch bot', 'id' => 'psbot', 'regexp' => '/psbot-page/u' ], [ 'name' => 'Pingdom', 'id' => 'pingdom', 'regexp' => '/Pingdom.com_bot_version_([0-9.]*)/u' ], [ 'name' => 'Pinterest', 'id' => 'pinterest', 'regexp' => '/Pinterest\/([0-9.]+)( \(+|$)/u' ], + [ 'name' => 'Pocket', 'id' => 'pocket', 'regexp' => '/PocketImageCache\/([0-9.]+)/u' ], + [ 'name' => 'Pocket', 'id' => 'pocket', 'regexp' => '/PocketParser\/([0-9.]+)/u' ], [ 'name' => 'PostRank', 'id' => 'postrank', 'regexp' => '/PostRank\/([0-9.]*)/u' ], [ 'name' => 'PowerMapper', 'id' => 'crawler', 'regexp' => '/CrawlerProcess \(http:\/\/www\.PowerMapper\.com\) \/([0-9.]*)/u' ], [ 'name' => 'Radian 6', 'id' => 'feed', 'regexp' => '/R6_FeedFetcher/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 740a281b8..da5acd598 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|pocket|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fdce84702..ba5ce6b8d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,3 +514,11 @@ headers: 'User-Agent: Pinterest/0.2 (+http://www.pinterest.com/)' readable: 'Pinterest 0.2' result: { browser: { name: Pinterest, version: '0.2' }, device: { type: bot } } +- + headers: 'User-Agent: PocketImageCache/1.0' + readable: 'Pocket 1.0' + result: { browser: { name: Pocket, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: PocketParser/2.0 (+https://getpocket.com/pocketparser_ua)' + readable: 'Pocket 2.0' + result: { browser: { name: Pocket, version: '2.0' }, device: { type: bot } } From 0ae8533803fc3be8637ec88810e79029a10403be Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 17 Aug 2020 22:17:42 +0200 Subject: [PATCH 337/540] Add request regex --- data/regexes/applications-bots.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 733c94f31..a62a1bdb2 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|pocket|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; From 5dcaf7d406222a7523ebe3156359a29a1222a82a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:03:09 +0200 Subject: [PATCH 338/540] Remove change to applications-browsers.php --- data/applications-browsers.php | 1 - 1 file changed, 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index c768f7ec0..80f42743a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,6 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Opera GX', 'id' => 'operagx', 'regexp' =>'/OPRGX\/([0-9.]*)$/u' ], // see: https://www.opera.com/gx [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From 1cb3449c484d5592adc7abb0b56add91a92d391e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:03:42 +0200 Subject: [PATCH 339/540] Update applications-browsers.php --- data/regexes/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index a1f141279..a23752a7a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|operagx|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; From 168223ae921f025f645dfe1a6d3313ead6ac34f9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:06:52 +0200 Subject: [PATCH 340/540] Update applications-browsers.php --- data/applications-browsers.php | 1 - 1 file changed, 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 60293aa89..80f42743a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,6 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Opera Neon', 'id' => 'mms', 'regexp' =>'/ MMS\/([0-9.]*)$/u' ], // see: https://www.opera.com/computer/neon [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From 21df82906cd2b93097797d5196ccc429b6e4b51d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:07:08 +0200 Subject: [PATCH 341/540] Update applications-browsers.php --- data/regexes/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 0e4191680..a23752a7a 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|mms|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; From 9a6c6276f03b12ccb8ae665f255c4e51dd548996 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:10:54 +0200 Subject: [PATCH 342/540] Rebase Opera Neon test --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index d744abde2..aa2f139f1 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,8 +160,8 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.21 Safari/537.36 MMS/1.0.2531.0' - result: { browser: { name: 'Opera Neon', family: { name: Chrome, version: 53 }, version: '1.0.2531.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'Opera Neon 1.0.2531.0 on Windows 10' + result: { browser: { name: 'Opera Neon', family: { name: Chrome, version: 53 }, version: '1.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Opera Neon 1.0 on Windows 10' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.50747 OPRGX/60.0.3255.50747' result: { browser: { name: 'Opera GX', family: { name: Chrome, version: 73 }, version: '60.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } From 527c4704fbf2ae61a9f6325d653d2112ac0e9d18 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:23:32 +0200 Subject: [PATCH 343/540] Change id to to-browser --- data/applications-browsers.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index e39827772..8880eb56a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -97,8 +97,8 @@ [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], [ 'name' => 'Superbird', 'id' => 'superbird', 'regexp' =>'/Super[Bb]ird\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Swing Browser', 'id' => 'swing', 'regexp' =>'/Swing(?:\(And\))?\/([0-9.]*)/u', 'details' => 3 ], // see: http://swing-browser.com - [ 'name' => 't-online.de', 'id' => 'tonline', 'regexp' =>'/TO-Browser\/TOB([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.t-online.de/computer/browser/ - [ 'name' => 't-online.de', 'id' => 'tonline', 'regexp' =>'/TO-Browser/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 't-online.de', 'id' => 'to-browser', 'regexp' =>'/TO-Browser\/TOB([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.t-online.de/computer/browser/ + [ 'name' => 't-online.de', 'id' => 'to-browser', 'regexp' =>'/TO-Browser/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Tencent Traveler', 'id' => 'tencent', 'regexp' =>'/TencentTraveler ([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TenFourFox', 'id' => 'tenfourfox', 'regexp' =>'/TenFourFox\//u' ], [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], From c740fa0c45d61d39360f77b5614bebd29722f90e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:58:03 +0200 Subject: [PATCH 344/540] Use id juzi --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 31c818c94..1a209d0ec 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Orange Browser', 'id' => 'orange', 'regexp' =>'/JuziBrowser/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.123juzi.com/ + [ 'name' => 'Orange Browser', 'id' => 'juzi', 'regexp' =>'/JuziBrowser/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.123juzi.com/ [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From d6d066eee84db9ba1a8636f9fdd165458dfc1342 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 10:59:55 +0200 Subject: [PATCH 345/540] Use live as id --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 5c488c19c..81b438f85 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -81,7 +81,7 @@ [ 'name' => 'NetPositive', 'id' => 'netpositive', 'regexp' =>'/NetPositive\/([0-9.]*)/u' ], [ 'name' => 'Origyn', 'id' => 'origyn', 'regexp' =>'/Origyn Web Browser/u' ], [ 'name' => 'Odyssey', 'id' => 'owb', 'regexp' =>'/OWB\/([0-9.]*)/u' ], - [ 'name' => 'Open Live Writer', 'id' => 'openlive', 'regexp' =>'/Open Live Writer ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://openlivewriter.org/ + [ 'name' => 'Open Live Writer', 'id' => 'live', 'regexp' =>'/Open Live Writer ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://openlivewriter.org/ [ 'name' => 'Orca', 'id' => 'orca', 'regexp' =>'/Orca\/([0-9.]*)/u' ], [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org From 2617570d42b84c79017e0d9f92a3bb1e96849fa1 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 11:36:16 +0200 Subject: [PATCH 346/540] Use mail\.ru as id --- data/applications-bots.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 98a3c3444..01763c5ee 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -147,8 +147,8 @@ [ 'name' => 'LTX71', 'id' => 'ltx71', 'regexp' => '/ltx71/u' ], [ 'name' => 'Magpie RSS', 'id' => 'magpie', 'regexp' => '/MagpieRSS\/([0-9.]*)/u' ], [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], - [ 'name' => 'Mail.ru Bot', 'id' => 'mailru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], - [ 'name' => 'Mail.ru Bot', 'id' => 'mailru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], + [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], + [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], From b0baad83aa4a096672c78ebe1261ff65c114b54d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 11:43:32 +0200 Subject: [PATCH 347/540] use dotbot and rogerbot as id's --- data/applications-bots.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 1caa2584c..951898c0d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -151,8 +151,8 @@ [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], - [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/DotBot\/([0-9.]*)/i' ], - [ 'name' => 'Moz', 'id' => 'moz', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], + [ 'name' => 'Moz', 'id' => 'dotbot', 'regexp' => '/DotBot\/([0-9.]*)/i' ], + [ 'name' => 'Moz', 'id' => 'rogerbot', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], From 466f2f549013d769be741d50113e73f02c28f2f4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 11:54:47 +0200 Subject: [PATCH 348/540] Update generated regexes for the previous batch of PRs --- data/regexes/applications-bots.php | 2 +- data/regexes/applications-browsers.php | 2 +- data/regexes/applications-others.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5e3f48203..b195a4507 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|butterfly|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|socialstreams|mixi|mnogo|monitor|moz|yeti|netcraft|netvibes|newsblur|newsgator|orange|pages|psbot|pingdom|pinterest|postrank|python|comment|rssbar|hunter|quora|safesearch|scrapy|seznam|shopwiki|reader|simplepie|site24|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 2d70a5e90..355fb1fc4 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|blackwren|brave|byffox|camino|canure|charon|chromeplus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberfox|daedalus|dillo|rhodonit|eudoraweb|flock|galeon|epiphany|ibrowse|icab|iceape|icecat|iceweasel|iridium|iron|kazehakase|kchrome|meleon|lbbrowser|lobo|lunascape|naenara|mxbrowser|mixshark|mlbrowser|netpositive|origyn|owb|orca|oregano|otter|palemoon|qtweb|qupzilla|rekonq|ryouko|saayaa|sleipnir|metasr|stainless|sunchrome|superbird|swing|tencent|tenfourfox|theworld|tungsten|vivaldi|voyager|waterfox|yabrowser|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|openwave|up|km|oppo|quark|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackbird|brave|byffox|camino|canure|charon|chromeplus|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|flock|galeon|globalmojo|epiphany|greenbrowser|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kazehakase|kchrome|meleon|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|mixshark|mlbrowser|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|qtweb|qupzilla|rekonq|ryouko|sylera|saayaa|sleipnir|metasr|sparrow|stainless|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|vonkeror|voyager|waterfox|xvast|yabrowser|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index a5a9c77b7..f518ca7cf 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|wire|whatsapp|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; From 7207a68d295cf2cdce543b3f2b771bb196a5c0dd Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 11:56:15 +0200 Subject: [PATCH 349/540] Update Chrome versions --- data/browsers-chrome.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index f26b2667a..3b2b139dc 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -85,6 +85,9 @@ '78.0.3904' => 'stable', '79.0.3945' => 'stable', '80.0.3987' => 'stable', + '81.0.4044' => 'stable', + '83.0.4103' => 'stable', + '84.0.4147' => 'stable', ]; Chrome::$MOBILE = [ @@ -144,4 +147,6 @@ '78.0.3904' => 'stable', '79.0.3945' => 'stable', '80.0.3987' => 'stable', + '83.0.4103' => 'stable', + '84.0.4147' => 'stable', ]; From a839bb92cd9187a8d3cb71edf78ed9ba1fe364e9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 14:16:11 +0200 Subject: [PATCH 350/540] Use id tnsbrowser --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 63581f982..4df4e223c 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -139,7 +139,7 @@ [ 'name' => 'iSurf', 'id' => 'isurf', 'regexp' =>'/iSurf version \/v([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Jig Browser', 'id' => 'jig browser', 'regexp' =>'/jig browser(?: web| core|9i?)?;? ?([0-9.]+)?/u', 'type' => Constants\DeviceType::MOBILE ], [ 'name' => 'Jumanji', 'id' => 'jumanji', 'regexp' =>'/jumanji/u' ], // see: jumanji browser ubuntu - [ 'name' => 'K.Browser', 'id' => 'kbrowser', 'regexp' => '/TNSBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.tnsua.browser + [ 'name' => 'K.Browser', 'id' => 'tnsbrowser', 'regexp' => '/TNSBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.tnsua.browser [ 'name' => 'Kiosk', 'id' => 'kiosk', 'regexp' =>'/Kiosk\/([0-9.]*)/u' ], // see: http://www.kioskbrowser.net [ 'name' => 'LeBrowser', 'id' => 'lebrowser', 'regexp' =>'/LeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'LieBaoFast', 'id' => 'liebao', 'regexp' =>'/LieBaoFast\/([0-9.]*)/u' ], // see: http://www.liebao.cn From e6e6b5bbb90653f7390730199bfebf948ed2cb40 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 15:12:53 +0200 Subject: [PATCH 351/540] Update regexes for previous batch of PRs --- data/regexes/applications-browsers.php | 2 +- data/regexes/applications-others.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 355fb1fc4..9584e0968 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackbird|brave|byffox|camino|canure|charon|chromeplus|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|flock|galeon|globalmojo|epiphany|greenbrowser|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kazehakase|kchrome|meleon|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|mixshark|mlbrowser|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|qtweb|qupzilla|rekonq|ryouko|sylera|saayaa|sleipnir|metasr|sparrow|stainless|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|vonkeror|voyager|waterfox|xvast|yabrowser|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|ucpro|vivo|weblite|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|byffox|camino|canure|ccleaner|charon|chimlac|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|meleon|kylo|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|qtweb|qupzilla|qute|rekonq|ryouko|sylera|saayaa|sielo|sitekiosk|sleipnir|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|vonkeror|voyager|waterfox|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index f518ca7cf..ec48677ef 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|slack|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; From ae52d0a86f8ef3ae6521d0c3f88fcc3407361a4e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 16:48:30 +0200 Subject: [PATCH 352/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 62dadf7e2..ea3feeefa 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -102,7 +102,7 @@ [ 'name' => 'The World', 'id' => 'theworld', 'regexp' =>'/TheWorld(?: ([0-9.]*))?/u' ], [ 'name' => 'Tungsten Browser', 'id' => 'tungsten', 'regexp' =>'/TungstenBrowser\/([0-9.]*)/u' ], [ 'name' => 'Vivaldi', 'id' => 'vivaldi', 'regexp' =>'/Vivaldi\/([0-9.]*)/u', 'details' => 2 ], - [ 'name' => 'VMware Browser', 'id' => 'vmware', 'regexp' => '/Air[Ww]atch Browser v([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], + [ 'name' => 'VMware Workspace ONE', 'id' => 'airwatch', 'regexp' => '/Air[Ww]atch Browser v([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Voyager', 'id' => 'voyager', 'regexp' =>'/AmigaVoyager\/([0-9.]*)/u' ], [ 'name' => 'Waterfox', 'id' => 'waterfox', 'regexp' =>'/Waterfox\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], From 3c319a4998960749e04352210b661468271a6317 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 16:48:53 +0200 Subject: [PATCH 353/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 7b51ff272..8cbd22d88 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.4.1 Safari/605.1.15 (Airwatch Browser v7.9)' - result: { browser: { name: 'VMware Browser', version: '7.9', type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: 'VMware Workspace ONE', version: '7.9', type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'VMware Browser 7.9 on OS X El Capitan 10.11' From e32f8c08f51960b93757bcc7a25ec2c39b258630 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 17:12:52 +0200 Subject: [PATCH 354/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index b01b20846..2dcd2aac3 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -92,7 +92,7 @@ [ 'name' => 'Ryouko', 'id' => 'ryouko', 'regexp' =>'/Ryouko\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://github.com/foxhead128/ryouko [ 'name' => 'SaaYaa Explorer', 'id' => 'saayaa', 'regexp' =>'/SaaYaa/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Sleipnir', 'id' => 'sleipnir', 'regexp' =>'/Sleipnir\/([0-9.]*)/u', 'details' => 3 ], - [ 'name' => 'SlimJet Browser', 'id' => 'slimjet', 'regexp' => '/ Slimjet\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.slimjet.com/ + [ 'name' => 'Slimjet', 'id' => 'slimjet', 'regexp' => '/ Slimjet\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.slimjet.com/ [ 'name' => 'Sogou Explorer', 'id' => 'metasr', 'regexp' =>'/SE 2.X MetaSr/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Stainless', 'id' => 'stainless', 'regexp' =>'/Stainless\/([0-9.]*)/u' ], // see: http://www.stainlessapp.com [ 'name' => 'SunChrome', 'id' => 'sunchrome', 'regexp' =>'/SunChrome\/([0-9.]*)/u' ], From ff8b919bc72b2535fe91bcc1589ef19d9781bb6d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 17:13:22 +0200 Subject: [PATCH 355/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 0779a08c5..bbe264632 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Slimjet/19.0.2.0' - result: { browser: { name: 'SlimJet Browser', family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'SlimJet Browser 19.0.2.0 on Windows 10' + result: { browser: { name: 'Slimjet', family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'SlimJet 19.0.2.0 on Windows 10' From f25a8bc838055313e21bb44d815e45af82762419 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 17:30:07 +0200 Subject: [PATCH 356/540] Fix some renamed browsers in the test-suite --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index e15ea688b..0e7baeb1f 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -229,11 +229,11 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Slimjet/19.0.2.0' result: { browser: { name: 'Slimjet', family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - readable: 'SlimJet 19.0.2.0 on Windows 10' + readable: 'Slimjet 19.0.2.0 on Windows 10' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.4.1 Safari/605.1.15 (Airwatch Browser v7.9)' result: { browser: { name: 'VMware Workspace ONE', version: '7.9', type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'VMware Browser 7.9 on OS X El Capitan 10.11' + readable: 'VMware Workspace ONE 7.9 on OS X El Capitan 10.11' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Whale/2.7.97.12 Safari/537.36' readable: 'Whale Browser 2.7.97.12 on Windows 10' From cd618a6a4eeccc36f24d5c5c1400fd80b760cf84 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 17:30:19 +0200 Subject: [PATCH 357/540] Update regexes for previous batch --- data/regexes/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 9584e0968..6a772ac59 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|byffox|camino|canure|ccleaner|charon|chimlac|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|meleon|kylo|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|qtweb|qupzilla|qute|rekonq|ryouko|sylera|saayaa|sielo|sitekiosk|sleipnir|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|vonkeror|voyager|waterfox|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|byffox|camino|canure|ccleaner|charon|chimlac|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|meleon|kylo|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; From 2b5b0624bd53bd8a00e5c7dfd583beebc17bfcbe Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 21:17:28 +0200 Subject: [PATCH 358/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index e07ceed77..3b687e279 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -71,7 +71,7 @@ [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn - [ 'name' => 'Light Browser', 'id' => 'light', 'regexp' => '/ Light\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://en.wikipedia.org/wiki/Light_(web_browser) + [ 'name' => 'Light', 'id' => 'light', 'regexp' => '/ Light\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://en.wikipedia.org/wiki/Light_(web_browser) [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv [ 'name' => 'Naenara', 'id' => 'naenara', 'regexp' =>'/NaenaraBrowser\/([0-9.]*)/u', 'details' => 2 ], // Firefox based browser used with Red Star OS From 414f56fceb216525f0877df9d267171dbe960d64 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 21:17:51 +0200 Subject: [PATCH 359/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 2a8e4d1aa..7374734db 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 Light/44.0' - readable: 'Light Browser 44.0 on Windows 10' - result: { browser: { name: 'Light Browser', family: { name: Firefox, version: '44.0' }, version: '44.0', type: browser }, engine: { name: Gecko, version: '44.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'Light 44.0 on Windows 10' + result: { browser: { name: 'Light', family: { name: Firefox, version: '44.0' }, version: '44.0', type: browser }, engine: { name: Gecko, version: '44.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } From 2426b3538a3a587db9b52ea1e5240385de6e195c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 21:21:37 +0200 Subject: [PATCH 360/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index b853f678a..7de01722a 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -70,7 +70,7 @@ [ 'name' => 'Kazehakase', 'id' => 'kazehakase', 'regexp' =>'/Kazehakase\/([0-9.]*)/u' ], // see: http://kazehakase.osdn.jp [ 'name' => 'KChrome', 'id' => 'kchrome', 'regexp' =>'/KChrome\/([0-9.]*)/u', 'details' => 3 ], // see: http://www.kchrome.com [ 'name' => 'K-Meleon', 'id' => 'meleon', 'regexp' =>'/K-Meleon\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://kmeleonbrowser.org - [ 'name' => 'KKMAN Browser', 'id' => 'kkman', 'regexp' => '/ KKman([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.kkbox.com/kkman/ + [ 'name' => 'KKMAN', 'id' => 'kkman', 'regexp' => '/ KKman([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.kkbox.com/kkman/ [ 'name' => 'LieBao', 'id' => 'lbbrowser', 'regexp' =>'/LBBROWSER/u' ], // see: http://www.liebao.cn [ 'name' => 'Lobo', 'id' => 'lobo', 'regexp' =>'/Lobo\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://sourceforge.net/projects/xamj/files/Lobo%20Browser/ [ 'name' => 'Lunascape', 'id' => 'lunascape', 'regexp' =>'/ Lunascape[\/| ]([0-9.]*)/u', 'details' => 3 ], // see: http://www.lunascape.tv From 254c4d2f5b158bde4addb17fb673027336cf4ceb Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 21:21:58 +0200 Subject: [PATCH 361/540] Update browser-other.yaml --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 35ee22f92..aa70e941b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -160,5 +160,5 @@ result: { browser: { name: iCab, version: 3.0.3, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; KKman3.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)' - readable: 'KKMAN Browser 3.0 on Windows Vista' - result: { browser: { name: 'KKMAN Browser', version: '3.0', type: browser }, os: { name: Windows, version: { value: '6.0', alias: Vista } }, device: { type: desktop } } + readable: 'KKMAN 3.0 on Windows Vista' + result: { browser: { name: 'KKMAN', version: '3.0', type: browser }, os: { name: Windows, version: { value: '6.0', alias: Vista } }, device: { type: desktop } } From d3bde4416ae6d919688dbc3c327f1f05e11ea250 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 21:49:49 +0200 Subject: [PATCH 362/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 928420fe4..d22738b14 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -50,7 +50,7 @@ [ 'name' => 'Comodo Dragon', 'id' => 'dragon', 'regexp' =>'/Dragon\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Comodo IceDragon', 'id' => 'dragon', 'regexp' =>'/IceDragon\/([0-9.]*)/u', 'details' => 2, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Conkeror', 'id' => 'conkeror', 'regexp' =>'/[Cc]onkeror\/([0-9.]*)/u' ], - [ 'name' => 'Coc Coc', 'id' => 'coocoo', 'regexp' => '/coc_coc_browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://coccoc.com/en/ + [ 'name' => 'Coc Coc', 'id' => 'coc', 'regexp' => '/coc_coc_browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://coccoc.com/en/ [ 'name' => 'CoolNovo', 'id' => 'coolnovo', 'regexp' =>'/(?:CoolNovo|CoolNovoChromePlus)\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cunaguaro', 'id' => 'cunaguaro', 'regexp' =>'/Cunaguaro\/([0-9.]*)/u', 'details' => 3, 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Cyberfox', 'id' => 'cyberfox', 'regexp' =>'/Cyberfox\/([0-9.]*)/u', 'details' => 2 ], // see: https://cyberfox.8pecxstudios.com From 4d0c46b2906f716dd021699a840b54cfb76dc963 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 22:20:41 +0200 Subject: [PATCH 363/540] Update applications-browsers.php --- data/applications-browsers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 24c66a592..16753e058 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -218,7 +218,7 @@ [ 'name' => 'Snowshoe', 'id' => 'snowshoe', 'regexp' =>'/Snowshoe\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Sputnik', 'id' => 'sputnik', 'regexp' =>'/Sputnik\/([0-9.]*)/iu', 'details' => 3 ], [ 'name' => 'Surf', 'id' => 'surf', 'regexp' =>'/Surf\/([0-9.]*)/u' ], - [ 'name' => 'Taobao Browser', 'id' => 'taobao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], + [ 'name' => 'Taobao Browser', 'id' => 'tao', 'regexp' =>'/TaoBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TaomeeBrowser', 'id' => 'tao', 'regexp' =>'/TaomeeBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'TazWeb', 'id' => 'taz', 'regexp' =>'/TazWeb/u' ], [ 'name' => 'Uzbl', 'id' => 'uzbl', 'regexp' =>'/^Uzbl/u' ], From 2f33cf07b0933e194d8b57bd8ef438454e8c3fc9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 22:25:28 +0200 Subject: [PATCH 364/540] Fix error in testsuite --- tests/data/desktop/browser-other.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 79fcfdc40..8a9dc28e5 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -220,7 +220,7 @@ readable: '37abc Browser 1.6.5.14 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.5.2526.111 Amigo/47.5.2526.111 MRCHROME SOC Safari/537.36' - result: { browser: { name: 'Amigo Browser', family: { name: Chrome, version: 47.5.2526.111 }, version: 47.5.2526.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Amigo Browser', family: { name: Chrome, version: 47 }, version: 47.5.2526.111, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Amigo Browser 47.5.2526.111 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt) Chrome/37.0.2049.0 (KHTML, like Gecko) Version/4.0 APUSBrowser/1.1.111 Safari/' From 0afd5efd0c2dc1da68a9e916788bba8b7ef61f69 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 22:25:42 +0200 Subject: [PATCH 365/540] Update regexes after last batch --- data/regexes/applications-bots.php | 2 +- data/regexes/applications-browsers.php | 2 +- data/regexes/applications-others.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index b195a4507..fa8685a44 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 6a772ac59..f4007190b 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|qihu|7star|abrowse|acorn|acoo|aol|america|arachne|arora|aweb|avant|asw|avg|aviator|flyflow|bdbrowser|bdspark|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|byffox|camino|canure|ccleaner|charon|chimlac|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coolnovo|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|dillo|doczilla|rhodonit|dplus|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|meleon|kylo|lbrowser|lbbrowser|lobo|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|eui|go\.web|helium|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|lebrowser|liebao|macross|mammoth|mcent|mib|cmcs|motorola|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|1stbrowser|7star|abrowse|acorn|acoo|amigo|aol|america|apus|arachne|arora|aweb|avant|asw|avg|aviator|avira|flyflow|bdbrowser|bdspark|basilisk|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|browzar|byffox|camino|canure|ccleaner|cent|charon|chedot|cheshire|chimlac|chimera|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coc|coolnovo|corom|crazy|crusta|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|diigo|dillo|doczilla|rhodonit|dplus|elements|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|icedove|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|kinza|kkman|klondike|kylo|meleon|lbrowser|lbbrowser|light|lobo|lolifox|lovense|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|nichrome|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|epic|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mint|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index ec48677ef..ff6aa4b89 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|slack|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; From e60f8255d5b8c9a2a8eb6307e7e5996f6f94fe77 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 22:28:15 +0200 Subject: [PATCH 366/540] Add support for macOS Big Sur --- src/Analyser/Derive.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Analyser/Derive.php b/src/Analyser/Derive.php index acc4b9b89..bc1071664 100644 --- a/src/Analyser/Derive.php +++ b/src/Analyser/Derive.php @@ -484,6 +484,14 @@ private function deriveBasedOnOperatingSystem() if ($this->data->os->version->is('10.15')) { $this->data->os->version->nickname = 'Catalina'; } + + if ($this->data->os->version->is('10.16')) { + $this->data->os->version->nickname = 'Big Sur'; + } + + if ($this->data->os->version->is('11.0')) { + $this->data->os->version->nickname = 'Big Sur'; + } } } } From f8ec5426530fca72ce84c58b2541c22b5391846d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 18 Aug 2020 23:22:57 +0200 Subject: [PATCH 367/540] Add new Samsung devices --- data/models-android.php | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/data/models-android.php b/data/models-android.php index f9a82c5ef..7f264f086 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -13255,11 +13255,14 @@ 'SMT-i9100' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], 'SM-A[0-9]{3,3}!!' => [ + 'SM-A015!' => [ 'Samsung', 'Galaxy A01' ], 'SM-A102!' => [ 'Samsung', 'Galaxy A10e' ], 'SM-A105!' => [ 'Samsung', 'Galaxy A10' ], + 'SM-A115!' => [ 'Samsung', 'Galaxy A11' ], 'SM-A107!' => [ 'Samsung', 'Galaxy A10s' ], 'SM-A202!' => [ 'Samsung', 'Galaxy A20e' ], 'SM-A205!' => [ 'Samsung', 'Galaxy A20' ], + 'SM-A215!' => [ 'Samsung', 'Galaxy A21' ], 'SM-A260!' => [ 'Samsung', 'Galaxy A2 Core' ], 'SM-A300!' => [ 'Samsung', 'Galaxy A3' ], 'SM-A305!' => [ 'Samsung', 'Galaxy A30' ], @@ -13274,6 +13277,8 @@ 'SM-A505!' => [ 'Samsung', 'Galaxy A50' ], 'SM-A507!' => [ 'Samsung', 'Galaxy A50s' ], 'SM-A510!' => [ 'Samsung', 'Galaxy A5 (2016)' ], + 'SM-A515!' => [ 'Samsung', 'Galaxy A51' ], + 'SM-A516!' => [ 'Samsung', 'Galaxy A51 5G' ], 'SM-A520!' => [ 'Samsung', 'Galaxy A5 (2017)' ], 'SM-A530!' => [ 'Samsung', 'Galaxy A8 (2018)' ], 'SM-A600!' => [ 'Samsung', 'Galaxy A6 (2018)' ], @@ -13283,6 +13288,7 @@ 'SM-A700!' => [ 'Samsung', 'Galaxy A7' ], 'SM-A705!' => [ 'Samsung', 'Galaxy A70' ], 'SM-A710!' => [ 'Samsung', 'Galaxy A7 (2016)' ], + 'SM-A716!' => [ 'Samsung', 'Galaxy A71 5G' ], 'SM-A720!' => [ 'Samsung', 'Galaxy A7 (2017)' ], 'SM-A730!' => [ 'Samsung', 'Galaxy A8+ (2018)' ], 'SM-A750!' => [ 'Samsung', 'Galaxy A7 (2018)' ], @@ -13313,7 +13319,10 @@ 'SM-F[0-9]{3,3}!!' => [ 'SM-F700!' => [ 'Samsung', 'Galaxy Z Flip' ], + 'SM-F707!' => [ 'Samsung', 'Galaxy Z Flip 5G' ], 'SM-F900!' => [ 'Samsung', 'Galaxy Fold' ], + 'SM-F910!' => [ 'Samsung', 'Galaxy Z Fold2' ], + 'SM-F916!' => [ 'Samsung', 'Galaxy Z Fold2 5G' ], ], 'SM-G[0-9]{3,3}!!' => [ @@ -13373,10 +13382,11 @@ 'SM-G615!' => [ 'Samsung', 'Galaxy J7 Max' ], 'SM-G620!' => [ 'Samsung', 'Galaxy J7 Prime (2018)' ], 'SM-G710!' => [ 'Samsung', 'Galaxy Grand 2' ], + 'SM-G715!' => [ 'Samsung', 'Galaxy XCover Pro' ], 'SM-G720!' => [ 'Samsung', 'Galaxy Grand 3' ], 'SM-G730!' => [ 'Samsung', 'Galaxy S III Mini' ], 'SM-G750!' => [ 'Samsung', 'Galaxy Mega 2 ' ], - 'SM-G770!' => [ 'Samsung', 'Galaxy On7' ], + 'SM-G770!' => [ 'Samsung', 'Galaxy S10 Lite' ], 'SM-G800!' => [ 'Samsung', 'Galaxy S5 Mini' ], 'SM-G850!' => [ 'Samsung', 'Galaxy Alpha' ], 'SM-G860!' => [ 'Samsung', 'Galaxy S5 Sport' ], @@ -13408,7 +13418,7 @@ 'SM-G965!' => [ 'Samsung', 'Galaxy S9+' ], 'SM-G970!' => [ 'Samsung', 'Galaxy S10e' ], 'SM-G973!' => [ 'Samsung', 'Galaxy S10' ], - 'SM-G975!' => [ 'Samsung', 'Galaxy S10 Plus' ], + 'SM-G975!' => [ 'Samsung', 'Galaxy S10+' ], 'SM-G977!' => [ 'Samsung', 'Galaxy S10 5G' ], 'SM-G980!' => [ 'Samsung', 'Galaxy S20' ], 'SM-G981!' => [ 'Samsung', 'Galaxy S20' ], @@ -13478,6 +13488,9 @@ 'SM-N960!' => [ 'Samsung', 'Galaxy Note 9' ], 'SM-N970!' => [ 'Samsung', 'Galaxy Note 10' ], 'SM-N975!' => [ 'Samsung', 'Galaxy Note 10+' ], + 'SM-N976!' => [ 'Samsung', 'Galaxy Note 10+ 5G' ], + 'SM-N981!' => [ 'Samsung', 'Galaxy Note 20 5G' ], + 'SM-N986!' => [ 'Samsung', 'Galaxy Note 20 Ultra 5G' ], ], 'SM-P[0-9]{3,3}!!' => [ @@ -13485,6 +13498,7 @@ 'SM-P55[015]!' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', DeviceType::TABLET ], 'SM-P58[058]!' => [ 'Samsung', 'Galaxy Tab A 10.1 with S Pen (2016)', DeviceType::TABLET ], 'SM-P60[01257]!' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', DeviceType::TABLET ], + 'SM-P61[0]!' => [ 'Samsung', 'Galaxy Tab S6 Lite', DeviceType::TABLET ], 'SM-P90[01257]!' => [ 'Samsung', 'Galaxy Note Pro', DeviceType::TABLET ], ], @@ -13523,6 +13537,8 @@ 'SM-T255[68S]!' => [ 'Samsung', 'Galaxy Tab Q' ], 'SM-T23[012579]!' => [ 'Samsung', 'Galaxy Tab 4 7.0', DeviceType::TABLET ], 'SM-T28[057]!' => [ 'Samsung', 'Galaxy Tab A 7.0', DeviceType::TABLET ], + 'SM-T29[0]!' => [ 'Samsung', 'Galaxy Tab A 8.0 (2019)', DeviceType::TABLET ], + 'SM-T30[7]!' => [ 'Samsung', 'Galaxy Tab A 8.4 (2020)', DeviceType::TABLET ], 'SM-T31[0125]!' => [ 'Samsung', 'Galaxy Tab 3 8.0', DeviceType::TABLET ], 'SM-T32[0125]!' => [ 'Samsung', 'Galaxy Tab Pro 8.4', DeviceType::TABLET ], 'SM-T33[01257]!' => [ 'Samsung', 'Galaxy Tab 4 8.0', DeviceType::TABLET ], @@ -13549,7 +13565,7 @@ 'SM-T70[057]!' => [ 'Samsung', 'Galaxy Tab S 8.4', DeviceType::TABLET ], 'SM-T71[05]!' => [ 'Samsung', 'Galaxy Tab S2 8.0', DeviceType::TABLET ], 'SM-T71[39]!' => [ 'Samsung', 'Galaxy Tab S2 8.0 (2016)', DeviceType::TABLET ], - 'SM-T72[05]!' => [ 'Samsung', 'Galaxy Tab S5e', DeviceType::TABLET ], + 'SM-T72[057]!' => [ 'Samsung', 'Galaxy Tab S5e', DeviceType::TABLET ], 'SM-T80[0157]!' => [ 'Samsung', 'Galaxy Tab S 10.5', DeviceType::TABLET ], 'SM-T81[057]!' => [ 'Samsung', 'Galaxy Tab S2 9.7', DeviceType::TABLET ], 'SM-T81[39]!' => [ 'Samsung', 'Galaxy Tab S2 9.7 (2016)', DeviceType::TABLET ], @@ -13557,7 +13573,10 @@ 'SM-T82[057]!' => [ 'Samsung', 'Galaxy Tab S3 9.7', DeviceType::TABLET ], 'SM-T83[057]!' => [ 'Samsung', 'Galaxy Tab S4 10.5', DeviceType::TABLET ], 'SM-T86[057]!' => [ 'Samsung', 'Galaxy Tab S6 10.5', DeviceType::TABLET ], + 'SM-T87[0]!' => [ 'Samsung', 'Galaxy Tab S7 11.0', DeviceType::TABLET ], 'SM-T90[05]!' => [ 'Samsung', 'Galaxy Tab Pro 12.2', DeviceType::TABLET ], + 'SM-T92[7]!' => [ 'Samsung', 'Galaxy View2 (2019)', DeviceType::TABLET ], + 'SM-T97[0]!' => [ 'Samsung', 'Galaxy Tab S7+ 12.4', DeviceType::TABLET ], ], 'SM-V700' => [ 'Samsung', 'Galaxy Gear', DeviceType::WATCH ], From 57e856529ac707ce5493e6cc87d31c73cbfffe23 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 12:13:13 +0100 Subject: [PATCH 368/540] As per comment --- data/applications-others.php | 1 - 1 file changed, 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index e3eca1d70..bb29e173b 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,7 +72,6 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], - [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/ Viber/u' ], [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/Viber\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], From 341c255bd70844c266eb42af22933225a3b4a638 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 12:19:28 +0100 Subject: [PATCH 369/540] This branch has conflicts that must be resolved --- data/applications-others.php | 2 ++ data/regexes/applications-others.php | 2 +- tests/data/mobile/app-chat.yaml | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index bb29e173b..7bf1feb10 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -72,6 +72,8 @@ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], + [ 'name' => 'Line', 'id' => 'line', 'regexp' => '/ Line\/([0-9.]*)/u' ], + [ 'name' => 'Slack', 'id' => 'slack', 'regexp' => '/ Slack_SSB\/([0-9.]*)/u' ], [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/Viber\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 9a9056021..ff6aa4b89 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kik|viber|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index da4d7734e..68c43f3bc 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -82,6 +82,26 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Wire/0.564.2.20' readable: 'Wire 0.564.2.20 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } +- + headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 Line/9.8.0' + result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone' } } + readable: 'Line 9.8.0 on an Apple iPhone running iOS 8.1.2' +- + headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B100 KAKAOTALK 5.9.2' + readable: 'KakaoTalk 5.9.2 on an Apple iPhone running iOS 10.1.1' + result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14}, os: { name: iOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple ,model: iPhone } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) AtomShell/2.3.1 Chrome/52.0.2743.82 Electron/1.3.8 Safari/537.36 Slack_SSB/2.3.1' + readable: 'Slack 2.3.1 on macOS Sierra 10.12' + result: { browser: { name: Slack, using: { name: Electron, version: 2.3.1 }, family: { name: Chrome, version: 52 }, version: 2.3.1, type: 'app:chat' }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '10.12', nickname: Sierra } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) WhatsApp/2.2017.6 Chrome/76.0.3809.146 Electron/6.1.9 Safari/537.36' + result: { browser: { name: WhatsApp, using: { name: Electron, version: 6.1.9 }, family: { name: Chrome, version: 76 }, version: 2.2017.6, type: 'app:chat' }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + readable: 'WhatsApp 2.2017.6 on Windows 10' +- + headers: 'User-Agent: WhatsApp/2.19.360 A' + result: { browser: { name: WhatsApp, version: 2.19.360, type: 'app:chat' } } + readable: 'WhatsApp 2.19.360' - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Viber' readable: 'Viber on a LeEco Le 2 X526 running Android 6.0.1' From 21ee0d7524f6662bd4b36ee6409f20feb354db6f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 12:24:13 +0100 Subject: [PATCH 370/540] Resolve conflicts --- data/applications-others.php | 6 +++++- tests/data/mobile/app-chat.yaml | 24 ++++++++++++------------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/data/applications-others.php b/data/applications-others.php index 7bf1feb10..2ad17e630 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -71,11 +71,14 @@ Constants\BrowserType::APP_CHAT => [ [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FBAN\/MessengerForiOS/u' ], [ 'name' => 'Facebook Messenger', 'id' => 'messenger', 'regexp' =>'/FB_IAB\/MESSENGER/u' ], + [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK ([0-9.]*)/u' ], + [ 'name' => 'KakaoTalk', 'id' => 'kakao', 'regexp' => '/KAKAOTALK/u' ], [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], [ 'name' => 'Line', 'id' => 'line', 'regexp' => '/ Line\/([0-9.]*)/u' ], [ 'name' => 'Slack', 'id' => 'slack', 'regexp' => '/ Slack_SSB\/([0-9.]*)/u' ], [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/Viber\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], + [ 'name' => 'WhatsApp', 'id' => 'whatsapp', 'regexp' =>'/WhatsApp\/([0-9.]*)/u' ], [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], @@ -94,6 +97,7 @@ [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/TwitterAndroid/u' ], [ 'name' => 'Twitter', 'id' => 'twitter', 'regexp' =>'/Twitter for iPhone/u' ], [ 'name' => 'WordPress', 'id' => 'wp-android', 'regexp' =>'/wp-android\/([0-9.]*)/u' ], + [ 'name' => 'Yelp', 'id' => 'yelp', 'regexp' =>'/YelpApp\/([0-9.]*)/u' ], ], Constants\BrowserType::APP_OFFICE => [ @@ -146,4 +150,4 @@ [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] -]; +]; \ No newline at end of file diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 68c43f3bc..d9974113c 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -20,12 +20,12 @@ readable: 'Yahoo Messenger 1.8.4 on an Archos 79XE running Android 4.2.2' - headers: 'User-Agent: WhatsApp/2.11.164 Android/4_2_2 Device/samsung-GT-I9152' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.2.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Mega 5.8 Plus' } } - readable: 'WhatsApp 2.11 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' + result: { browser: { name: WhatsApp, version: 2.11.164, type: 'app:chat' }, os: { name: Android, version: 4.2.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Mega 5.8 Plus' } } + readable: 'WhatsApp 2.11.164 on a Samsung Galaxy Mega 5.8 Plus running Android 4.2.2' - headers: 'User-Agent: WhatsApp/2.11.139 Android/4.0.4 Device/HTC-HTC_Incredible_S' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: HTC, model: 'Incredible S' } } - readable: 'WhatsApp 2.11 on a HTC Incredible S running Android 4.0.4' + result: { browser: { name: WhatsApp, version: 2.11.139, type: 'app:chat' }, os: { name: Android, version: 4.0.4 }, device: { type: mobile, subtype: smart, manufacturer: HTC, model: 'Incredible S' } } + readable: 'WhatsApp 2.11.139 on a HTC Incredible S running Android 4.0.4' - headers: 'User-Agent: WhatsApp+/2.11.83 Android/4.1.2 Device/samsung-GT-S5310' result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Android, version: 4.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy Pocket Neo' } } @@ -36,20 +36,20 @@ readable: 'WhatsApp 2.11 on a Motorola DEFY+ running Android 4.0.4' - headers: 'User-Agent: WhatsApp/2.11.107 S60Version/3.1 Device/Nokia-E51-(02.1)' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } - readable: 'WhatsApp 2.11 on a Nokia E51 running Series60 3.1' + result: { browser: { name: WhatsApp, version: 2.11.107, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.1' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: E51 } } + readable: 'WhatsApp 2.11.107 on a Nokia E51 running Series60 3.1' - headers: 'User-Agent: WhatsApp/2.11.236 S60Version/3.2 Device/Nokia-6650-(02.01)' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } - readable: 'WhatsApp 2.11 on a Nokia 6650 running Series60 3.2' + result: { browser: { name: WhatsApp, version: 2.11.236, type: 'app:chat' }, os: { name: Series60, family: Symbian, version: '3.2' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: '6650' } } + readable: 'WhatsApp 2.11.236 on a Nokia 6650 running Series60 3.2' - headers: 'User-Agent: WhatsApp/2.11.356 WP7/7.10.8107 Device/SAMSUNG-GT-I8350-H23.15.0.8' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } - readable: 'WhatsApp 2.11 on a Samsung Omnia W running Windows Phone 7.10' + result: { browser: { name: WhatsApp, version: 2.11.356, type: 'app:chat' }, os: { name: 'Windows Phone', version: '7.10' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Omnia W' } } + readable: 'WhatsApp 2.11.356 on a Samsung Omnia W running Windows Phone 7.10' - headers: 'User-Agent: WhatsApp/2.11.282 WP7/8.0.10328.0 Device/NOKIA-RM-914_eu_euro2_341-H1.0.0.0' - result: { browser: { name: WhatsApp, version: '2.11', type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } - readable: 'WhatsApp 2.11 on a Nokia Lumia 520 running Windows Phone 8.0' + result: { browser: { name: WhatsApp, version: 2.11.282, type: 'app:chat' }, os: { name: 'Windows Phone', version: '8.0' }, device: { type: mobile, subtype: smart, manufacturer: Nokia, model: 'Lumia 520' } } + readable: 'WhatsApp 2.11.282 on a Nokia Lumia 520 running Windows Phone 8.0' - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 [FBAN/MessengerForiOS;FBAV/17.0.0.20.11;FBBV/5740516;FBDV/iPhone7,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.1.2;FBSS/3; FBCR/TelenorDK;FBID/phone;FBLC/da_DK;FBOP/5]' result: { browser: { name: 'Facebook Messenger', type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 6 Plus' } } From 2c9de895ce151c9162db03c8c4090cc29a7be6a5 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 13:18:08 +0100 Subject: [PATCH 371/540] Set new tests --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index d9974113c..a5f2ee485 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -103,6 +103,6 @@ result: { browser: { name: WhatsApp, version: 2.19.360, type: 'app:chat' } } readable: 'WhatsApp 2.19.360' - - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Viber' - readable: 'Viber on a LeEco Le 2 X526 running Android 6.0.1' + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' + readable: 'Viber 12.0.0.4 on a LeEco Le 2 X526 running Android 6.0.1' result: { browser: { name: Viber, family: { name: Chrome, version: 56 }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } From b3ad73c5ce6ca76296e7287841caa4c03676cc1d Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 13:55:40 +0100 Subject: [PATCH 372/540] Update test results --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index a5f2ee485..fcc7b0c87 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -104,5 +104,5 @@ readable: 'WhatsApp 2.19.360' - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' - readable: 'Viber 12.0.0.4 on a LeEco Le 2 X526 running Android 6.0.1' - result: { browser: { name: Viber, family: { name: Chrome, version: 56 }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } + readable: 'Viber 12.0.0.4 on a Samsung Galaxy S8 running Android 9' + result: { browser: { name: Viber, using: { name: 'Chromium WebView', version: '79' }, version: 12.0.0.4, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } From 3d01fe0321683f46a6f0d5641b54df1e8ccce300 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:10:35 +0100 Subject: [PATCH 373/540] Update applications-others.php --- data/applications-others.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/data/applications-others.php b/data/applications-others.php index 240756ce7..7cc40bd68 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -82,7 +82,6 @@ [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/Zalo\-win32\-([0-9.]*)/u' ], - [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/ Zalo\/([0-9.]*)/u' ], ], Constants\BrowserType::APP_SOCIAL => [ @@ -151,4 +150,4 @@ [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] -]; +]; \ No newline at end of file From 91f46307e4cd85d972f3d33dbef24cccabb3be94 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:11:01 +0100 Subject: [PATCH 374/540] Update applications-others.php --- data/applications-others.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-others.php b/data/applications-others.php index 7cc40bd68..3d885406e 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -150,4 +150,4 @@ [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] -]; \ No newline at end of file +]; From 7c0326ba4fd509a1bd9c7753a3940cad1f1d60c2 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:23:10 +0100 Subject: [PATCH 375/540] temp --- data/applications-others.php | 1 + tests/data/mobile/app-chat.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/data/applications-others.php b/data/applications-others.php index 3d885406e..240756ce7 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -82,6 +82,7 @@ [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/Zalo\-win32\-([0-9.]*)/u' ], + [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/ Zalo\/([0-9.]*)/u' ], ], Constants\BrowserType::APP_SOCIAL => [ diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 9c5a36df4..4fe18d8ca 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -106,3 +106,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 4.4.2;LG-F320S) AppleWebKit/537.36 (KHTML, like Gecko) Zalo/1.0 Safari/537.36' readable: 'Zalo 1.0 on a LG G2 running Android 4.4.2' result: { browser: { name: Zalo, version: '1.0', type: 'app:chat' }, engine: { name: Webkit, version: '537.36' }, os: { name: Android, version: 4.4.2 }, device: { type: mobile, subtype: smart, manufacturer: LG, model: G2 } } +- + headers: 'User-Agent: Zalo-win32-24v294' + readable: 'Zalo 1.0 on a LG G2 running Android 4.4.2' + result: { browser: { name: Zalo, version: '1.0', type: 'app:chat' }, engine: { name: Webkit, version: '537.36' }, os: { name: Android, version: 4.4.2 }, device: { type: mobile, subtype: smart, manufacturer: LG, model: G2 } } From a256b03df6a349c3deaf8855157af5512023fa0e Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:34:19 +0100 Subject: [PATCH 376/540] Updated test results --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 4fe18d8ca..f058b6a33 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -108,5 +108,5 @@ result: { browser: { name: Zalo, version: '1.0', type: 'app:chat' }, engine: { name: Webkit, version: '537.36' }, os: { name: Android, version: 4.4.2 }, device: { type: mobile, subtype: smart, manufacturer: LG, model: G2 } } - headers: 'User-Agent: Zalo-win32-24v294' - readable: 'Zalo 1.0 on a LG G2 running Android 4.4.2' - result: { browser: { name: Zalo, version: '1.0', type: 'app:chat' }, engine: { name: Webkit, version: '537.36' }, os: { name: Android, version: 4.4.2 }, device: { type: mobile, subtype: smart, manufacturer: LG, model: G2 } } + readable: 'Zalo 24' + result: { browser: { name: Zalo, version: '24', type: 'app:chat' } } From ea2edce19681cf5f47cd340ca4e340646e0363ee Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:43:57 +0100 Subject: [PATCH 377/540] Corrections --- data/applications-others.php | 1 + tests/data/mobile/app-chat.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/data/applications-others.php b/data/applications-others.php index 2ad17e630..4f1deb072 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -76,6 +76,7 @@ [ 'name' => 'Kik', 'id' => 'kik', 'regexp' =>'/Kik\/([0-9.]*?)(\.0)?\.[0-9]{3,4}/u' ], [ 'name' => 'Line', 'id' => 'line', 'regexp' => '/ Line\/([0-9.]*)/u' ], [ 'name' => 'Slack', 'id' => 'slack', 'regexp' => '/ Slack_SSB\/([0-9.]*)/u' ], + [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/ Viber/u' ], [ 'name' => 'Viber', 'id' => 'viber', 'regexp' => '/Viber\/([0-9.]*)/u' ], [ 'name' => 'WeChat', 'id' => 'messenger', 'regexp' =>'/MicroMessenger\/([0-9.]*)/u' ], [ 'name' => 'WhatsApp', 'id' => 'whatsapp', 'regexp' =>'/WhatsApp\/([0-9.]*)/u' ], diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index fcc7b0c87..9e43670f8 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -102,6 +102,10 @@ headers: 'User-Agent: WhatsApp/2.19.360 A' result: { browser: { name: WhatsApp, version: 2.19.360, type: 'app:chat' } } readable: 'WhatsApp 2.19.360' +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 6.0.1; Le X526 Build/IIXOSOP5801910121S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36 Viber' + readable: 'Viber on a LeEco Le 2 X526 running Android 6.0.1' + result: { browser: { name: Viber, family: { name: Chrome, version: 56 }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' readable: 'Viber 12.0.0.4 on a Samsung Galaxy S8 running Android 9' From 23b902b1e75ef4cbfc159e247f3a6425c0dbf2a4 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:46:24 +0100 Subject: [PATCH 378/540] add regex --- data/regexes/applications-others.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index ff6aa4b89..21a820646 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|viber|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; \ No newline at end of file From e48229b0815b2eda3cb636340055fcf72d5307b1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 14:47:10 +0100 Subject: [PATCH 379/540] tidy up --- data/applications-others.php | 2 +- data/regexes/applications-others.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/applications-others.php b/data/applications-others.php index 4f1deb072..35de00fab 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -151,4 +151,4 @@ [ 'name' => 'Leechcraft', 'id' => 'leechcraft', 'regexp' =>'/Leechcraft(?:\/([0-9.]*))?/u', 'details' => 2 ], [ 'name' => 'Lotus Expeditor', 'id' => 'expeditor', 'regexp' =>'/Gecko Expeditor ([0-9.]*)/u', 'details' => 3 ], ] -]; \ No newline at end of file +]; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index 21a820646..c8000539e 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|viber|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; \ No newline at end of file +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|viber|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; From d2e14d22e0d46e685cb4d1626e4e0241c879bf57 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 15:15:07 +0100 Subject: [PATCH 380/540] Update tests --- tests/data/mobile/app-chat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index 9e43670f8..a162961d7 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -108,5 +108,5 @@ result: { browser: { name: Viber, family: { name: Chrome, version: 56 }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' - readable: 'Viber 12.0.0.4 on a Samsung Galaxy S8 running Android 9' - result: { browser: { name: Viber, using: { name: 'Chromium WebView', version: '79' }, version: 12.0.0.4, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } + readable: 'Viber on a Samsung Galaxy S8 running Android 9' + result: { browser: { name: Viber, using: { name: 'Chromium WebView', version: '79' }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } From a1222132e4b351fb97e8656f234bbca05bfc7e3f Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 15:23:45 +0100 Subject: [PATCH 381/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index a162961d7..a3f0a3f87 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -110,3 +110,4 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' readable: 'Viber on a Samsung Galaxy S8 running Android 9' result: { browser: { name: Viber, using: { name: 'Chromium WebView', version: '79' }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } +x \ No newline at end of file From fbf9ecc22c5928d0adaf4d647c8fb76f3cdc4f88 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 15:23:56 +0100 Subject: [PATCH 382/540] Update app-chat.yaml --- tests/data/mobile/app-chat.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index a3f0a3f87..a162961d7 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -110,4 +110,3 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; SM-G950F Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.79 Mobile Safari/537.36 Viber/12.0.0.4' readable: 'Viber on a Samsung Galaxy S8 running Android 9' result: { browser: { name: Viber, using: { name: 'Chromium WebView', version: '79' }, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } -x \ No newline at end of file From 8abaeff15c02352d0d8d051b41d9a71ac607f7d1 Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 15:48:18 +0100 Subject: [PATCH 383/540] update test results --- tests/data/mobile/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 03f3b61d3..fb2810f33 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -112,5 +112,5 @@ readable: 'Ecosia Browser 4.0.10.813 on an Apple iPad running iOS 9.3.5' - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; FIG-LX3 Build/HUAWEIFIG-L23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.128 Mobile Safari/537.36 (Ecosia android@69.0.3497.128)' - result: { browser: { name: Ecosia Browser, version: 4.0.10.813, type: browser }, engine: { name: Webkit, version: 601.1.46 }, os: { name: iOS, version: 9.3.5 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } - readable: 'x' + result: { browser: { name: 'Ecosia Browser', family: { name: Chrome, version: 69 }, version: 69.0.3497.128, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: 'P Smart' } } + readable: 'Ecosia Browser 69.0.3497.128 on a Huawei P Smart running Android 9' From ffe2751f27491859851158a716c7a870903c875a Mon Sep 17 00:00:00 2001 From: Ayumi Hamasaki Date: Wed, 19 Aug 2020 18:29:50 +0100 Subject: [PATCH 384/540] update test results --- tests/data/desktop/browser-other.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 2d438297b..e775f0bdc 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -556,5 +556,5 @@ readable: 'SalamWeb 3.0.1.592 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2551.0 (SBRO; Salam Browser) Safari/537.36' - result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - readable: 'x' + result: { browser: { name: SalamWeb, family: { name: Chrome, version: 51 }, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + readable: 'SalamWeb on Windows 7' From 8d2bb32192c70e0b12a6e0ce97e13721384cea16 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 2 Dec 2020 22:57:29 +0000 Subject: [PATCH 385/540] Add Mac OS 11 (Big Sur) --- src/Analyser/Header/Useragent/Os.php | 4 ++-- tests/data/desktop/browser-chrome.yaml | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 343f9d1ce..e59b08ea7 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -98,11 +98,11 @@ private function detectDarwin($ua) elseif (preg_match('/Mac OS X/u', $ua) || preg_match('/;os=Mac/u', $ua)) { $this->data->os->name = 'OS X'; - if (preg_match('/Mac OS X (10[0-9\._]*)/u', $ua, $match)) { + if (preg_match('/Mac OS X (1[0-9][0-9\._]*)/u', $ua, $match)) { $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]), 'details' => 2 ]); } - if (preg_match('/;os=Mac (10[0-9[\.,]*)/u', $ua, $match)) { + if (preg_match('/;os=Mac (1[0-9][0-9[\.,]*)/u', $ua, $match)) { $this->data->os->version = new Version([ 'value' => str_replace(',', '.', $match[1]), 'details' => 2 ]); } diff --git a/tests/data/desktop/browser-chrome.yaml b/tests/data/desktop/browser-chrome.yaml index 71e1ad1c2..90c5b4375 100644 --- a/tests/data/desktop/browser-chrome.yaml +++ b/tests/data/desktop/browser-chrome.yaml @@ -62,3 +62,7 @@ headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.11 Safari/534.16' result: { browser: { name: Chrome, version: '10', type: browser }, engine: { name: Webkit, version: '534.16' }, os: { name: Linux }, device: { type: desktop } } readable: 'Chrome 10 on Linux' +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36' + result: { browser: { name: Chrome, version: 87.0.4280.67, type: browser }, engine: { name: Webkit, version: '537.36' }, os: { name: 'OS X', alias: 'Mac OS X', version: '11.0' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chrome 87.0.4280.67 on Mac OS X 11.0' From 0e1fcd2833d4ffb07620181b2606da82622a3cd6 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 12:01:40 +0100 Subject: [PATCH 386/540] Update indices --- data/regexes/applications-browsers.php | 2 +- data/regexes/applications-others.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index 4ffa37fb7..d243eb217 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|1stbrowser|7star|abrowse|acorn|acoo|amigo|aol|america|apus|arachne|arora|aweb|avant|asw|avg|aviator|avira|flyflow|bdbrowser|bdspark|basilisk|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|browzar|byffox|camino|canure|ccleaner|cent|charon|chedot|cheshire|chimlac|chimera|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coc|coolnovo|corom|crazy|crusta|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|diigo|dillo|doczilla|rhodonit|dplus|elements|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|icedove|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|kinza|kkman|klondike|kylo|meleon|lbrowser|lbbrowser|light|lobo|lolifox|lovense|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|nichrome|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|salam|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|www browser|epic|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mint|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|sputnik|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|1stbrowser|7star|abrowse|acorn|acoo|amigo|aol|america|apus|arachne|arora|aweb|avant|asw|avg|aviator|avira|flyflow|bdbrowser|bdspark|basilisk|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|browzar|byffox|camino|canure|ccleaner|cent|charon|chedot|cheshire|chimlac|chimera|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coc|coolnovo|corom|crazy|crusta|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|diigo|dillo|doczilla|rhodonit|dplus|elements|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|icedove|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|kinza|kkman|klondike|kylo|meleon|lbrowser|lbbrowser|light|lobo|lolifox|lovense|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|nichrome|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|salam|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|sputnik|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|ecosia|www browser|epic|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mint|mobicip|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/data/regexes/applications-others.php b/data/regexes/applications-others.php index c8000539e..483dcade1 100644 --- a/data/regexes/applications-others.php +++ b/data/regexes/applications-others.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|viber|whatsapp|wire|yammer|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; +Applications::$OTHERS_REGEX = '/(itunes|qt|bluefish|nightingale|songbird|stagefright|substream|vlc|windows-media|coreplayer|flycast|boxee|kodi|xbmc|lightning|thunderbird|outlook|lotus|postbox|bat|yahoo|daum|flipboard|akregator|blogos|cococ|feed|liferea|news|jetbrains|rss|reeder|reedkit|rome|ziepod|messenger|kakao|kik|line|slack|viber|whatsapp|wire|yammer|zalo|fbios|fb4a|googleplus|instagram|pinterest|weibo|tumblr|twitter|wp-android|yelp|office|bingweb|hao123|gsa|naver|sogousearch|yandex|atom|golive|brackets|iweb|frontpage|amaya|websphere|download|tansodl|origin|secondlife|valve|raptr|alipay|cooliris|google|leechcraft|expeditor)/i'; From 890f59278375c59ebd0f246e4b71bd274a9791c5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 12:20:14 +0100 Subject: [PATCH 387/540] Update test result --- tests/data/desktop/browser-chrome.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-chrome.yaml b/tests/data/desktop/browser-chrome.yaml index 90c5b4375..c802d489f 100644 --- a/tests/data/desktop/browser-chrome.yaml +++ b/tests/data/desktop/browser-chrome.yaml @@ -64,5 +64,5 @@ readable: 'Chrome 10 on Linux' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36' - result: { browser: { name: Chrome, version: 87.0.4280.67, type: browser }, engine: { name: Webkit, version: '537.36' }, os: { name: 'OS X', alias: 'Mac OS X', version: '11.0' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'Chrome 87.0.4280.67 on Mac OS X 11.0' + result: { browser: { name: Chrome, version: 87.0.4280.67, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chrome Dev 87.0.4280.67 on macOS Big Sur 11.0' From 88637b344d6f1f69de6a66c2502d73d98a9a8594 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:00:17 +0100 Subject: [PATCH 388/540] Add `Wappalyzer` to bots list (closing PR #616) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 3c3cac601..ea3557d56 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -239,6 +239,7 @@ [ 'name' => 'W3C Robot', 'id' => 'w3c', 'regexp' => '/W3CRobot\/([0-9.]*)/u' ], [ 'name' => 'W3C Unified Validator', 'id' => 'w3c', 'regexp' => '/W3C_Unicorn\/([0-9.]*)/u' ], [ 'name' => 'W3C Validator.nu', 'id' => 'validator', 'regexp' => '/Validator.nu\//u' ], + [ 'name' => 'Wappalyzer', 'id' => 'wappalyzer', 'regexp' => '/Wappalyzer/u' ], [ 'name' => 'Wayback Archive', 'id' => 'wayback', 'regexp' => '/waybackarchive.org\/([0-9.]*)/u' ], [ 'name' => 'WebbCrawler', 'id' => 'crawler', 'regexp' => '/WebbCrawler ([0-9.]*)/u' ], [ 'name' => 'WebIndexer', 'id' => 'webindexer', 'regexp' => '/WebIndexer\//u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index fa8685a44..fb815d85c 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e219a037e..630ec261b 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -586,3 +586,15 @@ headers: 'User-Agent: PocketParser/2.0 (+https://getpocket.com/pocketparser_ua)' readable: 'Pocket 2.0' result: { browser: { name: Pocket, version: '2.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Wappalyzer; https://www.wappalyzer.com)' + readable: 'Wappalyzer' + result: { browser: { name: Wappalyzer }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Wappalyzer)' + readable: 'Wappalyzer' + result: { browser: { name: Wappalyzer }, device: { type: bot } } +- + headers: 'User-Agent: Wappalyzer' + readable: 'Wappalyzer' + result: { browser: { name: Wappalyzer }, device: { type: bot } } \ No newline at end of file From 3412869fa2ff37fc87638635cac24888e4d7148f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:03:07 +0100 Subject: [PATCH 389/540] Add `BuiltWith` to bots list (Closing PR #615) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index ea3557d56..351f3350b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -53,6 +53,7 @@ [ 'name' => 'Browsershots', 'id' => 'browsershots', 'regexp' => '/Browsershots/u' ], [ 'name' => 'BUbiNG', 'id' => 'bubing', 'regexp' => '/BUbiNG/u' ], [ 'name' => 'Buck', 'id' => 'buck', 'regexp' => '/Buck\/([0-9.]*)/u' ], + [ 'name' => 'BuiltWith', 'id' => 'builtwith', 'regexp' => '/BuiltWith\/([0-9.]*)/u' ], [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], [ 'name' => 'Bytespider', 'id' => 'bytespider', 'regexp' => '/Bytespider/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index fb815d85c..cf93204f4 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 630ec261b..f3d5de6ed 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -597,4 +597,8 @@ - headers: 'User-Agent: Wappalyzer' readable: 'Wappalyzer' - result: { browser: { name: Wappalyzer }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Wappalyzer }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko; compatible; BuiltWith/1.0; +http://builtwith.com/biup) Chrome/74.0.3729.131 Safari/537.36' + readable: 'BuiltWith 1.0' + result: { browser: { name: BuiltWith, version: '1.0' }, device: { type: bot } } \ No newline at end of file From e15880b3624ebdc5403738891ac01227cd03d462 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:05:41 +0100 Subject: [PATCH 390/540] Add `TrustedSite Crawler` to bots list (closes PR #614) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 351f3350b..d3c93ba86 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -223,6 +223,7 @@ [ 'name' => 'Twitterbot', 'id' => 'twitter', 'regexp' => '/Twitterbot\/([0-9.]*)/u' ], [ 'name' => 'Tiny Tiny RSS', 'id' => 'tiny', 'regexp' => '/Tiny Tiny RSS\/([0-9.]*)/u' ], [ 'name' => 'TLSProber', 'id' => 'tlsprober', 'regexp' => '/TLSProber\/([0-9.]*)/u' ], + [ 'name' => 'TrustedSite', 'id' => 'trustedsite', 'regexp' => '/TrustedSite/u' ], [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat\.co OpenGraph Parser/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index cf93204f4..d1c8bd88f 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index f3d5de6ed..2abaf581d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -601,4 +601,8 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko; compatible; BuiltWith/1.0; +http://builtwith.com/biup) Chrome/74.0.3729.131 Safari/537.36' readable: 'BuiltWith 1.0' - result: { browser: { name: BuiltWith, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: BuiltWith, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: TrustedSite Crawler' + readable: 'TrustedSite' + result: { browser: { name: TrustedSite }, device: { type: bot } } \ No newline at end of file From 4facbc4f8f9b12387a477de936bc64ec51b4325b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:08:33 +0100 Subject: [PATCH 391/540] Add `SpazioDati` to bots list (closing PR #613) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index d3c93ba86..2c9a3355c 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -213,6 +213,7 @@ [ 'name' => 'Soso Web Spider', 'id' => 'soso', 'regexp' => '/Sosospider\/([0-9.]*)/u' ], [ 'name' => 'Soso Web Spider', 'id' => 'soso', 'regexp' => '/Sosospider/u' ], [ 'name' => 'Soso Image Spider', 'id' => 'soso', 'regexp' => '/Sosoimagespider/u' ], + [ 'name' => 'SpazioDati', 'id' => 'spaziodati', 'regexp' => '/spaziodati/u' ], [ 'name' => 'SPDYCheck', 'id' => 'spdycheck', 'regexp' => '/SPDYCheck SPDY Protocol Tester/iu' ], [ 'name' => 'Spinn3r', 'id' => 'spinn', 'regexp' => '/Spinn3r ([0-9.]*)/iu' ], [ 'name' => 'Spiderlytics', 'id' => 'spider', 'regexp' => '/Spiderlytics\/([0-9.]*)/iu' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index d1c8bd88f..324ccc1cf 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 2abaf581d..875e73e35 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -605,4 +605,8 @@ - headers: 'User-Agent: TrustedSite Crawler' readable: 'TrustedSite' - result: { browser: { name: TrustedSite }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: TrustedSite }, device: { type: bot } } +- + headers: 'User-Agent: IDG/UK (http://spaziodati.eu/)' + readable: 'SpazioDati' + result: { browser: { name: SpazioDati }, device: { type: bot } } \ No newline at end of file From 68fbaa02a51dde67ebefda54256a4027709ed866 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:27:43 +0100 Subject: [PATCH 392/540] Add `MxToolbox` to bots list (closing PR #612) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 2c9a3355c..7b00dc5e6 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -163,6 +163,7 @@ [ 'name' => 'Moz', 'id' => 'dotbot', 'regexp' => '/DotBot\/([0-9.]*)/i' ], [ 'name' => 'Moz', 'id' => 'rogerbot', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], + [ 'name' => 'MxToolbox', 'id' => 'mxtoolbox', 'regexp' => '/MxToolbox\/([a-zA-Z0-9.]*)/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/NetcraftSurveyAgent\/([0-9.]*)/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 324ccc1cf..8ba848f1f 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 875e73e35..979aefae5 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -609,4 +609,8 @@ - headers: 'User-Agent: IDG/UK (http://spaziodati.eu/)' readable: 'SpazioDati' - result: { browser: { name: SpazioDati }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: SpazioDati }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0+(compatible; MxToolbox/Beta7; http://www.mxtoolbox.com/)' + readable: 'MxToolbox 7' + result: { browser: { name: MxToolbox, version: 'Beta7' }, device: { type: bot } } \ No newline at end of file From bad3d4004e308ac5fd941a228f57abb507190ac9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:31:33 +0100 Subject: [PATCH 393/540] Add `Common Crawl Research Bot` to bots list (closes PR #611) --- data/applications-bots.php | 3 ++- data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 14 +++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 7b00dc5e6..19012faac 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -61,7 +61,8 @@ [ 'name' => 'Cloudflare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], [ 'name' => 'Comodo', 'id' => 'comodo', 'regexp' => '/Comodo Spider ([0-9.]*)/u' ], [ 'name' => 'CommaFeed', 'id' => 'commafeed', 'regexp' => '/CommaFeed\/([0-9.]*)/u' ], - [ 'name' => 'CommonCrawl', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], + [ 'name' => 'Common Crawl Bot', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], + [ 'name' => 'Common Crawl Research Bot', 'id' => 'cresearch', 'regexp' => '/CCResearchBot\/([0-9.]*)/u' ], [ 'name' => 'Data Hotel Watchdog', 'id' => 'watchdog', 'regexp' => '/Data-Hotel-Watchdog\/([0-9.]*)/u' ], [ 'name' => 'DataparkSearch', 'id' => 'datasearch', 'regexp' => '/DataparkSearch\/([0-9.]*)/u' ], [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 8ba848f1f..a23fab1e6 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 979aefae5..7f943eccf 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -90,10 +90,6 @@ headers: 'User-Agent: Browsershots' result: { browser: { name: Browsershots }, device: { type: bot } } readable: Browsershots -- - headers: 'User-Agent: CCBot/2.0 (http://commoncrawl.org/faq/)' - result: { browser: { name: CommonCrawl, version: '2.0' }, device: { type: bot } } - readable: 'CommonCrawl 2.0' - headers: 'User-Agent: Cliqzbot/0.1 (+http://cliqz.com/company/cliqzbot)' result: { browser: { name: Cliqzbot, version: '0.1' }, device: { type: bot } } @@ -613,4 +609,12 @@ - headers: 'User-Agent: Mozilla/5.0+(compatible; MxToolbox/Beta7; http://www.mxtoolbox.com/)' readable: 'MxToolbox 7' - result: { browser: { name: MxToolbox, version: 'Beta7' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: MxToolbox, version: 'Beta7' }, device: { type: bot } } +- + headers: 'User-Agent: CCBot/2.0 (http://commoncrawl.org/faq/)' + readable: 'Common Crawl Bot 2.0' + result: { browser: { name: 'Common Crawl Bot', version: '2.0' }, device: { type: bot } } +- + headers: 'User-Agent: CCResearchBot/1.0 commoncrawl.org/research//Nutch-1.7-SNAPSHOT' + readable: 'Common Crawl Research Bot 1.0' + result: { browser: { name: 'Common Crawl Research Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From 4268a34d1a7bd60c3de26a6e431f962798944f82 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:33:29 +0100 Subject: [PATCH 394/540] Add `Reddit Bot` to bots list (closing PR #610) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 19012faac..7a06d52db 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -189,6 +189,7 @@ [ 'name' => 'PowerMapper', 'id' => 'crawler', 'regexp' => '/CrawlerProcess \(http:\/\/www\.PowerMapper\.com\) \/([0-9.]*)/u' ], [ 'name' => 'Radian 6', 'id' => 'feed', 'regexp' => '/R6_FeedFetcher/u' ], [ 'name' => 'Radian 6', 'id' => 'comment', 'regexp' => '/R6_CommentReader/u' ], + [ 'name' => 'Reddit Bot', 'id' => 'reddit', 'regexp' => '/redditbot\/([0-9.]*)/u' ], [ 'name' => 'RssBar', 'id' => 'rssbar', 'regexp' => '/RssBar\/([0-9.]*)/u' ], [ 'name' => 'ROI Hunter', 'id' => 'hunter', 'regexp' => '/ROI Hunter/u' ], [ 'name' => 'QuerySeekerSpider', 'id' => 'spider', 'regexp' => '/QuerySeekerSpider(?:\/([0-9.]*))?/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index a23fab1e6..a510409ab 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 7f943eccf..8a1454c8a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -617,4 +617,8 @@ - headers: 'User-Agent: CCResearchBot/1.0 commoncrawl.org/research//Nutch-1.7-SNAPSHOT' readable: 'Common Crawl Research Bot 1.0' - result: { browser: { name: 'Common Crawl Research Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Common Crawl Research Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; redditbot/1.0; +http://www.reddit.com/feedback)' + readable: 'Reddit Bot 1.0' + result: { browser: { name: 'Reddit Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From 6075f7d629c5d08037e892a05cfe95369664ec78 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:36:03 +0100 Subject: [PATCH 395/540] Update `Netcraft Bots` with more regex (closing PR #608) --- data/applications-bots.php | 6 ++++-- tests/data/bots/generic.yaml | 30 +++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 7a06d52db..46dd84a36 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -165,8 +165,10 @@ [ 'name' => 'Moz', 'id' => 'rogerbot', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], [ 'name' => 'Naver Yeti', 'id' => 'yeti', 'regexp' => '/Yeti\/([0-9.]*)/u' ], [ 'name' => 'MxToolbox', 'id' => 'mxtoolbox', 'regexp' => '/MxToolbox\/([a-zA-Z0-9.]*)/u' ], - [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], - [ 'name' => 'Netcraft Survey Bot', 'id' => 'netcraft', 'regexp' => '/NetcraftSurveyAgent\/([0-9.]*)/u' ], + [ 'name' => 'Netcraft Survey Agent Bot', 'id' => 'netcraft', 'regexp' => '/NetcraftSurveyAgent\/([0-9.]*)/u' ], + [ 'name' => 'Netcraft Web Server Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], + [ 'name' => 'Netcraft SSL Server Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft SSL Server Survey/u' ], + [ 'name' => 'Netcraft Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft/iu' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Favicon Fetcher/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Feed Fetcher/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 8a1454c8a..7acca9b50 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -538,10 +538,6 @@ headers: 'User-Agent: Buck/2.2; (+https://app.hypefactors.com/media-monitoring/about.html)' readable: 'Buck 2.2' result: { browser: { name: Buck, version: '2.2' }, device: { type: bot } } -- - headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' - readable: 'Netcraft Survey Bot 1.0' - result: { browser: { name: 'Netcraft Survey Bot', version: '1.0' }, device: { type: bot } } - headers: 'User-Agent: DomainCrawler/3.0 (info@domaincrawler.com; http://www.domaincrawler.com/example.com)' readable: 'DomainCrawler 3.0' @@ -621,4 +617,28 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; redditbot/1.0; +http://www.reddit.com/feedback)' readable: 'Reddit Bot 1.0' - result: { browser: { name: 'Reddit Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Reddit Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; Netcraft Web Server Survey)' + readable: 'Netcraft Web Server Survey Bot' + result: { browser: { name: 'Netcraft Web Server Survey Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)' + readable: 'Netcraft Survey Agent Bot 1.0' + result: { browser: { name: 'Netcraft Survey Agent Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: NETCRAFT' + readable: 'Netcraft Bot' + result: { browser: { name: 'Netcraft Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Netcraft SSL Server Survey - contact info@netcraft.com)' + readable: 'Netcraft SSL Server Survey Bot' + result: { browser: { name: 'Netcraft SSL Server Survey Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Netcraft SSL Server Survey - contact info@netcraft.com' + readable: 'Netcraft SSL Server Survey Bot' + result: { browser: { name: 'Netcraft SSL Server Survey Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Netcraft SSL Server Survey' + readable: 'Netcraft SSL Server Survey Bot' + result: { browser: { name: 'Netcraft SSL Server Survey Bot' }, device: { type: bot } } \ No newline at end of file From 45bd12e780708ab5775b2991b856b0de16fd7d2e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:40:22 +0100 Subject: [PATCH 396/540] Add `Embed PHP Library` to bots list (closes PR #607) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 46dd84a36..d8d6425b7 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -71,6 +71,7 @@ [ 'name' => 'DomainCrawler', 'id' => 'domaincrawl', 'regexp' => '/DomainCrawler\/([0-9.]*)/u' ], [ 'name' => 'Discord', 'id' => 'discord', 'regexp' => '/Discordbot\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], + [ 'name' => 'Embed PHP Library', 'id' => 'embed', 'regexp' => '/Embed PHP library/iu' ], [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], [ 'name' => 'Ezooms Crawler', 'id' => 'ezooms', 'regexp' => '/Ezooms\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index a510409ab..60db08241 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 7acca9b50..578b79df6 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -641,4 +641,8 @@ - headers: 'User-Agent: Netcraft SSL Server Survey' readable: 'Netcraft SSL Server Survey Bot' - result: { browser: { name: 'Netcraft SSL Server Survey Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Netcraft SSL Server Survey Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Embed PHP library' + readable: 'Embed PHP Library' + result: { browser: { name: 'Embed PHP Library' }, device: { type: bot } } \ No newline at end of file From 7a492d21626d3fb7d9d625c8f56dea6fd8acb649 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:50:27 +0100 Subject: [PATCH 397/540] Add `Blex Bot` to bots list (closes PR #606) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index d8d6425b7..aff2c3d61 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -42,6 +42,8 @@ [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/MSNBOT_Mobile/u' ], [ 'name' => 'Bing', 'id' => 'msmobot', 'regexp' => '/MSMOBOT/u' ], [ 'name' => 'Bing Preview', 'id' => 'bing', 'regexp' => '/BingPreview\/([0-9.]*)/u' ], + [ 'name' => 'Blex Bot', 'id' => 'blex', 'regexp' => '/BLEXBot\/([0-9.]*)/u' ], + [ 'name' => 'Blex Test Bot', 'id' => 'blex', 'regexp' => '/BLEXBotTest\/([0-9.]*)/u' ], [ 'name' => 'BlogBridge', 'id' => 'blogbridge', 'regexp' => '/BlogBridge ([0-9.]*)/u' ], [ 'name' => 'Bloglines', 'id' => 'bloglines', 'regexp' => '/Bloglines\/([0-9.]*)/u' ], [ 'name' => 'Bloglovin', 'id' => 'bloglovin', 'regexp' => '/Bloglovin\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 60db08241..923b7aa15 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 578b79df6..2bc289688 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -645,4 +645,12 @@ - headers: 'User-Agent: Embed PHP library' readable: 'Embed PHP Library' - result: { browser: { name: 'Embed PHP Library' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Embed PHP Library' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; BLEXBot/1.0; +http://webmeup-crawler.com/)' + readable: 'Blex Bot 1.0' + result: { browser: { name: 'Blex Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; BLEXBotTest/1.0; +http://webmeup.com/crawler.html)' + readable: 'Blex Test Bot 1.0' + result: { browser: { name: 'Blex Test Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From 06d164bddfe4fb6aca2fdf64ad82bf7bc7ccfba5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:53:13 +0100 Subject: [PATCH 398/540] Add `Domain Stats Bot` to bots list (closes PR #605) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index aff2c3d61..403887d8d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -71,6 +71,7 @@ [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], [ 'name' => 'DomainCrawler', 'id' => 'domaincrawl', 'regexp' => '/DomainCrawler\/([0-9.]*)/u' ], + [ 'name' => 'Domain Stats Bot', 'id' => 'domainstats', 'regexp' => '/DomainStatsBot\/([0-9.]*)/u' ], [ 'name' => 'Discord', 'id' => 'discord', 'regexp' => '/Discordbot\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], [ 'name' => 'Embed PHP Library', 'id' => 'embed', 'regexp' => '/Embed PHP library/iu' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 923b7aa15..918f08b9d 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 2bc289688..9e7f33853 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -653,4 +653,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; BLEXBotTest/1.0; +http://webmeup.com/crawler.html)' readable: 'Blex Test Bot 1.0' - result: { browser: { name: 'Blex Test Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Blex Test Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: DomainStatsBot/1.0 (https://domainstats.com/pages/our-bot)' + readable: 'Domain Stats Bot 1.0' + result: { browser: { name: 'Domain Stats Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From dbe1ed4b16536cfab120947a0e14ea4ee63e8c09 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:55:19 +0100 Subject: [PATCH 399/540] Add `SEOkicks Bot` to bots list (closing PR #604) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 403887d8d..af2e6ee6a 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -204,6 +204,7 @@ [ 'name' => 'Scrapy', 'id' => 'scrapy', 'regexp' => '/Scrapy\/([0-9.]*)/u' ], [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], [ 'name' => 'Semrush', 'id' => 'semrush', 'regexp' => '/SemrushBot\/([0-9.]*)/u' ], + [ 'name' => 'SEOkicks Bot', 'id' => 'seokicks', 'regexp' => '/SEOkicks/u' ], [ 'name' => 'Server Density', 'id' => 'monitor', 'regexp' => '/Server Density Service Monitoring/u' ], [ 'name' => 'Seznam bot', 'id' => 'seznam', 'regexp' => '/SeznamBot|SklikBot|Seznam screenshot-generator/u' ], [ 'name' => 'Seznam Email Proxy', 'id' => 'seznam', 'regexp' => '/SeznamEmailProxy/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 918f08b9d..ee53df05c 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 9e7f33853..4a7e73fb8 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -657,4 +657,8 @@ - headers: 'User-Agent: DomainStatsBot/1.0 (https://domainstats.com/pages/our-bot)' readable: 'Domain Stats Bot 1.0' - result: { browser: { name: 'Domain Stats Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Domain Stats Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)' + readable: 'SEOkicks Bot' + result: { browser: { name: 'SEOkicks Bot' }, device: { type: bot } } \ No newline at end of file From 3b064c67f95c2288212012625d02607913c0d9c4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 13:57:10 +0100 Subject: [PATCH 400/540] Add `Mega Index Bot` to bots list (closes PR #603) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index af2e6ee6a..39b99d89d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -161,6 +161,7 @@ [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], + [ 'name' => 'Mega Index Bot', 'id' => 'megaindex', 'regexp' => '/MegaIndex\.ru\/([0-9.]*)/u' ], [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index ee53df05c..023438894 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 4a7e73fb8..f73a46d36 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -661,4 +661,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)' readable: 'SEOkicks Bot' - result: { browser: { name: 'SEOkicks Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'SEOkicks Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler)' + readable: 'Mega Index Bot 2.0' + result: { browser: { name: 'Mega Index Bot', version: '2.0' }, device: { type: bot } } \ No newline at end of file From 39b16d6160fb2909956bf157cd4a276fe3c08302 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:00:36 +0100 Subject: [PATCH 401/540] Add `Linkpad Bot` to bots list (closes PR #602) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 39b99d89d..a4d980ef3 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -153,6 +153,7 @@ [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], + [ 'name' => 'Linkpad Bot', 'id' => 'linkpad', 'regexp' => '/LinkpadBot\/([0-9.]*)/u' ], [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdexbot-mobile\/([0-9.]*)/u' ], [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdex.com\/v([0-9.]*)/u' ], [ 'name' => 'Livedoor', 'id' => 'livedoor', 'regexp' => '/livedoor/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 023438894..f7d871fd0 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index f73a46d36..f890608a8 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -665,4 +665,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +http://megaindex.com/crawler)' readable: 'Mega Index Bot 2.0' - result: { browser: { name: 'Mega Index Bot', version: '2.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Mega Index Bot', version: '2.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; LinkpadBot/2.3; +http://linkpad.org/robot/)' + readable: 'Linkpad Bot 2.3' + result: { browser: { name: 'Linkpad Bot', version: '2.3' }, device: { type: bot } } \ No newline at end of file From 46abb46c549228a6764c831903dde63236b84bf5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:02:46 +0100 Subject: [PATCH 402/540] Add `SearchAtlas` to bots list (closes PR #601) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index a4d980ef3..782c25d4e 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -205,6 +205,7 @@ [ 'name' => 'SafeSearch Microdata', 'id' => 'safesearch', 'regexp' => '/SafeSearch microdata crawler/u' ], [ 'name' => 'Scrapy', 'id' => 'scrapy', 'regexp' => '/Scrapy\/([0-9.]*)/u' ], [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], + [ 'name' => 'Search Atlas Bot', 'id' => 'searchatlas', 'regexp' => '/SearchAtlas/iu' ], [ 'name' => 'Semrush', 'id' => 'semrush', 'regexp' => '/SemrushBot\/([0-9.]*)/u' ], [ 'name' => 'SEOkicks Bot', 'id' => 'seokicks', 'regexp' => '/SEOkicks/u' ], [ 'name' => 'Server Density', 'id' => 'monitor', 'regexp' => '/Server Density Service Monitoring/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index f7d871fd0..196ef8f9f 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index f890608a8..17fd94b8f 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -669,4 +669,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; LinkpadBot/2.3; +http://linkpad.org/robot/)' readable: 'Linkpad Bot 2.3' - result: { browser: { name: 'Linkpad Bot', version: '2.3' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Linkpad Bot', version: '2.3' }, device: { type: bot } } +- + headers: 'User-Agent: SearchAtlas.com SEO Crawler' + readable: 'Search Atlas Bot' + result: { browser: { name: 'Search Atlas Bot' }, device: { type: bot } } \ No newline at end of file From 00db48cf469f88a7a19256f5498eaa92396bd0aa Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:05:06 +0100 Subject: [PATCH 403/540] Add `Dataprovider` to bots list (closes PR #600) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 782c25d4e..7eb61eb70 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -67,6 +67,7 @@ [ 'name' => 'Common Crawl Research Bot', 'id' => 'cresearch', 'regexp' => '/CCResearchBot\/([0-9.]*)/u' ], [ 'name' => 'Data Hotel Watchdog', 'id' => 'watchdog', 'regexp' => '/Data-Hotel-Watchdog\/([0-9.]*)/u' ], [ 'name' => 'DataparkSearch', 'id' => 'datasearch', 'regexp' => '/DataparkSearch\/([0-9.]*)/u' ], + [ 'name' => 'Dataprovider Bot', 'id' => 'dataprovider', 'regexp' => '/Dataprovider/u' ], [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 196ef8f9f..f6032c86c 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 17fd94b8f..c461bf944 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -673,4 +673,8 @@ - headers: 'User-Agent: SearchAtlas.com SEO Crawler' readable: 'Search Atlas Bot' - result: { browser: { name: 'Search Atlas Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Search Atlas Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Dataprovider.com)' + readable: 'Dataprovider Bot' + result: { browser: { name: 'Dataprovider Bot' }, device: { type: bot } } \ No newline at end of file From 63730e53d0e328787dbcbb96f1bae0a3370713a8 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:08:15 +0100 Subject: [PATCH 404/540] Add missing `Ahrefs` regex to bots list (closes PR #599) --- data/applications-bots.php | 7 ++++-- data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 38 ++++++++++++++++++++++++++---- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 7eb61eb70..017463180 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -12,8 +12,11 @@ [ 'name' => 'Adaxas', 'id' => 'adaxas', 'regexp' => '/Adaxas Spider/u' ], [ 'name' => 'AddThis.com', 'id' => 'addthis', 'regexp' => '/AddThis.com/u' ], [ 'name' => 'ADmantX', 'id' => 'admantx', 'regexp' => '/ADmantX Platform Semantic Analyzer/u' ], - [ 'name' => 'AhrefsBot', 'id' => 'ahrefsbot', 'regexp' => '/AhrefsBot.Feeds v([0-9.]*)/u' ], - [ 'name' => 'AhrefsBot', 'id' => 'ahrefsbot', 'regexp' => '/AhrefsBot\/([0-9.]*)/u' ], + [ 'name' => 'Ahrefs Feeds Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\.Feeds v([0-9.]*)/u' ], + [ 'name' => 'Ahrefs Site Audit Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsSiteAudit\/([0-9.]*)/u' ], + [ 'name' => 'Ahrefs News Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)\; News/u' ], + [ 'name' => 'Ahrefs SA Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)\; SA/u' ], + [ 'name' => 'Ahrefs Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)/u' ], [ 'name' => 'Alexa', 'id' => 'archiver', 'regexp' => '/ia_archiver/u' ], [ 'name' => 'AltaVista', 'id' => 'altavista', 'regexp' => '/AltaVista Intranet V([0-9.]*)/u' ], [ 'name' => 'Analytics SEO', 'id' => 'curious', 'regexp' => '/Curious George - www.analyticsseo.com\/crawler/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index f6032c86c..921b826ef 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefsbot|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index c461bf944..5ac012ded 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -46,10 +46,6 @@ headers: 'User-Agent: AdsBot-Google-Mobile (+http://www.google.com/mobile/adsbot.html) Mozilla (iPhone; U; CPU iPhone OS 3 0 like Mac OS X) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36' result: { browser: { name: 'Google Ads Bot' }, device: { type: bot } } readable: 'Google Ads Bot' -- - headers: 'User-Agent: AhrefsBot.Feeds v0.1; http://ahrefs.com/' - result: { browser: { name: AhrefsBot, version: '0.1' }, device: { type: bot } } - readable: 'AhrefsBot 0.1' - headers: 'User-Agent: AmorankSpider/0.1; +http://amorank.com/webcrawler.html' result: { browser: { name: 'Amorank Spider', version: '0.1' }, device: { type: bot } } @@ -677,4 +673,36 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Dataprovider.com)' readable: 'Dataprovider Bot' - result: { browser: { name: 'Dataprovider Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Dataprovider Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)' + readable: 'Ahrefs Bot 7.0' + result: { browser: { name: 'Ahrefs Bot', version: '7.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/6.1; +http://ahrefs.com/robot/)' + readable: 'Ahrefs Bot 6.1' + result: { browser: { name: 'Ahrefs Bot', version: '6.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/2.0; +http://ahrefs.com/robot/)' + readable: 'Ahrefs Bot 2.0' + result: { browser: { name: 'Ahrefs Bot', version: '2.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/7.0; News; +http://ahrefs.com/robot/)' + readable: 'Ahrefs News Bot 7.0' + result: { browser: { name: 'Ahrefs News Bot', version: '7.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/5.2; News; +http://ahrefs.com/robot/)' + readable: 'Ahrefs News Bot 5.2' + result: { browser: { name: 'Ahrefs News Bot', version: '5.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsBot/7.0; SA; +http://ahrefs.com/robot/)' + readable: 'Ahrefs SA Bot 7.0' + result: { browser: { name: 'Ahrefs SA Bot', version: '7.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; AhrefsSiteAudit/6.1; +http://ahrefs.com/robot/)' + readable: 'Ahrefs Site Audit Bot 6.1' + result: { browser: { name: 'Ahrefs Site Audit Bot', version: '6.1' }, device: { type: bot } } +- + headers: 'User-Agent: AhrefsBot.Feeds v0.1; http://ahrefs.com/' + readable: 'Ahrefs Feeds Bot 0.1' + result: { browser: { name: 'Ahrefs Feeds Bot', version: '0.1' }, device: { type: bot } } \ No newline at end of file From a0e8c9eee8f83385ae0274aed857bf0c5ac00f16 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:14:53 +0100 Subject: [PATCH 405/540] Add `Serp Stat` to bots list (closes PR #598) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 017463180..747830536 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -211,6 +211,7 @@ [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], [ 'name' => 'Search Atlas Bot', 'id' => 'searchatlas', 'regexp' => '/SearchAtlas/iu' ], [ 'name' => 'Semrush', 'id' => 'semrush', 'regexp' => '/SemrushBot\/([0-9.]*)/u' ], + [ 'name' => 'Serp Stat', 'id' => 'serpstat', 'regexp' => '/serpstatbot\/([0-9.]*)/u' ], [ 'name' => 'SEOkicks Bot', 'id' => 'seokicks', 'regexp' => '/SEOkicks/u' ], [ 'name' => 'Server Density', 'id' => 'monitor', 'regexp' => '/Server Density Service Monitoring/u' ], [ 'name' => 'Seznam bot', 'id' => 'seznam', 'regexp' => '/SeznamBot|SklikBot|Seznam screenshot-generator/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 921b826ef..bfc4f76dd 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 5ac012ded..7fa03991d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -705,4 +705,8 @@ - headers: 'User-Agent: AhrefsBot.Feeds v0.1; http://ahrefs.com/' readable: 'Ahrefs Feeds Bot 0.1' - result: { browser: { name: 'Ahrefs Feeds Bot', version: '0.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Ahrefs Feeds Bot', version: '0.1' }, device: { type: bot } } +- + headers: 'User-Agent: serpstatbot/1.0 (advanced backlink tracking bot; curl/7.58.0; http://serpstatbot.com/; abuse@serpstatbot.com)' + readable: 'Serp Stat 1.0' + result: { browser: { name: 'Serp Stat', version: '1.0' }, device: { type: bot } } \ No newline at end of file From 51bd39de19d23861e0524bb2ad5b0baf023c6bdd Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:20:30 +0100 Subject: [PATCH 406/540] Add `Majestic MJ12 Bot` a very common seo bot (closes PR #597) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 747830536..888856b62 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -163,6 +163,8 @@ [ 'name' => 'Livedoor', 'id' => 'livedoor', 'regexp' => '/livedoor/u' ], [ 'name' => 'LTX71', 'id' => 'ltx71', 'regexp' => '/ltx71/u' ], [ 'name' => 'Magpie RSS', 'id' => 'magpie', 'regexp' => '/MagpieRSS\/([0-9.]*)/u' ], + [ 'name' => 'Majestic MJ12 Bot', 'id' => 'mj12bot', 'regexp' => '/MJ12bot\/v([0-9.]*)/u' ], + [ 'name' => 'Majestic MJ12 Bot', 'id' => 'mj12bot', 'regexp' => '/mj12bot/u' ], [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index bfc4f76dd..979c40583 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 7fa03991d..2d82610e2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -709,4 +709,12 @@ - headers: 'User-Agent: serpstatbot/1.0 (advanced backlink tracking bot; curl/7.58.0; http://serpstatbot.com/; abuse@serpstatbot.com)' readable: 'Serp Stat 1.0' - result: { browser: { name: 'Serp Stat', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Serp Stat', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)' + readable: 'Majestic MJ12 Bot 1.4.8' + result: { browser: { name: 'Majestic MJ12 Bot', version: '1.4.8' }, device: { type: bot } } +- + headers: 'User-Agent: mj12bot' + readable: 'Majestic MJ12 Bot' + result: { browser: { name: 'Majestic MJ12 Bot' }, device: { type: bot } } \ No newline at end of file From 460636bd7a6db61ef0322e84cd4bd4284b3d8396 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:27:59 +0100 Subject: [PATCH 407/540] Add `Zombie.js` headless browser (closes PR #617) --- data/applications-browsers.php | 1 + data/regexes/applications-browsers.php | 2 +- tests/data/desktop/browser-other.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index c672309da..5619bf561 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -202,6 +202,7 @@ [ 'name' => 'Yandex Browser', 'id' => 'yabrowser', 'regexp' =>'/YaBrowser\/([0-9.]*)/u', 'details' => 2 ], [ 'name' => 'Zvu Browser', 'id' => 'zvu', 'regexp' => '/ Zvu\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://zvu.com/ [ 'name' => 'ZipZap', 'id' => 'zipzap', 'regexp' =>'/ZipZap ([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.zipzaphome.com/ + [ 'name' => 'Zombie.js', 'id' => 'zombie', 'regexp' =>'/Zombie\.js\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://zombie.js.org/ /* Mobile browsers */ [ 'name' => '1Browser', 'id' => '1password', 'regexp' =>'/1Password\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-browsers.php b/data/regexes/applications-browsers.php index d243eb217..4f134caee 100644 --- a/data/regexes/applications-browsers.php +++ b/data/regexes/applications-browsers.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|1stbrowser|7star|abrowse|acorn|acoo|amigo|aol|america|apus|arachne|arora|aweb|avant|asw|avg|aviator|avira|flyflow|bdbrowser|bdspark|basilisk|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|browzar|byffox|camino|canure|ccleaner|cent|charon|chedot|cheshire|chimlac|chimera|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coc|coolnovo|corom|crazy|crusta|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|diigo|dillo|doczilla|rhodonit|dplus|elements|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|icedove|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|kinza|kkman|klondike|kylo|meleon|lbrowser|lbbrowser|light|lobo|lolifox|lovense|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|nichrome|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|salam|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|sputnik|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|ecosia|www browser|epic|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mint|mobicip|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; +Applications::$BROWSERS_REGEX = '/(115|126|2345|37abc|qihu|1stbrowser|7star|abrowse|acorn|acoo|amigo|aol|america|apus|arachne|arora|aweb|avant|asw|avg|aviator|avira|flyflow|bdbrowser|bdspark|basilisk|beamrise|beonex|blackwren|blackhawk|bolt|blackbird|brave|brisk|browsex|browzar|byffox|camino|canure|ccleaner|cent|charon|chedot|cheshire|chimlac|chimera|chromeplus|colibri|columbus|cometbird|comodo|dragon|conkeror|coc|coolnovo|corom|crazy|crusta|cunaguaro|cyberdog|cyberfox|daedalus|degan|demeter|deskbrowse|diigo|dillo|doczilla|rhodonit|dplus|elements|eudoraweb|falkon|flamesky|flock|framafox|freeu|galeon|globalmojo|epiphany|greenbrowser|hola|hydra|ibrowse|icab|iceape|icecat|icedove|iceweasel|irider|iridium|iron|kapiko|kazehakase|kchrome|kinza|kkman|klondike|kylo|meleon|lbrowser|lbbrowser|light|lobo|lolifox|lovense|lunascape|naenara|netcaptor|madfox|mxbrowser|min|mini|mixshark|mlbrowser|mypal|multixp|netpositive|nichrome|origyn|owb|live|juzi|orca|oregano|otter|palemoon|patriott|perk|polarity|privacy|qiyu|qtweb|quicklook|qupzilla|qute|rekonq|ryouko|sylera|saayaa|salam|shiira|sielo|sitekiosk|sleipnir|slimjet|metasr|sparrow|sputnik|stainless|station|sunchrome|sundance|sundial|superbird|swiftweasel|swiftfox|swing|to-browser|tencent|tenfourfox|theworld|tulip|tungsten|ultrab|usejump|vimprobable|vivaldi|airwatch|vonkeror|voyager|waterfox|whale|winwap|xvast|yabrowser|zvu|zipzap|zombie|1password|3g explorer|4g explorer|aloha|atomiclite|au|awakening|baidu|bdmobile|bidu|baiduboxapp|browser|blazer|acheetahi|cornowser|coolmarket|cute|digia|doris|doroty|ecosia|www browser|epic|eui|go\.web|helium|heytap|huohoubrowser|surfboard|isurf|jig browser|jumanji|tnsbrowser|kiosk|kiwi|lebrowser|liebao|macross|mammoth|mcent|mint|mobicip|mib|cmcs|motorola|multizilla|netfrontlife|onebrowser|oneplus|plink|polaris|pure|openwave|up|km|oppo|quark|realme|semc|stnc|sogou|symphony|tenta|ucpro|vivo|weblite|wk|yaani|alti|aplix|awox|browserserver|isis|netbox|spyglass|oregan|viera|zetakey|bunjalloo|nwf|nuanti|wib|prince|demobrowser|dooble|dwb|evm|fireweb|hive|intermec|phantom|qt|roccat|raven|rockmelt|scope|slim|smbrowser|snowshoe|surf|tao|taz|uzbl|villanova|vimb|wada|wavelink|webrender|webster|wyzo|yelang|yrcweb|linemode|lynx|links|w3m|nimbus|Webwasher|sankore|adapi|brightsign|coship)/i'; diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 18b0d4daf..201864b5a 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -562,3 +562,7 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2551.0 (SBRO; Salam Browser) Safari/537.36' result: { browser: { name: SalamWeb, family: { name: Chrome, version: 51 }, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb on Windows 7' +- + headers: 'User-Agent: Mozilla/5.0 Chrome/10.0.613.0 Safari/534.15 Zombie.js/5.0.7' + result: { browser: { name: Zombie.js, family: { name: Chrome, version: 10 }, version: 5.0.7, type: browser }, device: { type: desktop } } + readable: 'Zombie.js 5.0.7' \ No newline at end of file From 1159cce42dc62c0554c3490ce017170247150631 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:31:43 +0100 Subject: [PATCH 408/540] Add `Apple Bot` to bots list (closes PR #584) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 14 +++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 888856b62..213a5e1ad 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -22,6 +22,8 @@ [ 'name' => 'Analytics SEO', 'id' => 'curious', 'regexp' => '/Curious George - www.analyticsseo.com\/crawler/u' ], [ 'name' => 'Amazon CloudFront', 'id' => 'cloudfront', 'regexp' => '/Amazon CloudFront/u' ], [ 'name' => 'Amorank Spider', 'id' => 'amorank', 'regexp' => '/AmorankSpider\/([0-9.]*)/u' ], + [ 'name' => 'Apple Bot', 'id' => 'apple', 'regexp' => '/Applebot\/([0-9.]*)/u' ], + [ 'name' => 'Apple News Bot', 'id' => 'apple', 'regexp' => '/AppleNewsBot/u' ], [ 'name' => 'ArchiveBot', 'id' => 'archive', 'regexp' => '/ArchiveTeam ArchiveBot/u' ], [ 'name' => 'Archive.org', 'id' => 'archive', 'regexp' => '/archive.org_bot(?:\/([0-9.]*))?/u' ], [ 'name' => 'Archive.org', 'id' => 'archive', 'regexp' => '/special_archiver(?:\/([0-9.]*))?/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 979c40583..471cee5e2 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 2d82610e2..00ed729bc 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -717,4 +717,16 @@ - headers: 'User-Agent: mj12bot' readable: 'Majestic MJ12 Bot' - result: { browser: { name: 'Majestic MJ12 Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Majestic MJ12 Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15 (Applebot/0.1; +http://www.apple.com/go/applebot)' + readable: 'Apple Bot 0.1' + result: { browser: { name: 'Apple Bot', version: '0.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Applebot/0.3; +http://www.apple.com/go/applebot)' + readable: 'Apple Bot 0.3' + result: { browser: { name: 'Apple Bot', version: '0.3' }, device: { type: bot } } +- + headers: 'User-Agent: AppleNewsBot' + readable: 'Apple News Bot' + result: { browser: { name: 'Apple News Bot' }, device: { type: bot } } \ No newline at end of file From 3ba0526403482aa96114f18d06466fab260f9b15 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 14:50:06 +0100 Subject: [PATCH 409/540] Rebase test files --- tests/data/bots/generic.yaml | 24 ++++---- tests/data/desktop/browser-flow.yaml | 6 +- tests/data/desktop/browser-other.yaml | 84 +++++++++++++-------------- tests/data/mobile/app-chat.yaml | 4 +- tests/data/mobile/browser-other.yaml | 10 ++-- 5 files changed, 64 insertions(+), 64 deletions(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 00ed729bc..05db7ee8a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -509,7 +509,7 @@ - headers: 'User-Agent: Facebookexternalhit/1.1; kakaotalk-scrap/1.0; +https: //devtalk.kakao.com/t/scrap/33984' readable: 'KakaoTalk Bot 1.0' - result: { browser: {name: 'KakaoTalk Bot', version: '1.0' }, device: { type: bot } } + result: { browser: { name: 'KakaoTalk Bot', version: '1.0' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) AppleWebKit/534.34' readable: 'Cloudflare Always Online 1.0' @@ -525,7 +525,7 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Nimbostratus-Bot/v1.3.2; http://cloudsystemnetworks.com)' readable: 'Nimbostratus 1.3.2' - result: { browser: { name: Nimbostratus, version: '1.3.2' }, device: { type: bot } } + result: { browser: { name: Nimbostratus, version: 1.3.2 }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)' readable: 'Semrush 6' @@ -544,7 +544,7 @@ result: { browser: { name: 'Mail.ru Bot', version: '2.0' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/)' - readable: 'Bytespider' + readable: Bytespider result: { browser: { name: Bytespider }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 compatible; yelpspider/yelpspider-1.0 (Crawlerbot run by Yelp Inc; yelpbot at yelp dot com)' @@ -564,7 +564,7 @@ result: { browser: { name: Discord, version: '2.0' }, device: { type: bot } } - headers: 'User-Agent: Voat.co OpenGraph Parser' - readable: 'Voat' + readable: Voat result: { browser: { name: Voat }, device: { type: bot } } - headers: 'User-Agent: PocketImageCache/1.0' @@ -576,15 +576,15 @@ result: { browser: { name: Pocket, version: '2.0' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; Wappalyzer; https://www.wappalyzer.com)' - readable: 'Wappalyzer' + readable: Wappalyzer result: { browser: { name: Wappalyzer }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; Wappalyzer)' - readable: 'Wappalyzer' + readable: Wappalyzer result: { browser: { name: Wappalyzer }, device: { type: bot } } - headers: 'User-Agent: Wappalyzer' - readable: 'Wappalyzer' + readable: Wappalyzer result: { browser: { name: Wappalyzer }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko; compatible; BuiltWith/1.0; +http://builtwith.com/biup) Chrome/74.0.3729.131 Safari/537.36' @@ -592,16 +592,16 @@ result: { browser: { name: BuiltWith, version: '1.0' }, device: { type: bot } } - headers: 'User-Agent: TrustedSite Crawler' - readable: 'TrustedSite' + readable: TrustedSite result: { browser: { name: TrustedSite }, device: { type: bot } } - headers: 'User-Agent: IDG/UK (http://spaziodati.eu/)' - readable: 'SpazioDati' + readable: SpazioDati result: { browser: { name: SpazioDati }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0+(compatible; MxToolbox/Beta7; http://www.mxtoolbox.com/)' readable: 'MxToolbox 7' - result: { browser: { name: MxToolbox, version: 'Beta7' }, device: { type: bot } } + result: { browser: { name: MxToolbox, version: Beta7 }, device: { type: bot } } - headers: 'User-Agent: CCBot/2.0 (http://commoncrawl.org/faq/)' readable: 'Common Crawl Bot 2.0' @@ -713,7 +713,7 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; MJ12bot/v1.4.8; http://mj12bot.com/)' readable: 'Majestic MJ12 Bot 1.4.8' - result: { browser: { name: 'Majestic MJ12 Bot', version: '1.4.8' }, device: { type: bot } } + result: { browser: { name: 'Majestic MJ12 Bot', version: 1.4.8 }, device: { type: bot } } - headers: 'User-Agent: mj12bot' readable: 'Majestic MJ12 Bot' @@ -729,4 +729,4 @@ - headers: 'User-Agent: AppleNewsBot' readable: 'Apple News Bot' - result: { browser: { name: 'Apple News Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Apple News Bot' }, device: { type: bot } } diff --git a/tests/data/desktop/browser-flow.yaml b/tests/data/desktop/browser-flow.yaml index a2e0ffaf9..75bc7a28c 100644 --- a/tests/data/desktop/browser-flow.yaml +++ b/tests/data/desktop/browser-flow.yaml @@ -1,12 +1,12 @@ - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.10.0.32202 Flow/5.10.0 (like Gecko Firefox/62.0 rv:62.0)' - result: { browser: { name: 'Flow', version: '5.10.0', type: browser }, engine: { name: EkiohFlow, version: 5.10.0.32202 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Flow, version: 5.10.0, type: browser }, engine: { name: EkiohFlow, version: 5.10.0.32202 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'Flow 5.10.0 on macOS Catalina 10.15' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.9.4.32015 Flow/5.9.4 (like Gecko Firefox/53.0 rv:53.0)' - result: { browser: { name: 'Flow', version: '5.9.4', type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Flow, version: 5.9.4, type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'Flow 5.9.4 on macOS Catalina 10.15' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) EkiohFlow/5.9.4.32015M Flow/5.9.4 (like Gecko Firefox/53.0 rv:53.0)' - result: { browser: { name: 'Flow Nightly Build', type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: 'macOS', version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: 'Flow Nightly Build', type: browser }, engine: { name: EkiohFlow, version: 5.9.4.32015 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'Flow Nightly Build on macOS Catalina 10.15' diff --git a/tests/data/desktop/browser-other.yaml b/tests/data/desktop/browser-other.yaml index 201864b5a..7e4167c5b 100644 --- a/tests/data/desktop/browser-other.yaml +++ b/tests/data/desktop/browser-other.yaml @@ -148,7 +148,7 @@ readable: 'Beonex 0.8.2 on Windows' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008120120 Blackbird/0.9991' - result: { browser: { name: 'Blackbird', version: '0.9991', type: browser }, engine: { name: Gecko, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: Blackbird, version: '0.9991', type: browser }, engine: { name: Gecko, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Blackbird 0.9991 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/533.3 (KHTML, like Gecko) Columbus/1.2.1.0 Safari/533.3' @@ -157,7 +157,7 @@ - headers: 'User-Agent: Cyberdog/2.0 (Macintosh; PPC)' readable: 'Cyberdog 2.0 on Mac OS' - result: { browser: { name: Cyberdog, version: 2.0, type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Cyberdog, version: '2.0', type: browser }, os: { name: 'Mac OS' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Demeter/1.0.9 Safari/125' readable: 'Demeter 1.0.9 on Mac OS X 10.5' @@ -169,18 +169,18 @@ - headers: 'User-Agent: Mozilla/4.0 (compatible; DPlus 0.5)' readable: 'DPlus Browser 0.5' - result: { browser: { name: DPlus Browser, version: '0.5', type: browser }, device: { type: desktop } } + result: { browser: { name: 'DPlus Browser', version: '0.5', type: browser }, device: { type: desktop } } - headers: 'User-Agent: DocZilla/2.7 (Windows; U; Windows NT 5.1; en-US; rv:2.7.0) Gecko/20050706 CiTEC Information' result: { browser: { name: DocZilla, version: '2.7', type: browser }, engine: { name: Gecko, version: 2.7.0 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'DocZilla 2.7 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091105 Firefox/3.5.5 compat GlobalMojo/1.5.5 GlobalMojoExt/1.5' - result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: '1.5.5', type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: GlobalMojo, family: { name: Firefox, version: 3.5.5 }, version: 1.5.5, type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'GlobalMojo 1.5.5 on Windows 7' - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; GreenBrowser)' - result: { browser: { name: 'GreenBrowser', type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: GreenBrowser, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'GreenBrowser on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Hydra Browser; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)' @@ -213,10 +213,10 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Kinza/6.1.6' readable: 'Kinza 6.1.6 on Windows 10' - result: { browser: { name: Kinza, family: { name: Chrome, version: 80.0.3987.149 }, version: 6.1.6, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Kinza, family: { name: Chrome, version: 80 }, version: 6.1.6, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML like Gecko) 37abc/1.6.5.14 Chrome/44.0.2403.130 Safari/537.36' - result: { browser: { name: '37abc Browser', family: { name: Chrome, version: 44.0.2403.130 }, version: 1.6.5.14, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: '37abc Browser', family: { name: Chrome, version: 44 }, version: 1.6.5.14, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: '37abc Browser 1.6.5.14 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.5.2526.111 Amigo/47.5.2526.111 MRCHROME SOC Safari/537.36' @@ -236,7 +236,7 @@ result: { browser: { name: Basilisk, family: { name: Firefox, version: '68.9' }, version: '20200311', type: browser }, engine: { name: Goanna, version: '4.5' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Browzar)' - result: { browser: { name: 'Browzar', type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: Browzar, type: browser }, engine: { name: Trident, version: '4.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Browzar on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/47.0.2526.106 Safari/537.36 Cent/1.6.10.21' @@ -252,7 +252,7 @@ result: { browser: { name: Chedot, family: { name: Chrome, version: 76 }, version: 9.1.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en) AppleWebKit/418.9 (KHTML, like Gecko, Safari) Safari/419.3 Cheshire/1.0.ALPHA' - result: { browser: { name: Cheshire, version: '1.0.ALPHA', type: browser }, engine: { name: Webkit, version: '418.9' }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.4' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Cheshire, version: 1.0.ALPHA, type: browser }, engine: { name: Webkit, version: '418.9' }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.4' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'Cheshire 1.0 on Mac OS X 10.4' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X PPC Mac OS X 10.4; en-US; rv:1.0.1) Gecko/20030111 Chimera/0.6' @@ -277,15 +277,15 @@ - headers: 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; KKman3.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)' readable: 'KKMAN 3.0 on Windows Vista' - result: { browser: { name: 'KKMAN', version: '3.0', type: browser }, os: { name: Windows, version: { value: '6.0', alias: Vista } }, device: { type: desktop } } + result: { browser: { name: KKMAN, version: '3.0', type: browser }, os: { name: Windows, version: { value: '6.0', alias: Vista } }, device: { type: desktop } } - headers: 'User-Agent: Klondike/1.50 (WSP Win32) (Google WAP Proxy/1.0)' readable: 'Klondike 1.50 on Windows' - result: { browser: { name:Klondike, version: '1.50', type: browser }, os: { name: Windows }, device: { type: desktop } } + result: { browser: { name: Klondike, version: '1.50', type: browser }, os: { name: Windows }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0 Light/44.0' readable: 'Light 44.0 on Windows 10' - result: { browser: { name: 'Light', family: { name: Firefox, version: '44.0' }, version: '44.0', type: browser }, engine: { name: Gecko, version: '44.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Light, family: { name: Firefox, version: '44.0' }, version: '44.0', type: browser }, engine: { name: Gecko, version: '44.0' }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070224 lolifox/0.3.2' readable: 'Lolifox 0.3.2 on Windows XP' @@ -305,7 +305,7 @@ - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/522.11.1 (KHTML, like Gecko) Shiira Safari/125' readable: 'Shiira on OS X' - result: { browser: { name: Shiira, type: browser }, engine: { name: Webkit, version: 522.11.1 }, os: { name: 'OS X'}, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: Shiira, type: browser }, engine: { name: Webkit, version: 522.11.1 }, os: { name: 'OS X' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 10; en-us; GM1910 Build/QKQ1.190716.003) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 OnePlusBrowser/30.5.0.9' readable: 'OnePlus Browser 30.5.0.9 on an OnePlus 7 Pro running Android 10' @@ -324,11 +324,11 @@ result: { browser: { name: 'Quick Look', version: '5.0', type: browser }, engine: { name: Webkit, version: 601.6.17 }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36 Slimjet/19.0.2.0' - result: { browser: { name: 'Slimjet', family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Slimjet, family: { name: Chrome, version: 66 }, version: 19.0.2.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } readable: 'Slimjet 19.0.2.0 on Windows 10' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.4.1 Safari/605.1.15 (Airwatch Browser v7.9)' - result: { browser: { name: 'VMware Workspace ONE', version: '7.9', type: browser }, engine: { name: Webkit, version: '605.1.15' }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + result: { browser: { name: 'VMware Workspace ONE', version: '7.9', type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', version: { value: '10.11', nickname: 'El Capitan' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'VMware Workspace ONE 7.9 on OS X El Capitan 10.11' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Whale/2.7.97.12 Safari/537.36' @@ -337,7 +337,7 @@ - headers: 'User-Agent: WinWAP/4.1 (Win32) WinWAP-X/4.1.0.192' readable: 'WinWAP Browser 4 on Windows' - result: { browser: { name: 'WinWAP Browser', version: 4, type: browser }, os: { name: Windows }, device: { type: desktop } } + result: { browser: { name: 'WinWAP Browser', version: '4', type: browser }, os: { name: Windows }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; SM-G928F Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 wkbrowser 4.0.8 421' readable: 'WK Browser 4.0.8 on a Samsung Galaxy S6 Edge+ running Android 7.0' @@ -345,22 +345,22 @@ - headers: 'User-Agent: Mozilla/5.0 (Android 8.0.0; SM-G950F Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.9 YaaniBrowser/4.2.0.186 (Turkcell-TR) Mobile Safari/537.36' readable: 'Yaani Browser 4.2.0.186 on a Samsung Galaxy S8 running Android 8.0.0' - result: { browser: { name: 'Yaani Browser',family: { name: Chrome, version: 54 }, version: 4.2.0.186, type: browser }, engine: { name: Blink }, os: { name: Android, version: '8.0.0' }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } + result: { browser: { name: 'Yaani Browser', family: { name: Chrome, version: 54 }, version: 4.2.0.186, type: browser }, engine: { name: Blink }, os: { name: Android, version: 8.0.0 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy S8' } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20130204 Zvu/18.0.1' result: { browser: { name: 'Zvu Browser', version: 18.0.1, type: browser }, engine: { name: Gecko, version: '18.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Zvu Browser 18.0.1 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Falkon/3.0.0 Chrome/56.0.2924.122 Safari/537.36' - result: { browser: { name: 'Falkon', family: { name: Chrome, version: 56.0.2924.122 }, version: 3.0.0, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } + result: { browser: { name: Falkon, family: { name: Chrome, version: 56 }, version: 3.0.0, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } readable: 'Falkon 3.0.0 on Linux' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:25.3) Gecko/20150425 BlackHawk/25.3.1' - result: { browser: { name: 'Black Hawk', version: 25.3.1, type: browser }, engine: { name: Gecko, version: 25.3 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Black Hawk', version: 25.3.1, type: browser }, engine: { name: Gecko, version: '25.3' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Black Hawk 25.3.1 on Windows 7' -- +- headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; BOLT/2.514) AppleWebKit/534.6 (KHTML, like Gecko) Version/5.0 Safari/534.6.3' - result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: 'Bolt Browser', version: '2.514', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Bolt Browser 2.514 on Windows XP' - headers: 'User-Agent: BriskBard/1.0 (Windows 10) BriskBard/1.0' @@ -369,22 +369,22 @@ - headers: 'User-Agent: Mozilla/5 [en] (X11; U; ) - BrowseX (2.0.0 Windows)' readable: 'BrowseX 2.0.0 on Windows' - result: { browser: { name: 'BrowseX', version: 2.0.0, type: browser }, os: { name: Windows }, device: { type: desktop } } + result: { browser: { name: BrowseX, version: 2.0.0, type: browser }, os: { name: Windows }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36 CCleaner/75.1.103.145' - result: { browser: { name: 'CCleaner Browser', family: { name: Chrome, version: 75.0.3770.142 }, version: 75.1.103.145, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'CCleaner Browser', family: { name: Chrome, version: 75 }, version: 75.1.103.145, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'CCleaner Browser 75.1.103.145 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) chimlac_browser/1.0 Chrome/57.0.2987.110 Safari/537.36' - result: { browser: { name: 'Chim Lac', family: { name: Chrome, version: 57.0.2987.110 }, version: 1.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Chim Lac', family: { name: Chrome, version: 57 }, version: '1.0', type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Chim Lac 1.0 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Colibri/1.5.1 Chrome/61.0.3163.100 Electron/2.0.2 Safari/537.36' - result: { browser: { name: 'Colibri', using: { name: Electron, version: 2.0.2 }, family: { name: Chrome, version: 61.0.3163.100 }, version: 1.5.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: Colibri, using: { name: Electron, version: 2.0.2 }, family: { name: Chrome, version: 61 }, version: 1.5.1, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Colibri 1.5.1 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Degdegan/72.4.206 Chrome/66.4.3359.206 Safari/537.36' - result: { browser: { name: 'Deg-degan', family: { name: Chrome, version: 66 }, version: 72.4.206, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: Deg-degan, family: { name: Chrome, version: 66 }, version: 72.4.206, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Deg-degan 72.4.206 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20100411 Lorentz/3.6.3 GTB7.0' @@ -392,11 +392,11 @@ result: { browser: { name: Firefox, version: 3.6.3, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: 'OS X', alias: 'Mac OS X', version: '10.6' }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - headers: 'User-Agent: FlameSky/5.0.0.0 Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.2987.110 Safari/537.36' - result: { browser: { name: 'FlameSky', family: { name: Chrome, version: 64.0.2987.110 }, version: 5.0.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: FlameSky, family: { name: Chrome, version: 64 }, version: 5.0.0.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'FlameSky 5.0.0.0 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0 Framafox/43.0.1' - result: { browser: { name: 'Framafox', family: { name: Firefox, version: '43.0' }, version: 43.0.1, type: browser }, engine: { name: Gecko, version: '43.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: Framafox, family: { name: Firefox, version: '43.0' }, version: 43.0.1, type: browser }, engine: { name: Gecko, version: '43.0' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Framafox 43.0.1 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.69 Freeu/61.0.3163.69 MRCHROME SOC Safari/537.36' @@ -404,19 +404,19 @@ readable: 'Freeu Browser 61.0.3163.69 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36 Hola/1.142.604' - result: { browser: { name: 'Hola Browser', family: { name: Chrome, version: 74.0.3729.157 }, version: 1.142.604, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Hola Browser', family: { name: Chrome, version: 74 }, version: 1.142.604, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Hola Browser 1.142.604 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0' - result: { browser: { name: 'Kapiko', family: { name: Firefox, version: '3.0' }, version: '3.0', type: browser }, engine: { name: Gecko, version: 1.9 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: Kapiko, family: { name: Firefox, version: '3.0' }, version: '3.0', type: browser }, engine: { name: Gecko, version: '1.9' }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Kapiko 3.0 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100222 Firefox/3.6 Kylo/0.8.4.74873' - result: { browser: { name: 'Kylo', family: { name: Firefox, version: '3.6' }, version: 0.8.4.74873, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '5.1', alias: 'XP' } }, device: { type: desktop } } + result: { browser: { name: Kylo, family: { name: Firefox, version: '3.6' }, version: 0.8.4.74873, type: browser }, engine: { name: Gecko, version: 1.9.2 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Kylo 0.8.4.74873 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) min/1.2.2 Chrome/49.0.2623.75 Electron/0.37.1 Safari/537.36' - result: { browser: { name: 'Min Browser', using: { name: Electron, version: 0.37.1 }, family: { name: Chrome, version: 49.0.2623.75 }, version: 1.2.2, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Min Browser', using: { name: Electron, version: 0.37.1 }, family: { name: Chrome, version: 49 }, version: 1.2.2, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Min Browser 1.2.2 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; cs-CZ) AppleWebKit/532.4 (KHTML, like Gecko) MiniBrowser/3.0 Safari/532.4' @@ -428,7 +428,7 @@ readable: 'Mypal Browser 28.8.4 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/538.1 (KHTML, like Gecko) qutebrowser/0.9.1 Safari/538.1' - result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: 538.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: 'Qute Browser', version: 0.9.1, type: browser }, engine: { name: Webkit, version: '538.1' }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'Qute Browser 0.9.1 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Sielo/1.16.07 Chrome/65.0.3325.151 Safari/537.36' @@ -436,11 +436,11 @@ result: { browser: { name: 'Sielo Browser', family: { name: Chrome, version: 65 }, version: 1.16.07, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.2', alias: '8' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; SiteKiosk 7.0 Build 248)' - result: { browser: { name: 'SiteKiosk', version: '7.0', type: browser }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: SiteKiosk, version: '7.0', type: browser }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SiteKiosk 7.0 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; iRider 2.21.1108; FDM)' - result: { browser: { name: 'iRider Browser', version: 2.21.1108, type: browser },os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: 'iRider Browser', version: 2.21.1108, type: browser }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'iRider Browser 2.21.1108 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20071115 Firefox/2.0.0.6 LBrowser/2.0.0.6' @@ -448,7 +448,7 @@ readable: 'LBrowser 2.0.0.6 on Linux' - headers: 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20051001 Firefox/1.0.7 Madfox/0.3.2u3' - result: { browser: { name: 'Madfox', family: { name: Firefox, version: '1.0.7' }, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 1.7.12 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } + result: { browser: { name: Madfox, family: { name: Firefox, version: 1.0.7 }, version: 0.3.2, type: browser }, engine: { name: Gecko, version: 1.7.12 }, os: { name: Windows, version: { value: '5.1', alias: XP } }, device: { type: desktop } } readable: 'Madfox 0.3.2 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 5.1; SV1; Multi-Browser 10.1 (www.multibrowser.de); .NET CLR 1.1.4322)' @@ -456,7 +456,7 @@ readable: 'Multi-Browser XP 10.1 on Windows XP' - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0; NetCaptor 6.5.0RC1)' - result: { browser: { name: NetCaptor, version: 6.5.0, type: browser }, os: { name: Windows, version: { value: '5.0', alias: 2000 } }, device: { type: desktop } } + result: { browser: { name: NetCaptor, version: 6.5.0, type: browser }, os: { name: Windows, version: { value: '5.0', alias: '2000' } }, device: { type: desktop } } readable: 'NetCaptor 6.5.0 on Windows 2000' - headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 11.0; Windows NT 6.1; Open Live Writer 1.0)' @@ -513,7 +513,7 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20110610 Firefox/4.0.1 Sundial/4.0.1_1.0' readable: 'Sundial 4.0.1 on Windows 7' - result: { browser: { name: Sundial, family: { name: Firefox, version: 4.0.1 }, version: 4.0.1, type: browser }, engine: { name: Gecko, version: 2.0.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } },device: { type: desktop } } + result: { browser: { name: Sundial, family: { name: Firefox, version: 4.0.1 }, version: 4.0.1, type: browser }, engine: { name: Gecko, version: 2.0.1 }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061025 Firefox/2.0 (Swiftfox)' readable: 'Swiftfox on Linux' @@ -541,7 +541,7 @@ - headers: 'User-Agent: Vimprobable/0.9.20.5' readable: 'Vimprobable 0.9.20.5' - result: { browser: { name: Vimprobable, version: '0.9.20.5', type: browser }, device: { type: desktop } } + result: { browser: { name: Vimprobable, version: 0.9.20.5, type: browser }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3390.0 Xvast/1.1.0.3 Safari/537.36' readable: 'Xvast 1.1.0.3 on Windows 8' @@ -553,10 +553,10 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 SputnikBrowser/4.1.2810.0 (GOST) Safari/537.36' readable: 'Sputnik 4.1.2810.0 on Windows 10' - result: { browser: { name: 'Sputnik', family: { name: Chrome, version: 64 }, version: 4.1.2810.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } + result: { browser: { name: Sputnik, family: { name: Chrome, version: 64 }, version: 4.1.2810.0, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '10.0', alias: '10' } }, device: { type: desktop } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) SalamWeb/3.0.1.592 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Safari/537.36' - result: { browser: { name: 'SalamWeb', family: { name: Chrome, version: 75.0.3770.101 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } + result: { browser: { name: SalamWeb, family: { name: Chrome, version: 75 }, version: 3.0.1.592, type: browser }, engine: { name: Blink }, os: { name: Windows, version: { value: '6.1', alias: '7' } }, device: { type: desktop } } readable: 'SalamWeb 3.0.1.592 on Windows 7' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2551.0 (SBRO; Salam Browser) Safari/537.36' @@ -565,4 +565,4 @@ - headers: 'User-Agent: Mozilla/5.0 Chrome/10.0.613.0 Safari/534.15 Zombie.js/5.0.7' result: { browser: { name: Zombie.js, family: { name: Chrome, version: 10 }, version: 5.0.7, type: browser }, device: { type: desktop } } - readable: 'Zombie.js 5.0.7' \ No newline at end of file + readable: 'Zombie.js 5.0.7' diff --git a/tests/data/mobile/app-chat.yaml b/tests/data/mobile/app-chat.yaml index d7fa5c5b1..f0a970753 100644 --- a/tests/data/mobile/app-chat.yaml +++ b/tests/data/mobile/app-chat.yaml @@ -84,12 +84,12 @@ result: { browser: { name: Wire, family: { name: Chrome, version: 56 }, version: 0.564.2.20, type: 'app:chat' }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: LeEco, model: 'Le 2 X526' } } - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12B440 Line/9.8.0' - result: { browser: { name: 'Line', version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone' } } + result: { browser: { name: Line, version: 9.8.0, type: 'app:chat' }, engine: { name: Webkit, version: 600.1.4 }, os: { name: iOS, version: 8.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPhone } } readable: 'Line 9.8.0 on an Apple iPhone running iOS 8.1.2' - headers: 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Mobile/14B100 KAKAOTALK 5.9.2' readable: 'KakaoTalk 5.9.2 on an Apple iPhone running iOS 10.1.1' - result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14}, os: { name: iOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple ,model: iPhone } } + result: { browser: { name: KakaoTalk, version: 5.9.2, type: 'app:chat' }, engine: { name: Webkit, version: 602.2.14 }, os: { name: iOS, version: 10.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPhone } } - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) AtomShell/2.3.1 Chrome/52.0.2743.82 Electron/1.3.8 Safari/537.36 Slack_SSB/2.3.1' readable: 'Slack 2.3.1 on macOS Sierra 10.12' diff --git a/tests/data/mobile/browser-other.yaml b/tests/data/mobile/browser-other.yaml index 6cd59869f..d2f137616 100644 --- a/tests/data/mobile/browser-other.yaml +++ b/tests/data/mobile/browser-other.yaml @@ -73,14 +73,14 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0; HUAWEI-M570/001.00 WAP/OBIGO/Q05A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36 AlohaBrowser/1.2.1.3' readable: 'Aloha Browser 1.2.1.3 on a Huawei M570 running Android 7.0' - result: { browser: { name: 'Aloha Browser', family: { name: Chrome, version: 63 }, version: 1.2.1.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.0 }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: M570 } } + result: { browser: { name: 'Aloha Browser', family: { name: Chrome, version: 63 }, version: 1.2.1.3, type: browser }, engine: { name: Blink }, os: { name: Android, version: '7.0' }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: M570 } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 7.1.1; en-us; CPH1723 Build/N6F26Q) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 CoRom/30.0.1599.101' readable: 'Corom Browser 30.0.1599.101 on an Oppo F5 running Android 7.1.1' result: { browser: { name: 'Corom Browser', family: { name: Chrome, version: 53 }, version: 30.0.1599.101, type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Oppo, model: F5 } } - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302 Safari/9537.53 DiigoBrowser' - result: { browser: { name: Diigo Browser, type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: iOS, version: 11.3 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } + result: { browser: { name: 'Diigo Browser', type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: iOS, version: '11.3' }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Diigo Browser on an Apple iPad running iOS 11.3' - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; PBAM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36 HeyTapBrowser/10.7.2.1' @@ -101,14 +101,14 @@ - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-J510H Build/NMF26X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.204 Mobile Safari/537.36 TNSBrowser/25.01' readable: 'K.Browser 25.01 on a Samsung Galaxy J5 (2016) running Android 7.1.1' - result: { browser: { name: 'K.Browser', family: { name: Chrome, version: 64 }, version: '25.01', type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)' } } + result: { browser: { name: K.Browser, family: { name: Chrome, version: 64 }, version: '25.01', type: browser }, engine: { name: Blink }, os: { name: Android, version: 7.1.1 }, device: { type: mobile, subtype: smart, manufacturer: Samsung, model: 'Galaxy J5 (2016)' } } - headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; RMX1941 Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.134 Mobile Safari/537.36 RealmeBrowser/35.5.0.8' readable: 'Realme Browser 35.5.0.8 on a RMX1941 running Android 9' result: { browser: { name: 'Realme Browser', family: { name: Chrome, version: 53 }, version: 35.5.0.8, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, model: RMX1941 } } - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G36 (Ecosia ios@4.0.10.813) Safari/604' - result: { browser: { name: Ecosia Browser, version: 4.0.10.813, type: browser }, engine: { name: Webkit, version: 601.1.46 }, os: { name: iOS, version: 9.3.5 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } + result: { browser: { name: 'Ecosia Browser', version: 4.0.10.813, type: browser }, engine: { name: Webkit, version: 601.1.46 }, os: { name: iOS, version: 9.3.5 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Ecosia Browser 4.0.10.813 on an Apple iPad running iOS 9.3.5' - headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; FIG-LX3 Build/HUAWEIFIG-L23) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.128 Mobile Safari/537.36 (Ecosia android@69.0.3497.128)' @@ -116,5 +116,5 @@ readable: 'Ecosia Browser 69.0.3497.128 on a Huawei P Smart running Android 9' - headers: 'User-Agent: Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 Version/10.3 Safari/8536.25 Mobicip/1882608256' - result: { browser: { name: Mobicip, type: 'browser' }, engine: { name: Webkit, version: 603.3.8 }, os: { name: iOS, version: 10.3.3 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } + result: { browser: { name: Mobicip, type: browser }, engine: { name: Webkit, version: 603.3.8 }, os: { name: iOS, version: 10.3.3 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: iPad } } readable: 'Mobicip on an Apple iPad running iOS 10.3.3' From 2156d0bfedbd1a67a1feb19790925cde060a4643 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 15:23:30 +0100 Subject: [PATCH 410/540] Create testrunner.yml --- .github/workflows/testrunner.yml | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/testrunner.yml diff --git a/.github/workflows/testrunner.yml b/.github/workflows/testrunner.yml new file mode 100644 index 000000000..a0fa0ea34 --- /dev/null +++ b/.github/workflows/testrunner.yml @@ -0,0 +1,40 @@ +name: Testrunner + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout source + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + ini-values: memory_limit=2048M + + - name: Install dependencies + run: composer install --prefer-source + + - name: Check code standards + run: vendor/bin/phpcs --standard=PSR1,PSR2 -n src + + - name: Run useragent string tests + run: php bin/runner.php --show check + + - name: Run unit tests + run: vendor/bin/phpunit From 6265ca4cbcc29f3af7db60a58a57defdf98af41c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 15:36:45 +0100 Subject: [PATCH 411/540] Allow more recent versions of the developer requirements --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index d92eb52a8..af16a1d21 100644 --- a/composer.json +++ b/composer.json @@ -30,11 +30,11 @@ "require-dev": { "symfony/yaml": "~2.8 || ~3.4 || ~4.2 || ~5.0", - "phpunit/php-code-coverage": "^2.2 || ^3.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", + "phpunit/php-code-coverage": "^2.2 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", "satooshi/php-coveralls": "^1.0", "icomefromthenet/reverse-regex" : "0.0.6.3", - "squizlabs/php_codesniffer": "2.5.*" + "squizlabs/php_codesniffer": "2.5.* || 3.*" }, "autoload-dev": { From 609ba5e121d6f06a641dc1f797c1bd3efaaf103d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 16:37:37 +0100 Subject: [PATCH 412/540] Fix some whitespace coding style issues picked up by a more recent version of phpcs --- src/Analyser/Camouflage.php | 6 ------ src/Analyser/Header/Useragent/Browser.php | 2 -- src/Analyser/Header/Useragent/Device/Ereader.php | 1 - src/Analyser/Header/Useragent/Device/Mobile.php | 8 +++----- .../Header/Useragent/Device/Television.php | 1 - src/Analyser/Header/Useragent/Os.php | 14 +++----------- src/Data/Applications.php | 2 -- 7 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/Analyser/Camouflage.php b/src/Analyser/Camouflage.php index f109ac462..8bd8ffbfc 100644 --- a/src/Analyser/Camouflage.php +++ b/src/Analyser/Camouflage.php @@ -11,7 +11,6 @@ trait Camouflage private function &detectCamouflage() { if ($ua = $this->getHeader('User-Agent')) { - $this ->detectCamouflagedAndroidBrowser($ua) ->detectCamouflagedAndroidAsusBrowser($ua) @@ -125,7 +124,6 @@ private function &detectCamouflagedAsChrome($ua) if (preg_match('/(?:Chrome|CrMo|CriOS)\//u', $ua) && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,2}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/u', $ua) ) { - $this->data->features[] = 'wrongVersion'; $this->data->camouflage = true; } @@ -137,7 +135,6 @@ private function &detectCamouflagedAsChrome($ua) private function &detectCamouflagedUCBrowser($ua) { if ($ua == 'Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.2.3.4) Gecko/') { - if (!$this->data->isBrowser('UC Browser')) { $this->data->browser->name = 'UC Browser'; $this->data->browser->version = null; @@ -168,7 +165,6 @@ private function &detectCamouflagedUCBrowser($ua) private function &detectCamouflagedBasedOnEngines() { if (isset($this->data->engine->name) && $this->data->browser->mode != 'proxy') { - /* If it claims not to be Trident, but it is probably Trident running camouflage mode */ if ($this->options->engine & Constants\EngineType::TRIDENT) { $this->data->features[] = 'trident'; @@ -268,7 +264,6 @@ private function &detectCamouflagedBasedOnFeatures() { if (isset($this->data->browser->name) && isset($this->data->os->name)) { if ($this->data->os->name == 'iOS' && $this->data->browser->name != 'Opera Mini' && $this->data->browser->name != 'UC Browser' && isset($this->data->os->version)) { - if ($this->data->os->version->toFloat() < 4.0 && $this->options->features & Constants\Feature::SANDBOX) { $this->data->features[] = 'foundSandbox'; $this->data->camouflage = true; @@ -286,7 +281,6 @@ private function &detectCamouflagedBasedOnFeatures() } if ($this->data->os->name != 'iOS' && $this->data->browser->name == 'Safari' && isset($this->data->browser->version)) { - if ($this->data->browser->version->toFloat() < 4.0 && $this->options->features & Constants\Feature::APPCACHE) { $this->data->features[] = 'foundAppCache'; $this->data->camouflage = true; diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index 46fb06870..b79317df8 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -185,7 +185,6 @@ private function detectChrome($ua) /* Samsung Chromium based browsers */ if (isset($this->data->device->manufacturer) && $this->data->device->manufacturer == 'Samsung') { - /* Version 1.0 */ if ($version == '18.0.1025.308' && preg_match('/Version\/1.0/u', $ua)) { $this->data->browser->name = "Samsung Internet"; @@ -2484,7 +2483,6 @@ private function detectWapBrowsers($ua) if (isset($match[1])) { $this->data->browser->version = new Version([ 'value' => $match[1] ]); } - } if (preg_match('/WAP Browser\/MAUI/ui', $ua, $match)) { diff --git a/src/Analyser/Header/Useragent/Device/Ereader.php b/src/Analyser/Header/Useragent/Device/Ereader.php index 489fc7dbf..f0a157884 100644 --- a/src/Analyser/Header/Useragent/Device/Ereader.php +++ b/src/Analyser/Header/Useragent/Device/Ereader.php @@ -132,7 +132,6 @@ private function detectSonyreader($ua) 'series' => 'Reader', 'type' => Constants\DeviceType::EREADER ]); - } } diff --git a/src/Analyser/Header/Useragent/Device/Mobile.php b/src/Analyser/Header/Useragent/Device/Mobile.php index 30771f055..65e9ef96f 100644 --- a/src/Analyser/Header/Useragent/Device/Mobile.php +++ b/src/Analyser/Header/Useragent/Device/Mobile.php @@ -78,7 +78,6 @@ private function detectNokia($ua) } if (preg_match('/Nokia[- \/]?([^\/\);]+)/ui', $ua, $match)) { - if ($match[1] == 'Browser') { return; } @@ -1149,7 +1148,7 @@ private function detectGenericMobileLocations($ua) } } - function identifyBasedOnIdentifier() + private function identifyBasedOnIdentifier() { if ($this->data->device->identified & Constants\Id::MATCH_UA) { return; @@ -1182,10 +1181,9 @@ function identifyBasedOnIdentifier() } } - function identifyBasedOnIdUsingOs($id) + private function identifyBasedOnIdUsingOs($id) { switch ($this->data->os->getFamily()) { - case 'Android': $device = Data\DeviceModels::identify('android', $id); if ($device->identified) { @@ -1236,7 +1234,7 @@ function identifyBasedOnIdUsingOs($id) } } - function identifyBasedOnId($id) + private function identifyBasedOnId($id) { if ($this->data->device->type != 'mobile') { return; diff --git a/src/Analyser/Header/Useragent/Device/Television.php b/src/Analyser/Header/Useragent/Device/Television.php index dd1d27b16..92181c8a7 100644 --- a/src/Analyser/Header/Useragent/Device/Television.php +++ b/src/Analyser/Header/Useragent/Device/Television.php @@ -1058,7 +1058,6 @@ private function improveModelsOnDeviceTypeTelevision() if (isset($this->data->device->model) && isset($this->data->device->manufacturer)) { - if ($this->data->device->manufacturer == 'Dune HD') { if (preg_match('/tv([0-9]+[a-z]?)/u', $this->data->device->model, $match)) { $this->data->device->model = 'TV-' . strtoupper($match[1]); diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index e59b08ea7..7b13e384f 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -93,9 +93,9 @@ private function detectDarwin($ua) } } } - } /* OS X */ - - elseif (preg_match('/Mac OS X/u', $ua) || preg_match('/;os=Mac/u', $ua)) { + } elseif (preg_match('/Mac OS X/u', $ua) || preg_match('/;os=Mac/u', $ua)) { + /* OS X */ + $this->data->os->name = 'OS X'; if (preg_match('/Mac OS X (1[0-9][0-9\._]*)/u', $ua, $match)) { @@ -113,12 +113,10 @@ private function detectDarwin($ua) if (preg_match('/Darwin(?:\/([0-9]+).[0-9]+)?/u', $ua, $match)) { if (preg_match('/\(X11;/u', $ua)) { - /* Darwin */ $this->data->os->name = 'Darwin'; $this->data->device->type = Constants\DeviceType::DESKTOP; } elseif (preg_match('/\((?:x86_64|i386|Power%20Macintosh)\)/u', $ua)) { - /* OS X */ $this->data->os->name = 'OS X'; $this->data->device->type = Constants\DeviceType::DESKTOP; @@ -137,7 +135,6 @@ private function detectDarwin($ua) } } } else { - /* iOS */ $this->data->os->name = 'iOS'; $this->data->device->type = Constants\DeviceType::MOBILE; @@ -242,7 +239,6 @@ private function detectAndroid($ua) $candidates = []; if (preg_match('/Build/ui', $ua)) { - /* Normal Android useragent strings */ if (preg_match('/; [a-z][a-zA-Z][-_][a-zA-Z][a-zA-Z] ([^;]*[^;\s])\s+(?:BUILD|Build|build)/u', $ua, $match)) { @@ -257,7 +253,6 @@ private function detectAndroid($ua) $candidates[] = $match[1]; } } elseif (preg_match('/Release\//ui', $ua)) { - /* WAP style useragent strings */ if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Linux\/[0-9.+]+ Android\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { @@ -268,7 +263,6 @@ private function detectAndroid($ua) $candidates[] = $match[1]; } } elseif (preg_match('/Mozilla\//ui', $ua)) { - /* Old Android useragent strings */ if (preg_match('/Linux; (?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { @@ -277,7 +271,6 @@ private function detectAndroid($ua) $candidates[] = $match[1]; } } else { - /* Other applications */ if (preg_match('/[34]G Explorer\/[0-9.]+ \(Linux;Android [0-9.]+,([^\)]+)\)/u', $ua, $match)) { @@ -2417,7 +2410,6 @@ private function detectRemainingOperatingSystems($ua) $count = count($patterns); for ($b = 0; $b < $count; $b++) { for ($r = 0; $r < count($patterns[$b]['regexp']); $r++) { - if (preg_match($patterns[$b]['regexp'][$r], $ua, $match)) { $this->data->os->name = $patterns[$b]['name']; diff --git a/src/Data/Applications.php b/src/Data/Applications.php index c4fde6e62..0ee86076d 100644 --- a/src/Data/Applications.php +++ b/src/Data/Applications.php @@ -26,7 +26,6 @@ public static function identifyBrowser($ua) foreach (self::$BROWSERS as $type => $list) { foreach ($list as $i => $item) { - if (preg_match($item['regexp'], $ua, $match)) { return [ 'browser' => [ @@ -57,7 +56,6 @@ public static function identifyOther($ua) foreach (self::$OTHERS as $type => $list) { foreach ($list as $i => $item) { - if (preg_match($item['regexp'], $ua, $match)) { return [ 'browser' => [ From c5abc89f959cf7574f99f05e8c7b0ccd46e5b3f8 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 20:29:39 +0100 Subject: [PATCH 413/540] Update to PHPunit 6 or later --- .github/workflows/testrunner.yml | 2 +- composer.json | 5 ++--- phpunit.xml | 3 +-- tests/unit/AnalyserTest.php | 4 ++-- tests/unit/CacheTest.php | 4 ++-- tests/unit/Model/BrowserTest.php | 4 ++-- tests/unit/Model/DeviceTest.php | 4 ++-- tests/unit/Model/EngineTest.php | 4 ++-- tests/unit/Model/FamilyTest.php | 4 ++-- tests/unit/Model/MainTest.php | 4 ++-- tests/unit/Model/OsTest.php | 4 ++-- tests/unit/Model/Primitive/BaseTest.php | 4 ++-- tests/unit/Model/Primitive/NameVersionTest.php | 4 ++-- tests/unit/Model/UsingTest.php | 4 ++-- tests/unit/Model/VersionTest.php | 4 ++-- tests/unit/ParserTest.php | 4 ++-- 16 files changed, 30 insertions(+), 32 deletions(-) diff --git a/.github/workflows/testrunner.yml b/.github/workflows/testrunner.yml index a0fa0ea34..75620f84f 100644 --- a/.github/workflows/testrunner.yml +++ b/.github/workflows/testrunner.yml @@ -37,4 +37,4 @@ jobs: run: php bin/runner.php --show check - name: Run unit tests - run: vendor/bin/phpunit + run: vendor/bin/phpunit --no-coverage tests/unit diff --git a/composer.json b/composer.json index af16a1d21..340d5dbd7 100644 --- a/composer.json +++ b/composer.json @@ -29,9 +29,8 @@ }, "require-dev": { - "symfony/yaml": "~2.8 || ~3.4 || ~4.2 || ~5.0", - "phpunit/php-code-coverage": "^2.2 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "phpunit/php-code-coverage": "^5.0 || ^7.0", + "phpunit/phpunit": "^6.0 || ^8.0", "satooshi/php-coveralls": "^1.0", "icomefromthenet/reverse-regex" : "0.0.6.3", "squizlabs/php_codesniffer": "2.5.* || 3.*" diff --git a/phpunit.xml b/phpunit.xml index 21914d822..afec3790f 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -8,7 +8,6 @@ stopOnFailure="false" processIsolation="false" backupGlobals="false" - syntaxCheck="true" > @@ -26,7 +25,7 @@ - + diff --git a/tests/unit/AnalyserTest.php b/tests/unit/AnalyserTest.php index 6014cb371..3356dd85e 100644 --- a/tests/unit/AnalyserTest.php +++ b/tests/unit/AnalyserTest.php @@ -1,14 +1,14 @@ Date: Sat, 2 Jan 2021 20:30:07 +0100 Subject: [PATCH 414/540] Update other dev dependencies --- composer.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 340d5dbd7..3e6d2faa1 100644 --- a/composer.json +++ b/composer.json @@ -29,11 +29,13 @@ }, "require-dev": { + "symfony/yaml": "~3.4 || ~4.0", "phpunit/php-code-coverage": "^5.0 || ^7.0", "phpunit/phpunit": "^6.0 || ^8.0", "satooshi/php-coveralls": "^1.0", "icomefromthenet/reverse-regex" : "0.0.6.3", - "squizlabs/php_codesniffer": "2.5.* || 3.*" + "squizlabs/php_codesniffer": "^3.5", + "cache/array-adapter": "^1.1" }, "autoload-dev": { From ff3412c8e252e366c65ac0020f37c871e9a43fb0 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 20:30:29 +0100 Subject: [PATCH 415/540] Remove PHP 5 from testing --- .github/workflows/testrunner.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testrunner.yml b/.github/workflows/testrunner.yml index 75620f84f..b2250cc82 100644 --- a/.github/workflows/testrunner.yml +++ b/.github/workflows/testrunner.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] + php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it From 17eb7d2de75ebf502ed0c98c1cd7ccac15e1790b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 20:57:24 +0100 Subject: [PATCH 416/540] Remove unused $errcontext --- bin/runner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/runner.php b/bin/runner.php index a7ed648d0..cec9dad93 100755 --- a/bin/runner.php +++ b/bin/runner.php @@ -5,7 +5,7 @@ use WhichBrowser\Testrunner; use WhichBrowser\Tests; -set_error_handler(function ($errno, $errstr, $errfile, $errline, array $errcontext) { +set_error_handler(function ($errno, $errstr, $errfile, $errline) { // error was suppressed with the @-operator if (0 === error_reporting()) { return false; From a06dcc267133cedc6cc095855dafc4c2653ca9f5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 21:06:42 +0100 Subject: [PATCH 417/540] Check if log exists, before deleting it --- tests/src/Testrunner.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/src/Testrunner.php b/tests/src/Testrunner.php index 21c08e7ce..92a61ddc7 100644 --- a/tests/src/Testrunner.php +++ b/tests/src/Testrunner.php @@ -8,7 +8,9 @@ class Testrunner { public static function compare($files, $skipManufacturers = false) { - @unlink('runner.log'); + if (file_exists('runner.log')) { + @unlink('runner.log'); + } $result = true; From c7e3bf4a576f86df3d908519cd4c0f752409eed4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 21:19:02 +0100 Subject: [PATCH 418/540] Rename action --- .github/workflows/{testrunner.yml => build.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{testrunner.yml => build.yml} (98%) diff --git a/.github/workflows/testrunner.yml b/.github/workflows/build.yml similarity index 98% rename from .github/workflows/testrunner.yml rename to .github/workflows/build.yml index b2250cc82..943853921 100644 --- a/.github/workflows/testrunner.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Testrunner +name: Build on: push: From bc6f5be573be820efbad0188f7a062c4e9323315 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 21:31:00 +0100 Subject: [PATCH 419/540] Cache dependencies --- .github/workflows/build.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 943853921..ec3c342cb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,8 +27,19 @@ jobs: php-version: ${{ matrix.php-versions }} ini-values: memory_limit=2048M + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install dependencies - run: composer install --prefer-source + run: composer install --prefer-dist - name: Check code standards run: vendor/bin/phpcs --standard=PSR1,PSR2 -n src From 9f71515f707cafb47260584cb3086043829d13da Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 21:37:49 +0100 Subject: [PATCH 420/540] Use seperate caches for each PHP version --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ec3c342cb..0c29ac184 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,8 +35,8 @@ jobs: uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: ${{ runner.os }}-composer- + key: ${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ matrix.php-versions }}-composer- - name: Install dependencies run: composer install --prefer-dist From dcba2bc5e00fdbde02fd43cb69ea943ee92d6132 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 21:56:14 +0100 Subject: [PATCH 421/540] Add coverage generation --- .coveralls.yml | 2 +- .github/workflows/build.yml | 3 +-- .github/workflows/coverage.yml | 48 ++++++++++++++++++++++++++++++++++ composer.json | 2 +- 4 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/coverage.yml diff --git a/.coveralls.yml b/.coveralls.yml index 64139da3c..12ac320fb 100644 --- a/.coveralls.yml +++ b/.coveralls.yml @@ -1,4 +1,4 @@ -service_name: travis-ci +service_name: github-actions coverage_clover: - runner.xml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c29ac184..ac4f8ad91 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build +name: build on: push: @@ -17,7 +17,6 @@ jobs: php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Checkout source uses: actions/checkout@v2 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 000000000..40230593e --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,48 @@ +name: coverage + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + + workflow_dispatch: + +jobs: + coverage: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.4' + ini-values: memory_limit=2048M + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: coverage-composer-${{ hashFiles('**/composer.json') }} + restore-keys: coverage-composer- + + - name: Install dependencies + run: composer install --prefer-dist + + - name: Run useragent string tests + run: php bin/runner.php --coverage --show check + + - name: Run unit tests + run: vendor/bin/phpunit --coverage-clover phpunit.xml tests/unit + + - name: Upload coverage results to Coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: vendor/bin/php-coveralls -v \ No newline at end of file diff --git a/composer.json b/composer.json index 3e6d2faa1..333e74ee2 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "symfony/yaml": "~3.4 || ~4.0", "phpunit/php-code-coverage": "^5.0 || ^7.0", "phpunit/phpunit": "^6.0 || ^8.0", - "satooshi/php-coveralls": "^1.0", + "php-coveralls/php-coveralls": "^2.0", "icomefromthenet/reverse-regex" : "0.0.6.3", "squizlabs/php_codesniffer": "^3.5", "cache/array-adapter": "^1.1" From b800490c1f10461998143261e2e7865351135dd3 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:10:23 +0100 Subject: [PATCH 422/540] Update testrunner to use updated code coverage library --- .github/workflows/coverage.yml | 1 + bin/runner.php | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 40230593e..15451af0a 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -21,6 +21,7 @@ jobs: with: php-version: '7.4' ini-values: memory_limit=2048M + coverage: pcov - name: Get composer cache directory id: composer-cache diff --git a/bin/runner.php b/bin/runner.php index cec9dad93..da5353578 100755 --- a/bin/runner.php +++ b/bin/runner.php @@ -4,6 +4,8 @@ use WhichBrowser\Testrunner; use WhichBrowser\Tests; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Clover; set_error_handler(function ($errno, $errstr, $errfile, $errline) { // error was suppressed with the @-operator @@ -50,7 +52,7 @@ case 'check': if (in_array('coverage', $options)) { - $coverage = new PHP_CodeCoverage; + $coverage = new CodeCoverage; $coverage->filter()->addDirectoryToWhitelist('src'); $coverage->start('Testrunner'); } @@ -60,7 +62,7 @@ if (in_array('coverage', $options)) { $coverage->stop(); - $writer = new PHP_CodeCoverage_Report_Clover; + $writer = new Clover; $writer->process($coverage, 'runner.xml'); echo "\nCoverage saved as runner.xml\n\n"; From 6e32a2e89f83f1d45cd76a8a2b2876c8adbf4e72 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:16:36 +0100 Subject: [PATCH 423/540] Remove Travis integration --- .travis.yml | 41 ----------------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ed4b58cca..000000000 --- a/.travis.yml +++ /dev/null @@ -1,41 +0,0 @@ -sudo: false -dist: trusty -language: php - -php: - - 5.4 - - 5.5 - - 5.6 - - 7.0 - - 7.1 - - 7.2 - - 7.3 - - 7.4 - -before_script: - - composer self-update - - composer update --prefer-source - - # Install suggested cache/array-adapter on supported versions of PHP - - composer require --dev cache/array-adapter || true - - # Set memory limit to 2 MB - - echo "memory_limit=2048M" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - - # Disable X-debug on all but PHP 5.6 - - if [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then phpenv config-rm xdebug.ini; fi - -script: - - vendor/bin/phpcs --standard=PSR1,PSR2 -n src - - # Run tests (all except PHP 5.6) - - if [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then php bin/runner.php --show check; fi - - if [ "$TRAVIS_PHP_VERSION" != "5.6" ]; then vendor/bin/phpunit; fi - - # Run tests with coverage enabled (only PHP 5.6) - - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then php bin/runner.php --coverage --show check; fi - - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then vendor/bin/phpunit --coverage-clover phpunit.xml; fi - -after_script: - # Upload coverage to Coveralls.io - - if [ "$TRAVIS_PHP_VERSION" = "5.6" ]; then travis_retry php vendor/bin/coveralls -v; fi From df28109e3f720495acaf5fc524a207acd253b662 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:17:00 +0100 Subject: [PATCH 424/540] Update Readme --- .phpunit.result.cache | 1 + README.md | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .phpunit.result.cache diff --git a/.phpunit.result.cache b/.phpunit.result.cache new file mode 100644 index 000000000..19dff5a48 --- /dev/null +++ b/.phpunit.result.cache @@ -0,0 +1 @@ +C:37:"PHPUnit\Runner\DefaultTestResultCache":4606:{a:2:{s:7:"defects";a:1:{s:76:"WhichBrowserTest\CacheTest::testCreatingParserWithoutArgumentsAndCallAnalyse";i:5;}s:5:"times";a:80:{s:58:"WhichBrowserTest\AnalyserTest::testCreatingAnalyserGetData";d:0.036;s:58:"WhichBrowserTest\AnalyserTest::testCreatingAnalyserSetData";d:0.001;s:76:"WhichBrowserTest\CacheTest::testCreatingParserWithoutArgumentsAndCallAnalyse";d:0.01;s:42:"WhichBrowserTest\BrowserTest::testDefaults";d:0;s:39:"WhichBrowserTest\BrowserTest::testReset";d:0;s:41:"WhichBrowserTest\BrowserTest::testGetName";d:0;s:44:"WhichBrowserTest\BrowserTest::testGetVersion";d:0;s:44:"WhichBrowserTest\BrowserTest::testIsDetected";d:0.001;s:42:"WhichBrowserTest\BrowserTest::testIsFamily";d:0;s:44:"WhichBrowserTest\BrowserTest::testIsToString";d:0;s:49:"WhichBrowserTest\BrowserTest::testIdentifyVersion";d:0;s:41:"WhichBrowserTest\BrowserTest::testToArray";d:0;s:41:"WhichBrowserTest\DeviceTest::testDefaults";d:0;s:38:"WhichBrowserTest\DeviceTest::testEmpty";d:0;s:45:"WhichBrowserTest\DeviceTest::testWithDefaults";d:0;s:36:"WhichBrowserTest\DeviceTest::testSet";d:0;s:48:"WhichBrowserTest\DeviceTest::testSetIdenfication";d:0;s:38:"WhichBrowserTest\DeviceTest::testReset";d:0;s:50:"WhichBrowserTest\DeviceTest::testResetWithDefaults";d:0;s:46:"WhichBrowserTest\DeviceTest::testModelNoSeries";d:0;s:46:"WhichBrowserTest\DeviceTest::testSeriesNoModel";d:0;s:47:"WhichBrowserTest\DeviceTest::testModelAndSeries";d:0;s:40:"WhichBrowserTest\DeviceTest::testCarrier";d:0;s:53:"WhichBrowserTest\DeviceTest::testSetWithoutIdentified";d:0;s:41:"WhichBrowserTest\DeviceTest::testToString";d:0;s:41:"WhichBrowserTest\DeviceTest::testDetected";d:0;s:40:"WhichBrowserTest\DeviceTest::testToArray";d:0;s:40:"WhichBrowserTest\EngineTest::testGetName";d:0;s:43:"WhichBrowserTest\EngineTest::testGetVersion";d:0;s:43:"WhichBrowserTest\EngineTest::testIsDetected";d:0;s:43:"WhichBrowserTest\EngineTest::testIsToString";d:0;s:48:"WhichBrowserTest\EngineTest::testIdentifyVersion";d:0;s:40:"WhichBrowserTest\EngineTest::testToArray";d:0;s:40:"WhichBrowserTest\FamilyTest::testGetName";d:0;s:43:"WhichBrowserTest\FamilyTest::testGetVersion";d:0;s:43:"WhichBrowserTest\FamilyTest::testIsToString";d:0;s:40:"WhichBrowserTest\FamilyTest::testToArray";d:0;s:36:"WhichBrowserTest\MainTest::testEmpty";d:0;s:33:"WhichBrowserTest\MainTest::testIs";d:0;s:39:"WhichBrowserTest\MainTest::testIsDevice";d:0;s:41:"WhichBrowserTest\MainTest::testIsDetected";d:0;s:39:"WhichBrowserTest\MainTest::testIsMobile";d:0;s:37:"WhichBrowserTest\MainTest::testIsType";d:0;s:38:"WhichBrowserTest\MainTest::testGetType";d:0;s:39:"WhichBrowserTest\MainTest::testToString";d:0;s:43:"WhichBrowserTest\MainTest::testToJavaScript";d:0;s:38:"WhichBrowserTest\MainTest::testToArray";d:0;s:36:"WhichBrowserTest\OsTest::testGetName";d:0;s:39:"WhichBrowserTest\OsTest::testGetVersion";d:0;s:39:"WhichBrowserTest\OsTest::testIsDetected";d:0;s:37:"WhichBrowserTest\OsTest::testIsFamily";d:0;s:37:"WhichBrowserTest\OsTest::testToString";d:0;s:44:"WhichBrowserTest\OsTest::testIdentifyVersion";d:0;s:36:"WhichBrowserTest\OsTest::testToArray";d:0;s:42:"WhichBrowserTest\BaseTest::testConstructor";d:0;s:34:"WhichBrowserTest\BaseTest::testSet";d:0;s:43:"WhichBrowserTest\BaseTest::testToJavaScript";d:0;s:45:"WhichBrowserTest\NameVersionTest::testGetName";d:0;s:48:"WhichBrowserTest\NameVersionTest::testGetVersion";d:0;s:48:"WhichBrowserTest\NameVersionTest::testIsDetected";d:0;s:48:"WhichBrowserTest\NameVersionTest::testIsToString";d:0;s:53:"WhichBrowserTest\NameVersionTest::testIdentifyVersion";d:0;s:39:"WhichBrowserTest\UsingTest::testGetName";d:0;s:42:"WhichBrowserTest\UsingTest::testGetVersion";d:0;s:42:"WhichBrowserTest\UsingTest::testIsToString";d:0;s:39:"WhichBrowserTest\UsingTest::testToArray";d:0;s:36:"WhichBrowserTest\VersionTest::testIs";d:0;s:42:"WhichBrowserTest\VersionTest::testGetParts";d:0.001;s:42:"WhichBrowserTest\VersionTest::testGetMajor";d:0;s:42:"WhichBrowserTest\VersionTest::testGetMinor";d:0;s:42:"WhichBrowserTest\VersionTest::testGetPatch";d:0;s:41:"WhichBrowserTest\VersionTest::testToValue";d:0;s:41:"WhichBrowserTest\VersionTest::testToFloat";d:0;s:42:"WhichBrowserTest\VersionTest::testToNumber";d:0;s:42:"WhichBrowserTest\VersionTest::testToString";d:0;s:41:"WhichBrowserTest\VersionTest::testToArray";d:0;s:57:"WhichBrowserTest\ParserTest::testCreatingParserWithString";d:0.001;s:58:"WhichBrowserTest\ParserTest::testCreatingParserWithHeaders";d:0;s:58:"WhichBrowserTest\ParserTest::testCreatingParserWithOptions";d:0;s:77:"WhichBrowserTest\ParserTest::testCreatingParserWithoutArgumentsAndCallAnalyse";d:0.001;}}} \ No newline at end of file diff --git a/README.md b/README.md index 43b3e0c65..76132ead1 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ This is an extremely complicated and almost completely useless browser sniffing WhichBrowser/Parser-PHP ======================= -The PHP version of WhichBrowser for use on a server. Fully compatible with PHP 5.4 or higher, including PHP 7. +The PHP version of WhichBrowser for use on a server. Fully compatible with PHP 7.0 or higher, including PHP 8. -[![Build Status](https://travis-ci.org/WhichBrowser/Parser-PHP.svg?branch=master)](https://travis-ci.org/WhichBrowser/Parser-PHP) +![Build](https://github.com/WhichBrowser/Parser-PHP/workflows/Build/badge.svg) [![Coverage Status](https://coveralls.io/repos/WhichBrowser/Parser-PHP/badge.svg?branch=master&service=github)](https://coveralls.io/github/WhichBrowser/Parser-PHP?branch=master) [![License](https://poser.pugx.org/whichbrowser/parser/license)](https://packagist.org/packages/whichbrowser/parser) [![Latest Stable Version](https://poser.pugx.org/whichbrowser/parser/v/stable)](https://packagist.org/packages/whichbrowser/parser) @@ -58,7 +58,7 @@ The useragent header looks like Opera 11.10 on Linux, but we know it's Opera Min Requirements ----------------- -WhichBrowser requires with PHP 5.4 or higher and supports PHP 7. WhichBrowser is compatible with the PSR-4 autoloading standard and follows PSR-1 and PSR-2 coding style. +WhichBrowser requires with PHP 7.0 or higher and supports PHP 8. WhichBrowser is compatible with the PSR-4 autoloading standard and follows PSR-1 and PSR-2 coding style. How to install it From 4b6433c285eda51b10cc5b8181c574b93d197dcf Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:17:40 +0100 Subject: [PATCH 425/540] Delete .phpunit.result.cache --- .phpunit.result.cache | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .phpunit.result.cache diff --git a/.phpunit.result.cache b/.phpunit.result.cache deleted file mode 100644 index 19dff5a48..000000000 --- a/.phpunit.result.cache +++ /dev/null @@ -1 +0,0 @@ -C:37:"PHPUnit\Runner\DefaultTestResultCache":4606:{a:2:{s:7:"defects";a:1:{s:76:"WhichBrowserTest\CacheTest::testCreatingParserWithoutArgumentsAndCallAnalyse";i:5;}s:5:"times";a:80:{s:58:"WhichBrowserTest\AnalyserTest::testCreatingAnalyserGetData";d:0.036;s:58:"WhichBrowserTest\AnalyserTest::testCreatingAnalyserSetData";d:0.001;s:76:"WhichBrowserTest\CacheTest::testCreatingParserWithoutArgumentsAndCallAnalyse";d:0.01;s:42:"WhichBrowserTest\BrowserTest::testDefaults";d:0;s:39:"WhichBrowserTest\BrowserTest::testReset";d:0;s:41:"WhichBrowserTest\BrowserTest::testGetName";d:0;s:44:"WhichBrowserTest\BrowserTest::testGetVersion";d:0;s:44:"WhichBrowserTest\BrowserTest::testIsDetected";d:0.001;s:42:"WhichBrowserTest\BrowserTest::testIsFamily";d:0;s:44:"WhichBrowserTest\BrowserTest::testIsToString";d:0;s:49:"WhichBrowserTest\BrowserTest::testIdentifyVersion";d:0;s:41:"WhichBrowserTest\BrowserTest::testToArray";d:0;s:41:"WhichBrowserTest\DeviceTest::testDefaults";d:0;s:38:"WhichBrowserTest\DeviceTest::testEmpty";d:0;s:45:"WhichBrowserTest\DeviceTest::testWithDefaults";d:0;s:36:"WhichBrowserTest\DeviceTest::testSet";d:0;s:48:"WhichBrowserTest\DeviceTest::testSetIdenfication";d:0;s:38:"WhichBrowserTest\DeviceTest::testReset";d:0;s:50:"WhichBrowserTest\DeviceTest::testResetWithDefaults";d:0;s:46:"WhichBrowserTest\DeviceTest::testModelNoSeries";d:0;s:46:"WhichBrowserTest\DeviceTest::testSeriesNoModel";d:0;s:47:"WhichBrowserTest\DeviceTest::testModelAndSeries";d:0;s:40:"WhichBrowserTest\DeviceTest::testCarrier";d:0;s:53:"WhichBrowserTest\DeviceTest::testSetWithoutIdentified";d:0;s:41:"WhichBrowserTest\DeviceTest::testToString";d:0;s:41:"WhichBrowserTest\DeviceTest::testDetected";d:0;s:40:"WhichBrowserTest\DeviceTest::testToArray";d:0;s:40:"WhichBrowserTest\EngineTest::testGetName";d:0;s:43:"WhichBrowserTest\EngineTest::testGetVersion";d:0;s:43:"WhichBrowserTest\EngineTest::testIsDetected";d:0;s:43:"WhichBrowserTest\EngineTest::testIsToString";d:0;s:48:"WhichBrowserTest\EngineTest::testIdentifyVersion";d:0;s:40:"WhichBrowserTest\EngineTest::testToArray";d:0;s:40:"WhichBrowserTest\FamilyTest::testGetName";d:0;s:43:"WhichBrowserTest\FamilyTest::testGetVersion";d:0;s:43:"WhichBrowserTest\FamilyTest::testIsToString";d:0;s:40:"WhichBrowserTest\FamilyTest::testToArray";d:0;s:36:"WhichBrowserTest\MainTest::testEmpty";d:0;s:33:"WhichBrowserTest\MainTest::testIs";d:0;s:39:"WhichBrowserTest\MainTest::testIsDevice";d:0;s:41:"WhichBrowserTest\MainTest::testIsDetected";d:0;s:39:"WhichBrowserTest\MainTest::testIsMobile";d:0;s:37:"WhichBrowserTest\MainTest::testIsType";d:0;s:38:"WhichBrowserTest\MainTest::testGetType";d:0;s:39:"WhichBrowserTest\MainTest::testToString";d:0;s:43:"WhichBrowserTest\MainTest::testToJavaScript";d:0;s:38:"WhichBrowserTest\MainTest::testToArray";d:0;s:36:"WhichBrowserTest\OsTest::testGetName";d:0;s:39:"WhichBrowserTest\OsTest::testGetVersion";d:0;s:39:"WhichBrowserTest\OsTest::testIsDetected";d:0;s:37:"WhichBrowserTest\OsTest::testIsFamily";d:0;s:37:"WhichBrowserTest\OsTest::testToString";d:0;s:44:"WhichBrowserTest\OsTest::testIdentifyVersion";d:0;s:36:"WhichBrowserTest\OsTest::testToArray";d:0;s:42:"WhichBrowserTest\BaseTest::testConstructor";d:0;s:34:"WhichBrowserTest\BaseTest::testSet";d:0;s:43:"WhichBrowserTest\BaseTest::testToJavaScript";d:0;s:45:"WhichBrowserTest\NameVersionTest::testGetName";d:0;s:48:"WhichBrowserTest\NameVersionTest::testGetVersion";d:0;s:48:"WhichBrowserTest\NameVersionTest::testIsDetected";d:0;s:48:"WhichBrowserTest\NameVersionTest::testIsToString";d:0;s:53:"WhichBrowserTest\NameVersionTest::testIdentifyVersion";d:0;s:39:"WhichBrowserTest\UsingTest::testGetName";d:0;s:42:"WhichBrowserTest\UsingTest::testGetVersion";d:0;s:42:"WhichBrowserTest\UsingTest::testIsToString";d:0;s:39:"WhichBrowserTest\UsingTest::testToArray";d:0;s:36:"WhichBrowserTest\VersionTest::testIs";d:0;s:42:"WhichBrowserTest\VersionTest::testGetParts";d:0.001;s:42:"WhichBrowserTest\VersionTest::testGetMajor";d:0;s:42:"WhichBrowserTest\VersionTest::testGetMinor";d:0;s:42:"WhichBrowserTest\VersionTest::testGetPatch";d:0;s:41:"WhichBrowserTest\VersionTest::testToValue";d:0;s:41:"WhichBrowserTest\VersionTest::testToFloat";d:0;s:42:"WhichBrowserTest\VersionTest::testToNumber";d:0;s:42:"WhichBrowserTest\VersionTest::testToString";d:0;s:41:"WhichBrowserTest\VersionTest::testToArray";d:0;s:57:"WhichBrowserTest\ParserTest::testCreatingParserWithString";d:0.001;s:58:"WhichBrowserTest\ParserTest::testCreatingParserWithHeaders";d:0;s:58:"WhichBrowserTest\ParserTest::testCreatingParserWithOptions";d:0;s:77:"WhichBrowserTest\ParserTest::testCreatingParserWithoutArgumentsAndCallAnalyse";d:0.001;}}} \ No newline at end of file From 53720bb896113f9e86cea5739d51cd93a71ad251 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:24:06 +0100 Subject: [PATCH 426/540] Ignore .github directory for packagist --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 51332b197..d0dfdb46b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,5 +2,5 @@ /.coveralls.yml export-ignore /.gitattributes export-ignore /.gitignore export-ignore -/.travis.yml export-ignore +/.github export-ignore /phpunit.xml export-ignore From 6c7c51a8f7c012d441c494b57047db41c35c56a6 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:24:47 +0100 Subject: [PATCH 427/540] Update Chrome --- data/browsers-chrome.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index 3b2b139dc..7cf0fab7a 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -88,6 +88,9 @@ '81.0.4044' => 'stable', '83.0.4103' => 'stable', '84.0.4147' => 'stable', + '85.0.4183' => 'stable', + '86.0.4240' => 'stable', + '87.0.4280' => 'stable', ]; Chrome::$MOBILE = [ @@ -149,4 +152,7 @@ '80.0.3987' => 'stable', '83.0.4103' => 'stable', '84.0.4147' => 'stable', + '85.0.4183' => 'stable', + '86.0.4240' => 'stable', + '87.0.4280' => 'stable', ]; From 93d83b8379f3bbb0b67b8ca89e84af6e863e1232 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sat, 2 Jan 2021 22:27:00 +0100 Subject: [PATCH 428/540] Rebase testsuite --- tests/data/desktop/browser-chrome.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/desktop/browser-chrome.yaml b/tests/data/desktop/browser-chrome.yaml index c802d489f..60eeba7da 100644 --- a/tests/data/desktop/browser-chrome.yaml +++ b/tests/data/desktop/browser-chrome.yaml @@ -64,5 +64,5 @@ readable: 'Chrome 10 on Linux' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36' - result: { browser: { name: Chrome, version: 87.0.4280.67, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } - readable: 'Chrome Dev 87.0.4280.67 on macOS Big Sur 11.0' + result: { browser: { name: Chrome, version: '87', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chrome 87 on macOS Big Sur 11.0' From 3c0701be24be6234bfff340e5163490d8425cb67 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 14:37:40 +0100 Subject: [PATCH 429/540] macOS 10.16 is macOS 11 --- src/Analyser/Derive.php | 4 ---- src/Analyser/Header/Useragent/Os.php | 4 ++++ tests/data/desktop/browser-safari.yaml | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Analyser/Derive.php b/src/Analyser/Derive.php index bc1071664..241a7b6cf 100644 --- a/src/Analyser/Derive.php +++ b/src/Analyser/Derive.php @@ -485,10 +485,6 @@ private function deriveBasedOnOperatingSystem() $this->data->os->version->nickname = 'Catalina'; } - if ($this->data->os->version->is('10.16')) { - $this->data->os->version->nickname = 'Big Sur'; - } - if ($this->data->os->version->is('11.0')) { $this->data->os->version->nickname = 'Big Sur'; } diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 7b13e384f..de1c817f5 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -106,6 +106,10 @@ private function detectDarwin($ua) $this->data->os->version = new Version([ 'value' => str_replace(',', '.', $match[1]), 'details' => 2 ]); } + if ($this->data->os->version && $this->data->os->version->is('10.16')) { + $this->data->os->version = new Version([ 'value' => '11.0', 'details' => 2 ]); + } + $this->data->device->type = Constants\DeviceType::DESKTOP; } diff --git a/tests/data/desktop/browser-safari.yaml b/tests/data/desktop/browser-safari.yaml index e689ffe7b..7fef8ac90 100644 --- a/tests/data/desktop/browser-safari.yaml +++ b/tests/data/desktop/browser-safari.yaml @@ -226,3 +226,11 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15' readable: 'Safari 13.0 on macOS Catalina 10.15' result: { browser: { name: Safari, version: '13.0', type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15' + readable: 'Safari 14.0 on macOS Big Sur 11.0' + result: { browser: { name: Safari, version: '14.0', type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15' + readable: 'Safari 14.0.1 on macOS Catalina 10.15' + result: { browser: { name: Safari, version: 14.0.1, type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From ab5dd8179352d616d16b898b8ccea278cea0dfa6 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 14:58:14 +0100 Subject: [PATCH 430/540] Ignore phpunit result cache --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index eaf5aa6c2..67a980b20 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ node_modules/* humbug* build/* .vscode -.DS_Store +.DS_Store +.phpunit.result.cache \ No newline at end of file From b699e473d160d1d868144e0c065f7886229c068a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 14:58:32 +0100 Subject: [PATCH 431/540] Add missing `CloudFlare` crawlers to bot list (closing PR #564) --- data/applications-bots.php | 4 ++++ tests/data/bots/generic.yaml | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/data/applications-bots.php b/data/applications-bots.php index 213a5e1ad..e45ac89cb 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -66,6 +66,10 @@ [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], [ 'name' => 'Cloudflare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], + [ 'name' => 'Cloudflare AMP', 'id' => 'cloudflare', 'regexp' => '/Cloudflare-AMP\/([0-9.]*)/u' ], + [ 'name' => 'Cloudflare Diagnostics', 'id' => 'cloudflare', 'regexp' => '/Cloudflare Diagnostics/u' ], + [ 'name' => 'Cloudflare Diagnostics', 'id' => 'cloudflare', 'regexp' => '/Cloudflare-Diagnostics/u' ], + [ 'name' => 'Cloudflare SpeedTest', 'id' => 'cloudflare', 'regexp' => '/Cloudflare SpeedTest\/([0-9.]*)/u' ], [ 'name' => 'Comodo', 'id' => 'comodo', 'regexp' => '/Comodo Spider ([0-9.]*)/u' ], [ 'name' => 'CommaFeed', 'id' => 'commafeed', 'regexp' => '/CommaFeed\/([0-9.]*)/u' ], [ 'name' => 'Common Crawl Bot', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 05db7ee8a..c87eebd0a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -514,6 +514,18 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) AppleWebKit/534.34' readable: 'Cloudflare Always Online 1.0' result: { browser: { name: 'Cloudflare Always Online', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/79.0.3945.130 Safari/537.36 (compatible; Cloudflare SpeedTest/1.0; +https://blog.cloudflare.com/new-speed-page/)' + readable: 'Cloudflare SpeedTest 1.0' + result: { browser: { name: 'Cloudflare SpeedTest', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Cloudflare Diagnostics' + readable: 'Cloudflare Diagnostics' + result: { browser: { name: 'Cloudflare Diagnostics' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Cloudflare-AMP/1.0; +https://amp.cloudflare.com/doc/fetcher.html) AppleWebKit/534.34' + readable: 'Cloudflare AMP 1.0' + result: { browser: { name: 'Cloudflare AMP', version: '1.0' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)' readable: 'Moz 1.1' From fcedb1e913653a0e3c3813ec39c03d424c530d3c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:02:11 +0100 Subject: [PATCH 432/540] Add `Gowikibot` search engine to bots list (Closing PR #583) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index e45ac89cb..63df82c18 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -143,6 +143,7 @@ [ 'name' => 'Google Wireless Transcoder', 'id' => 'google', 'regexp' => '/Google Wireless Transcoder/u' ], [ 'name' => 'Google Play Newsstand', 'id' => 'google', 'regexp' => '/GoogleProducer/u' ], [ 'name' => 'Google YouTube Sample', 'id' => 'google', 'regexp' => '/Google-YouTubeSample\/([0-9.]*)/u' ], + [ 'name' => 'Gowikibot', 'id' => 'gowiki', 'regexp' => '/Gowikibot\/([0-9.]*)/u' ], [ 'name' => 'Grammarly', 'id' => 'grammarly', 'regexp' => '/Grammarly\/([0-9.]*)/u' ], [ 'name' => 'Grub', 'id' => 'grub', 'regexp' => '/grub-client-([0-9.]*)/u' ], [ 'name' => 'Hatena Antenna', 'id' => 'hatena', 'regexp' => '/Hatena Antenna\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 471cee5e2..4878626f4 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index c87eebd0a..a0791c8c3 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -742,3 +742,7 @@ headers: 'User-Agent: AppleNewsBot' readable: 'Apple News Bot' result: { browser: { name: 'Apple News Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Gowikibot/1.0; +http://www.gowikibot.com)' + readable: 'Gowikibot 1.0' + result: { browser: { name: Gowikibot, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 2d5d8e404431eceac764781838e284e182bdb6c9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:04:56 +0100 Subject: [PATCH 433/540] Add `TinEye` image search engine to bots list (closing PR #582) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 63df82c18..dcb324bbc 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -250,6 +250,8 @@ [ 'name' => 'Twisted PageGetter', 'id' => 'twisted', 'regexp' => '/Twisted PageGetter/u' ], [ 'name' => 'Twitterbot', 'id' => 'twitter', 'regexp' => '/Twitterbot\/([0-9.]*)/u' ], [ 'name' => 'Tiny Tiny RSS', 'id' => 'tiny', 'regexp' => '/Tiny Tiny RSS\/([0-9.]*)/u' ], + [ 'name' => 'TinEye Bot', 'id' => 'tineye', 'regexp' => '/TinEye\/([0-9.]*)/u' ], + [ 'name' => 'TinEye Bot', 'id' => 'tineye', 'regexp' => '/TinEye-bot\/([0-9.]*)/u' ], [ 'name' => 'TLSProber', 'id' => 'tlsprober', 'regexp' => '/TLSProber\/([0-9.]*)/u' ], [ 'name' => 'TrustedSite', 'id' => 'trustedsite', 'regexp' => '/TrustedSite/u' ], [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 4878626f4..9f510df38 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index a0791c8c3..5caadf68b 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -745,4 +745,12 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Gowikibot/1.0; +http://www.gowikibot.com)' readable: 'Gowikibot 1.0' - result: { browser: { name: Gowikibot, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Gowikibot, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 TinEye/1.0 (via http://www.tineye.com/)' + readable: 'TinEye Bot 1.0' + result: { browser: { name: 'TinEye Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; TinEye-bot/1.31; +http://www.tineye.com/crawler.html)' + readable: 'TinEye Bot 1.31' + result: { browser: { name: 'TinEye Bot', version: '1.31' }, device: { type: bot } } \ No newline at end of file From ffa4b21712b114d5b4930d989fe4ca5fa6074f6a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:06:56 +0100 Subject: [PATCH 434/540] Add `Picsearch Bot` missing search engine regex (closing PR #581) --- data/applications-bots.php | 4 +++- tests/data/bots/generic.yaml | 14 +++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index dcb324bbc..ce7f2f28e 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -201,7 +201,9 @@ [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], [ 'name' => 'PagesInventory ', 'id' => 'pages', 'regexp' => '/PagesInventory/u' ], - [ 'name' => 'Picsearch bot', 'id' => 'psbot', 'regexp' => '/psbot-page/u' ], + [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot\/([0-9.]*)/u' ], + [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot-page/u' ], + [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot-image/u' ], [ 'name' => 'Pingdom', 'id' => 'pingdom', 'regexp' => '/Pingdom.com_bot_version_([0-9.]*)/u' ], [ 'name' => 'Pinterest', 'id' => 'pinterest', 'regexp' => '/Pinterest\/([0-9.]+)( \(+|$)/u' ], [ 'name' => 'Pocket', 'id' => 'pocket', 'regexp' => '/PocketImageCache\/([0-9.]+)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 5caadf68b..4ce0fdb30 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -753,4 +753,16 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; TinEye-bot/1.31; +http://www.tineye.com/crawler.html)' readable: 'TinEye Bot 1.31' - result: { browser: { name: 'TinEye Bot', version: '1.31' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'TinEye Bot', version: '1.31' }, device: { type: bot } } +- + headers: 'User-Agent: psbot/0.1 (+http://www.picsearch.com/bot.html)' + readable: 'Picsearch Bot 0.1' + result: { browser: { name: 'Picsearch Bot', version: '0.1' }, device: { type: bot } } +- + headers: 'User-Agent: psbot-page (+http://www.picsearch.com/bot.html)' + readable: 'Picsearch Bot' + result: { browser: { name: 'Picsearch Bot' }, device: { type: bot } } +- + headers: 'User-Agent: psbot-image (+http://www.picsearch.com/bot.html)' + readable: 'Picsearch Bot' + result: { browser: { name: 'Picsearch Bot' }, device: { type: bot } } \ No newline at end of file From bd099c3b4be756f70027d594bbd574c395e5ad10 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:08:42 +0100 Subject: [PATCH 435/540] Add `IndeedBot` a job search engine (closing PR #580) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index ce7f2f28e..ce31bbda8 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -158,6 +158,7 @@ [ 'name' => 'iAsk Spider', 'id' => 'spider', 'regexp' => '/iaskspider2/u' ], [ 'name' => 'Ichiro', 'id' => 'ichiro', 'regexp' => '/ichiro\/([0-9.]*)/u' ], [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], + [ 'name' => 'IndeedBot', 'id' => 'indeed', 'regexp' => '/IndeedBot ([0-9.]*)/u' ], [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], [ 'name' => 'KakaoTalk Bot', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 9f510df38..8516a53b3 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 4ce0fdb30..47d0f37a4 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -765,4 +765,8 @@ - headers: 'User-Agent: psbot-image (+http://www.picsearch.com/bot.html)' readable: 'Picsearch Bot' - result: { browser: { name: 'Picsearch Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Picsearch Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 (IndeedBot 1.1)' + readable: 'IndeedBot 1.1' + result: { browser: { name: IndeedBot, version: '1.1' }, device: { type: bot } } \ No newline at end of file From 5455c06885695a571d21548d2c78e19c88bff3b3 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:10:57 +0100 Subject: [PATCH 436/540] Add `YioopBot` custom search engine to bots list (closing PR #579) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index ce31bbda8..c14a975cc 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -322,6 +322,7 @@ [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\.so\/([0-9.]*)/u' ], [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], + [ 'name' => 'Yioop Bot', 'id' => 'yioop', 'regexp' => '/YioopBot/u' ], /* Generic bots */ [ 'name' => 'Apache Httpd', 'id' => 'httpclient', 'regexp' => '/Apache-HttpClient(?:\/([0-9.]*))?/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 8516a53b3..0541f437e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 47d0f37a4..49d5c64b2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -769,4 +769,8 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 (IndeedBot 1.1)' readable: 'IndeedBot 1.1' - result: { browser: { name: IndeedBot, version: '1.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: IndeedBot, version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; YioopBot; +https://www.yioop.com/bot.php)' + readable: 'Yioop Bot' + result: { browser: { name: 'Yioop Bot' }, device: { type: bot } } \ No newline at end of file From d5ad2cedb037fb0df31e7a8512564539a6c83fb9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:14:13 +0100 Subject: [PATCH 437/540] Add `DuckDuckGo` crawlers to bot list (closing PR #569) --- data/applications-bots.php | 3 +++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 14 +++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index c14a975cc..7b236808d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -84,6 +84,9 @@ [ 'name' => 'Domain Stats Bot', 'id' => 'domainstats', 'regexp' => '/DomainStatsBot\/([0-9.]*)/u' ], [ 'name' => 'Discord', 'id' => 'discord', 'regexp' => '/Discordbot\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], + [ 'name' => 'DuckDuckGo Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckBot\/([0-9.]*)/u' ], + [ 'name' => 'DuckDuckGo Https Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckBot-Https\/([0-9.]*)/u' ], + [ 'name' => 'DuckDuckGo Favicons Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckGo-Favicons-Bot\/([0-9.]*)/u' ], [ 'name' => 'Embed PHP Library', 'id' => 'embed', 'regexp' => '/Embed PHP library/iu' ], [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 0541f437e..9f0677c0d 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 49d5c64b2..220bb2bf2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -773,4 +773,16 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; YioopBot; +https://www.yioop.com/bot.php)' readable: 'Yioop Bot' - result: { browser: { name: 'Yioop Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Yioop Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; DuckDuckBot-Https/1.1; https://duckduckgo.com/duckduckbot)' + readable: 'DuckDuckGo Https Bot 1.1' + result: { browser: { name: 'DuckDuckGo Https Bot', version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: DuckDuckBot/1.1; (+http://duckduckgo.com/duckduckbot.html)' + readable: 'DuckDuckGo Bot 1.1' + result: { browser: { name: 'DuckDuckGo Bot', version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com)' + readable: 'DuckDuckGo Favicons Bot 1.0' + result: { browser: { name: 'DuckDuckGo Favicons Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From a8514f2ccf8d2ed8dd7a5acb51234dd07ee4834a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:17:32 +0100 Subject: [PATCH 438/540] Add `Node Fetch` a popular bot (closing PR #537) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 7b236808d..f1c70499f 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -334,6 +334,7 @@ [ 'name' => 'Apache Nutch', 'id' => 'nutch', 'regexp' => '/Nutch(?:CVS|Org)\/([0-9.]*)/u' ], [ 'name' => 'Apache Synapse', 'id' => 'synapse', 'regexp' => '/compatible; Synapse/u' ], [ 'name' => 'Borland Delphi', 'id' => 'indy', 'regexp' => '/Indy Library/u' ], + [ 'name' => 'Node Fetch', 'id' => 'node', 'regexp' => '/node-fetch\/([0-9.]*)/u' ], [ 'name' => 'Wget', 'id' => 'wget', 'regexp' => '/Wget\/([0-9.]*)/u' ], [ 'name' => 'Curl', 'id' => 'curl', 'regexp' => '/^curl\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 9f0677c0d..3069fda7d 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 220bb2bf2..538ca1521 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -785,4 +785,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com)' readable: 'DuckDuckGo Favicons Bot 1.0' - result: { browser: { name: 'DuckDuckGo Favicons Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'DuckDuckGo Favicons Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch)' + readable: 'Node Fetch 1.0' + result: { browser: { name: 'Node Fetch', version: '1.0' }, device: { type: bot } } \ No newline at end of file From efffe033df41eb448cf76faa2e7deeb05649211c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:22:58 +0100 Subject: [PATCH 439/540] Add `Go Http Client` a very popular bot (closing PR #535) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index f1c70499f..a31e8843b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -334,6 +334,8 @@ [ 'name' => 'Apache Nutch', 'id' => 'nutch', 'regexp' => '/Nutch(?:CVS|Org)\/([0-9.]*)/u' ], [ 'name' => 'Apache Synapse', 'id' => 'synapse', 'regexp' => '/compatible; Synapse/u' ], [ 'name' => 'Borland Delphi', 'id' => 'indy', 'regexp' => '/Indy Library/u' ], + [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/Go-http-client\/([0-9.]*)/u' ], + [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/go-httpclient v([0-9.]*)/u' ], [ 'name' => 'Node Fetch', 'id' => 'node', 'regexp' => '/node-fetch\/([0-9.]*)/u' ], [ 'name' => 'Wget', 'id' => 'wget', 'regexp' => '/Wget\/([0-9.]*)/u' ], [ 'name' => 'Curl', 'id' => 'curl', 'regexp' => '/^curl\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 3069fda7d..190b2d196 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 538ca1521..ea2047e79 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -789,4 +789,12 @@ - headers: 'User-Agent: node-fetch/1.0 (+https://github.com/bitinn/node-fetch)' readable: 'Node Fetch 1.0' - result: { browser: { name: 'Node Fetch', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Node Fetch', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Go-http-client/1.1' + readable: 'Go Http Client 1.1' + result: { browser: { name: 'Go Http Client', version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: go-httpclient v0.5.1' + readable: 'Go Http Client 0.5.1' + result: { browser: { name: 'Go Http Client', version: '0.5.1' }, device: { type: bot } } \ No newline at end of file From d82bfcf1ca80cedaa6b4ba7a11febab420c4a1ee Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:34:15 +0100 Subject: [PATCH 440/540] Add `British Library` to bot list (closing PR #556) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index a31e8843b..40a38a4c1 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -57,6 +57,7 @@ [ 'name' => 'Blogtrottr', 'id' => 'blogtrot', 'regexp' => '/Blogtrottr\/([0-9.]*)/u' ], [ 'name' => 'Blogshares', 'id' => 'blogshares', 'regexp' => '/Blogshares/u' ], [ 'name' => 'BoardReader', 'id' => 'boardreader', 'regexp' => '/BoardReader\/([0-9.]*)/u' ], + [ 'name' => 'British Library', 'id' => 'lddc', 'regexp' => '/uk_lddc_bot\/([0-9.]*)/u' ], [ 'name' => 'Browsershots', 'id' => 'browsershots', 'regexp' => '/Browsershots/u' ], [ 'name' => 'BUbiNG', 'id' => 'bubing', 'regexp' => '/BUbiNG/u' ], [ 'name' => 'Buck', 'id' => 'buck', 'regexp' => '/Buck\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 190b2d196..5d94610a3 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index ea2047e79..a17a2a7cf 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -797,4 +797,8 @@ - headers: 'User-Agent: go-httpclient v0.5.1' readable: 'Go Http Client 0.5.1' - result: { browser: { name: 'Go Http Client', version: '0.5.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Go Http Client', version: '0.5.1' }, device: { type: bot } } +- + headers: 'User-Agent: bl.uk_lddc_bot/3.4.0-20200518 (+http://www.bl.uk/aboutus/legaldeposit/websites/websites/faqswebmaster/index.html)' + readable: 'British Library 3.4.0' + result: { browser: { name: 'British Library', version: '3.4.0' }, device: { type: bot } } \ No newline at end of file From afaa93a5fc36d33332b45cb2db250b6c29eb2500 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:36:10 +0100 Subject: [PATCH 441/540] Add `Sputnik` Search Engine Bots to bot lists (closing PR #559) --- data/applications-bots.php | 3 +++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 14 +++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 40a38a4c1..fa52c0220 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -251,6 +251,9 @@ [ 'name' => 'SPDYCheck', 'id' => 'spdycheck', 'regexp' => '/SPDYCheck SPDY Protocol Tester/iu' ], [ 'name' => 'Spinn3r', 'id' => 'spinn', 'regexp' => '/Spinn3r ([0-9.]*)/iu' ], [ 'name' => 'Spiderlytics', 'id' => 'spider', 'regexp' => '/Spiderlytics\/([0-9.]*)/iu' ], + [ 'name' => 'Sputnik Favicon Bot', 'id' => 'sputnik', 'regexp' => '/SputnikFaviconBot\/([0-9.]*)/iu' ], + [ 'name' => 'Sputnik Image Bot', 'id' => 'sputnik', 'regexp' => '/SputnikImageBot\/([0-9.]*)/iu' ], + [ 'name' => 'Sputnik Bot', 'id' => 'sputnik', 'regexp' => '/SputnikBot\/([0-9.]*)/iu' ], [ 'name' => 'StatusCake Error Detector', 'id' => 'detector', 'regexp' => '/StatusCake Error Detector/iu' ], [ 'name' => 'Summify', 'id' => 'summify', 'regexp' => '/Summify\/([0-9.]*)/u' ], [ 'name' => 'TelegramBot', 'id' => 'telegram', 'regexp' => '/TelegramBot/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5d94610a3..d174b8382 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index a17a2a7cf..d5bf01804 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -801,4 +801,16 @@ - headers: 'User-Agent: bl.uk_lddc_bot/3.4.0-20200518 (+http://www.bl.uk/aboutus/legaldeposit/websites/websites/faqswebmaster/index.html)' readable: 'British Library 3.4.0' - result: { browser: { name: 'British Library', version: '3.4.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'British Library', version: '3.4.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; SputnikFaviconBot/1.2; +http://corp.sputnik.ru/webmaster)' + readable: 'Sputnik Favicon Bot 1.2' + result: { browser: { name: 'Sputnik Favicon Bot', version: '1.2' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; SputnikBot/2.3; +http://corp.sputnik.ru/webmaster)' + readable: 'Sputnik Bot 2.3' + result: { browser: { name: 'Sputnik Bot', version: '2.3' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; SputnikImageBot/2.3; +http://corp.sputnik.ru/webmaster)' + readable: 'Sputnik Image Bot 2.3' + result: { browser: { name: 'Sputnik Image Bot', version: '2.3' }, device: { type: bot } } \ No newline at end of file From c027842f3aa67bb42c584f523bc8983003ed3058 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:38:44 +0100 Subject: [PATCH 442/540] Add `DMCA` crawling service to the bots list (closes PR #570) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index fa52c0220..497ca1148 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -85,6 +85,7 @@ [ 'name' => 'Domain Stats Bot', 'id' => 'domainstats', 'regexp' => '/DomainStatsBot\/([0-9.]*)/u' ], [ 'name' => 'Discord', 'id' => 'discord', 'regexp' => '/Discordbot\/([0-9.]*)/u' ], [ 'name' => 'Domain Re-Animator', 'id' => 'domain', 'regexp' => '/Domain Re-Animator Bot/u' ], + [ 'name' => 'DMCA', 'id' => 'dmca', 'regexp' => '/DMCA\.com Page Protection Crawling Service/u' ], [ 'name' => 'DuckDuckGo Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckBot\/([0-9.]*)/u' ], [ 'name' => 'DuckDuckGo Https Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckBot-Https\/([0-9.]*)/u' ], [ 'name' => 'DuckDuckGo Favicons Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckGo-Favicons-Bot\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index d174b8382..cdabaae40 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index d5bf01804..359f09ace 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -813,4 +813,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; SputnikImageBot/2.3; +http://corp.sputnik.ru/webmaster)' readable: 'Sputnik Image Bot 2.3' - result: { browser: { name: 'Sputnik Image Bot', version: '2.3' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Sputnik Image Bot', version: '2.3' }, device: { type: bot } } +- + headers: 'User-Agent: DMCA.com Page Protection Crawling Service' + readable: 'DMCA' + result: { browser: { name: DMCA }, device: { type: bot } } \ No newline at end of file From fb90bc9138d5dabe27a8452d1de4187816ea4341 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:57:04 +0100 Subject: [PATCH 443/540] Add `Zemu` to bots list (closing PR #541) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 497ca1148..de1b42d72 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -331,6 +331,7 @@ [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], [ 'name' => 'Yioop Bot', 'id' => 'yioop', 'regexp' => '/YioopBot/u' ], + [ 'name' => 'ZmEu', 'id' => 'zmeu', 'regexp' => '/ZmEu/u' ], /* Generic bots */ [ 'name' => 'Apache Httpd', 'id' => 'httpclient', 'regexp' => '/Apache-HttpClient(?:\/([0-9.]*))?/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index cdabaae40..38626ef6b 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 359f09ace..69db61ea1 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -817,4 +817,8 @@ - headers: 'User-Agent: DMCA.com Page Protection Crawling Service' readable: 'DMCA' - result: { browser: { name: DMCA }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: DMCA }, device: { type: bot } } +- + headers: 'User-Agent: Made by ZmEu @ WhiteHat Team – http://www.whitehat.ro' + readable: 'ZmEu' + result: { browser: { name: ZmEu }, device: { type: bot } } \ No newline at end of file From 52ba4ac58a2a496dca55cc88a3092ef392f90835 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 15:58:52 +0100 Subject: [PATCH 444/540] Add `netEstate NE Crawler` to bot list (closing PR #557) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index de1b42d72..8d6bdfa32 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -194,6 +194,7 @@ [ 'name' => 'Netcraft Web Server Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft Web Server Survey/u' ], [ 'name' => 'Netcraft SSL Server Survey Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft SSL Server Survey/u' ], [ 'name' => 'Netcraft Bot', 'id' => 'netcraft', 'regexp' => '/Netcraft/iu' ], + [ 'name' => 'netEstate NE Crawler', 'id' => 'netestate', 'regexp' => '/netEstate NE Crawler/u' ], [ 'name' => 'Netvibes', 'id' => 'netvibes', 'regexp' => '/Netvibes/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Favicon Fetcher/u' ], [ 'name' => 'NewsBlur', 'id' => 'newsblur', 'regexp' => '/NewsBlur Feed Fetcher/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 38626ef6b..5dabc85aa 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 69db61ea1..d7b2769f7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -821,4 +821,8 @@ - headers: 'User-Agent: Made by ZmEu @ WhiteHat Team – http://www.whitehat.ro' readable: 'ZmEu' - result: { browser: { name: ZmEu }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: ZmEu }, device: { type: bot } } +- + headers: 'User-Agent: netEstate NE Crawler (+http://www.website-datenbank.de/)' + readable: 'netEstate NE Crawler' + result: { browser: { name: 'netEstate NE Crawler' }, device: { type: bot } } \ No newline at end of file From da0d1e044b1830c1b0cbef46ee7ececba4a28a87 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 16:01:20 +0100 Subject: [PATCH 445/540] Add `Gofeed` to bot list (closingPR #554) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 8d6bdfa32..5a56a5408 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -122,6 +122,7 @@ [ 'name' => 'Genieo Web Filter', 'id' => 'genieo', 'regexp' => '/Genieo\/([0-9.]*)/u' ], [ 'name' => 'GNIP', 'id' => 'fetchor', 'regexp' => '/UnwindFetchor\/([0-9.]*)/u' ], [ 'name' => 'Gocrawl', 'id' => 'google', 'regexp' => '/Googlebot \(gocrawl v([0-9.]*)\)/u' ], + [ 'name' => 'Gofeed', 'id' => 'gofeed', 'regexp' => '/Gofeed\/([0-9.]+)/u' ], [ 'name' => 'GomezAgent', 'id' => 'gomez', 'regexp' => '/GomezAgent ([0-9.]+)/u' ], [ 'name' => 'Goo', 'id' => 'ichiro', 'regexp' => '/ichiro\/mobile goo/u' ], [ 'name' => 'Goo Blog Search', 'id' => 'gooblog', 'regexp' => '/gooblog\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5dabc85aa..7fdca33cf 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index d7b2769f7..d48bbc1df 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -825,4 +825,8 @@ - headers: 'User-Agent: netEstate NE Crawler (+http://www.website-datenbank.de/)' readable: 'netEstate NE Crawler' - result: { browser: { name: 'netEstate NE Crawler' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'netEstate NE Crawler' }, device: { type: bot } } +- + headers: 'User-Agent: Gofeed/1.0' + readable: 'Gofeed 1.0' + result: { browser: { name: Gofeed, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 1cf9b598ed238af6203f20a735a09f637130daef Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 3 Jan 2021 16:03:15 +0100 Subject: [PATCH 446/540] Add `IstellaBot` I believe it is an Italian search engine - to the bots list (closing PR #571) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 5a56a5408..0c3bbb98a 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -165,6 +165,7 @@ [ 'name' => 'Ichiro', 'id' => 'ichiro', 'regexp' => '/ichiro\/([0-9.]*)/u' ], [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], [ 'name' => 'IndeedBot', 'id' => 'indeed', 'regexp' => '/IndeedBot ([0-9.]*)/u' ], + [ 'name' => 'Istellabot', 'id' => 'istellabot', 'regexp' => '/istellabot\/t\.([0-9.]*)/u' ], [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], [ 'name' => 'KakaoTalk Bot', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 7fdca33cf..7f34cd57e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index d48bbc1df..761842c3c 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -829,4 +829,8 @@ - headers: 'User-Agent: Gofeed/1.0' readable: 'Gofeed 1.0' - result: { browser: { name: Gofeed, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Gofeed, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: istellabot/t.1.13' + readable: 'Istellabot 1.13' + result: { browser: { name: Istellabot, version: '1.13' }, device: { type: bot } } \ No newline at end of file From 80bcc17a6e838e9e2be4bb9283c6201cc68ee135 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:31:11 +0100 Subject: [PATCH 447/540] Add `YisouSpider` to bot lists (closes PR #552) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 0c3bbb98a..8a0d61c74 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -334,6 +334,7 @@ [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], [ 'name' => 'Yioop Bot', 'id' => 'yioop', 'regexp' => '/YioopBot/u' ], + [ 'name' => 'Yisou Spider', 'id' => 'yisou', 'regexp' => '/YisouSpider\/?([0-9.]*)/u' ], [ 'name' => 'ZmEu', 'id' => 'zmeu', 'regexp' => '/ZmEu/u' ], /* Generic bots */ diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 7f34cd57e..cf6ff4b2d 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 761842c3c..a97566d78 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -833,4 +833,12 @@ - headers: 'User-Agent: istellabot/t.1.13' readable: 'Istellabot 1.13' - result: { browser: { name: Istellabot, version: '1.13' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Istellabot, version: '1.13' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 YisouSpider/5.0 Safari/537.36' + readable: 'Yisou Spider 5.0' + result: { browser: { name: 'Yisou Spider', version: '5.0' }, device: { type: bot } } +- + headers: 'User-Agent: YisouSpider' + readable: 'Yisou Spider' + result: { browser: { name: 'Yisou Spider' }, device: { type: bot } } \ No newline at end of file From ac6299b2d632650ab54d2bdbfafcce27af202ae5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:32:46 +0100 Subject: [PATCH 448/540] Add `Letsearch` Russian search engine to bots list (closing PR #577) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 8a0d61c74..cc7f44289 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -171,6 +171,7 @@ [ 'name' => 'KakaoTalk Bot', 'id' => 'kakao', 'regexp' => '/kakaotalk-scrap\/([0-9.]*)/u' ], [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], + [ 'name' => 'LetsearchBot', 'id' => 'letsearch', 'regexp' => '/LetsearchBot\/([0-9.]*)/u' ], [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], [ 'name' => 'Linkpad Bot', 'id' => 'linkpad', 'regexp' => '/LinkpadBot\/([0-9.]*)/u' ], [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdexbot-mobile\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index cf6ff4b2d..44c5e3384 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index a97566d78..fe0525521 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -841,4 +841,8 @@ - headers: 'User-Agent: YisouSpider' readable: 'Yisou Spider' - result: { browser: { name: 'Yisou Spider' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Yisou Spider' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; LetsearchBot/1.0; +https://letsearch.ru/bots)' + readable: 'LetsearchBot 1.0' + result: { browser: { name: LetsearchBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 5cdf50bcf2f1e434865be7d0188156337988cc70 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:34:18 +0100 Subject: [PATCH 449/540] Add `LookSeek` a search engine that looks straight out of the 90's (closes PR #578) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index cc7f44289..efd380ce2 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -177,6 +177,7 @@ [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdexbot-mobile\/([0-9.]*)/u' ], [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdex.com\/v([0-9.]*)/u' ], [ 'name' => 'Livedoor', 'id' => 'livedoor', 'regexp' => '/livedoor/u' ], + [ 'name' => 'LookSeek', 'id' => 'seeker', 'regexp' => '/Seeker v\.([0-9.]*)/u' ], [ 'name' => 'LTX71', 'id' => 'ltx71', 'regexp' => '/ltx71/u' ], [ 'name' => 'Magpie RSS', 'id' => 'magpie', 'regexp' => '/MagpieRSS\/([0-9.]*)/u' ], [ 'name' => 'Majestic MJ12 Bot', 'id' => 'mj12bot', 'regexp' => '/MJ12bot\/v([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 44c5e3384..341a33b90 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index fe0525521..572feb46b 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -845,4 +845,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; LetsearchBot/1.0; +https://letsearch.ru/bots)' readable: 'LetsearchBot 1.0' - result: { browser: { name: LetsearchBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: LetsearchBot, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Seeker v.1 http://LookSeek.com/seeker/' + readable: 'LookSeek 1' + result: { browser: { name: LookSeek, version: '1' }, device: { type: bot } } \ No newline at end of file From 4293566dabba86528b79f015f027d85f14db892d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:35:52 +0100 Subject: [PATCH 450/540] Add `Vuhuv` turkish search engine to bot list (closes PR #576) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index efd380ce2..9f8a64953 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -276,6 +276,7 @@ [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], [ 'name' => 'Vodafone mCrawler', 'id' => 'mcrawler', 'regexp' => '/Vodafone mCrawler/u' ], + [ 'name' => 'VuhuvBot', 'id' => 'vuhuv', 'regexp' => '/vuhuvBot\/([0-9.]*)/u' ], [ 'name' => 'W3Bot', 'id' => 'w3bot', 'regexp' => '/W3Bot ([0-9.]*)/u' ], [ 'name' => 'W3C CSS Validator', 'id' => 'jigsaw', 'regexp' => '/Jigsaw\/([0-9.]*)/u' ], [ 'name' => 'W3C Internationalization Checker', 'id' => 'w3c', 'regexp' => '/W3C_I18n-Checker\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 341a33b90..1d1fc83fa 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 572feb46b..f98367918 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -849,4 +849,8 @@ - headers: 'User-Agent: Seeker v.1 http://LookSeek.com/seeker/' readable: 'LookSeek 1' - result: { browser: { name: LookSeek, version: '1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: LookSeek, version: '1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; vuhuvBot/1.0; +http://vuhuv.com/bot.html)' + readable: 'VuhuvBot 1.0' + result: { browser: { name: VuhuvBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 97ef1abfcad5147fa986035880984e8d6607da78 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:37:39 +0100 Subject: [PATCH 451/540] Add `Seekport` finland search engine to bot list (closes PR #575) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 9f8a64953..40d2f417d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -232,6 +232,7 @@ [ 'name' => 'Scrapy', 'id' => 'scrapy', 'regexp' => '/Scrapy\/([0-9.]*)/u' ], [ 'name' => 'ScreenerBot', 'id' => 'crawler', 'regexp' => '/ScreenerBot Crawler Beta ([0-9.]*)/u' ], [ 'name' => 'Search Atlas Bot', 'id' => 'searchatlas', 'regexp' => '/SearchAtlas/iu' ], + [ 'name' => 'Seekport Crawler', 'id' => 'seekport', 'regexp' => '/Seekport Crawler/u' ], [ 'name' => 'Semrush', 'id' => 'semrush', 'regexp' => '/SemrushBot\/([0-9.]*)/u' ], [ 'name' => 'Serp Stat', 'id' => 'serpstat', 'regexp' => '/serpstatbot\/([0-9.]*)/u' ], [ 'name' => 'SEOkicks Bot', 'id' => 'seokicks', 'regexp' => '/SEOkicks/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 1d1fc83fa..99ba6cb8e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index f98367918..e80063fe6 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -853,4 +853,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; vuhuvBot/1.0; +http://vuhuv.com/bot.html)' readable: 'VuhuvBot 1.0' - result: { browser: { name: VuhuvBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: VuhuvBot, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Seekport Crawler; http://seekport.com/)' + readable: 'Seekport Crawler' + result: { browser: { name: 'Seekport Crawler' }, device: { type: bot } } \ No newline at end of file From ecba5ed69238eecc8ccb65e0c8b8a54aae112db5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:39:35 +0100 Subject: [PATCH 452/540] Add `Coccoc` Vietnamese Search Engine to bots list (closes PR #574) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 40d2f417d..e400af770 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -71,6 +71,8 @@ [ 'name' => 'Cloudflare Diagnostics', 'id' => 'cloudflare', 'regexp' => '/Cloudflare Diagnostics/u' ], [ 'name' => 'Cloudflare Diagnostics', 'id' => 'cloudflare', 'regexp' => '/Cloudflare-Diagnostics/u' ], [ 'name' => 'Cloudflare SpeedTest', 'id' => 'cloudflare', 'regexp' => '/Cloudflare SpeedTest\/([0-9.]*)/u' ], + [ 'name' => 'Coccocbot Web', 'id' => 'coccoc', 'regexp' => '/coccocbot-web\/([0-9.]*)/u' ], + [ 'name' => 'Coccocbot Image', 'id' => 'coccoc', 'regexp' => '/coccocbot-image\/([0-9.]*)/u' ], [ 'name' => 'Comodo', 'id' => 'comodo', 'regexp' => '/Comodo Spider ([0-9.]*)/u' ], [ 'name' => 'CommaFeed', 'id' => 'commafeed', 'regexp' => '/CommaFeed\/([0-9.]*)/u' ], [ 'name' => 'Common Crawl Bot', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 99ba6cb8e..1271c08ce 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e80063fe6..53110aee2 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -857,4 +857,12 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Seekport Crawler; http://seekport.com/)' readable: 'Seekport Crawler' - result: { browser: { name: 'Seekport Crawler' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Seekport Crawler' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; coccocbot-web/1.0; +http://help.coccoc.com/searchengine)' + readable: 'Coccocbot Web 1.0' + result: { browser: { name: 'Coccocbot Web', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine)' + readable: 'Coccocbot Image 1.0' + result: { browser: { name: 'Coccocbot Image', version: '1.0' }, device: { type: bot } } \ No newline at end of file From 7fa16cb102cb19d82b87de392370e7be37ef8c28 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:40:51 +0100 Subject: [PATCH 453/540] Add `Clarabot` to bots list (closes PR #551) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index e400af770..0c394e217 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -65,6 +65,7 @@ [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], [ 'name' => 'Bytespider', 'id' => 'bytespider', 'regexp' => '/Bytespider/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], + [ 'name' => 'Clarabot', 'id' => 'clarabot', 'regexp' => '/Clarabot\/([0-9.]*)/u' ], [ 'name' => 'Cliqzbot', 'id' => 'cliqz', 'regexp' => '/Cliqzbot\/([0-9.]*)/u' ], [ 'name' => 'Cloudflare Always Online', 'id' => 'cloudflare', 'regexp' => '/CloudFlare-AlwaysOnline\/([0-9.]*)/u' ], [ 'name' => 'Cloudflare AMP', 'id' => 'cloudflare', 'regexp' => '/Cloudflare-AMP\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 1271c08ce..d715282f3 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 53110aee2..0b42be263 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -865,4 +865,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; coccocbot-image/1.0; +http://help.coccoc.com/searchengine)' readable: 'Coccocbot Image 1.0' - result: { browser: { name: 'Coccocbot Image', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Coccocbot Image', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Clarabot/1.4; +http://www.clarabot.info/bots)' + readable: 'Clarabot 1.4' + result: { browser: { name: Clarabot, version: '1.4' }, device: { type: bot } } \ No newline at end of file From c7bfb8e53aef046f8cc4973571d7047958958431 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:42:47 +0100 Subject: [PATCH 454/540] Add `MojeekBot` to bots list (closes PR #550) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 0c394e217..5c4679022 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -192,6 +192,7 @@ [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], + [ 'name' => 'MojeekBot', 'id' => 'mojeek', 'regexp' => '/MojeekBot\/([0-9.]*)/u' ], [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], [ 'name' => 'Moz', 'id' => 'dotbot', 'regexp' => '/DotBot\/([0-9.]*)/i' ], [ 'name' => 'Moz', 'id' => 'rogerbot', 'regexp' => '/rogerbot\/([0-9.]*)/i' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index d715282f3..0498fd225 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 0b42be263..734b6e1d8 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -869,4 +869,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Clarabot/1.4; +http://www.clarabot.info/bots)' readable: 'Clarabot 1.4' - result: { browser: { name: Clarabot, version: '1.4' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Clarabot, version: '1.4' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; MojeekBot/0.9; +https://www.mojeek.com/bot.html)' + readable: 'MojeekBot 0.9' + result: { browser: { name: MojeekBot, version: '0.9' }, device: { type: bot } } \ No newline at end of file From 5c993a3e143def6cd2c3928b91f038add4a30b57 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:44:30 +0100 Subject: [PATCH 455/540] Add `Xenu Link Sleuth` crawler to bots list (closes PR #549) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 5c4679022..eb4dc93ff 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -301,6 +301,7 @@ [ 'name' => 'WordPress.com', 'id' => 'wordpress', 'regexp' => '/WordPress\.com; http/u' ], [ 'name' => 'WordPress Jetpack', 'id' => 'wordpress', 'regexp' => '/Jetpack by WordPress\.com/u' ], [ 'name' => 'WWW Mechanize', 'id' => 'mechanize', 'regexp' => '/WWW-Mechanize\/([0-9.]*)/u' ], + [ 'name' => 'Xenu Link Sleuth', 'id' => 'xenu', 'regexp' => '/Xenu Link Sleuth\/([0-9.]*)/u' ], [ 'name' => 'Xerka WebBot', 'id' => 'xerka', 'regexp' => '/Xerka WebBot v([0-9.]*)/u' ], [ 'name' => 'XML Sitemaps Generator', 'id' => 'sitemap', 'regexp' => '/XML-Sitemaps\/([0-9.]*)/u' ], [ 'name' => 'XMLSitemapGenerator', 'id' => 'sitemap', 'regexp' => '/XmlSitemapGenerator/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 0498fd225..1d7b689a1 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 734b6e1d8..18b922450 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -873,4 +873,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; MojeekBot/0.9; +https://www.mojeek.com/bot.html)' readable: 'MojeekBot 0.9' - result: { browser: { name: MojeekBot, version: '0.9' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: MojeekBot, version: '0.9' }, device: { type: bot } } +- + headers: 'User-Agent: Xenu Link Sleuth/1.3.9 beta' + readable: 'Xenu Link Sleuth 1.3.9' + result: { browser: { name: 'Xenu Link Sleuth', version: '1.3.9' }, device: { type: bot } } \ No newline at end of file From 3a505660653538a10687f7520c4b962e12ca99d6 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:46:54 +0100 Subject: [PATCH 456/540] Add `Adsbot` to bots list (closes PR #548) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index eb4dc93ff..bc99ae9cd 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -12,6 +12,7 @@ [ 'name' => 'Adaxas', 'id' => 'adaxas', 'regexp' => '/Adaxas Spider/u' ], [ 'name' => 'AddThis.com', 'id' => 'addthis', 'regexp' => '/AddThis.com/u' ], [ 'name' => 'ADmantX', 'id' => 'admantx', 'regexp' => '/ADmantX Platform Semantic Analyzer/u' ], + [ 'name' => 'Adsbot', 'id' => 'adsbot', 'regexp' => '/Adsbot\/([0-9.]*)/u' ], // Not to be mixed up with Google Adsbot [ 'name' => 'Ahrefs Feeds Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\.Feeds v([0-9.]*)/u' ], [ 'name' => 'Ahrefs Site Audit Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsSiteAudit\/([0-9.]*)/u' ], [ 'name' => 'Ahrefs News Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)\; News/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 1d7b689a1..e8ba29c5e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 18b922450..01276c44d 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -877,4 +877,8 @@ - headers: 'User-Agent: Xenu Link Sleuth/1.3.9 beta' readable: 'Xenu Link Sleuth 1.3.9' - result: { browser: { name: 'Xenu Link Sleuth', version: '1.3.9' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Xenu Link Sleuth', version: '1.3.9' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Adsbot/3.1)' + readable: 'Adsbot 3.1' + result: { browser: { name: Adsbot, version: '3.1' }, device: { type: bot } } \ No newline at end of file From 1575d4162376b2675046979a204aaf5f4ce7b64c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:49:49 +0100 Subject: [PATCH 457/540] Add `Barkrowler` to bots list (closes PR #547) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index bc99ae9cd..f8412b04b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -38,6 +38,7 @@ [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/baiduspider-mobile-gate/u' ], [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/\+http:\/\/www.baidu.com\/search\/spider.html/u' ], [ 'name' => 'Baiduspider', 'id' => 'baidu', 'regexp' => '/BaiduImagespider/u' ], + [ 'name' => 'Barkrowler', 'id' => 'barkrowler', 'regexp' => '/Barkrowler\/([0-9.]*)/u' ], [ 'name' => 'BazQux', 'id' => 'bazqux', 'regexp' => '/BazQux\/([0-9.]*)/u' ], [ 'name' => 'Bing', 'id' => 'bingbot', 'regexp' => '/bingbot\/([0-9.]*)/u' ], [ 'name' => 'Bing', 'id' => 'msnbot', 'regexp' => '/msnbot\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index e8ba29c5e..0d1034b4c 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 01276c44d..84a40d9f9 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -881,4 +881,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Adsbot/3.1)' readable: 'Adsbot 3.1' - result: { browser: { name: Adsbot, version: '3.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Adsbot, version: '3.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Barkrowler/0.9; +https://babbar.tech/crawler)' + readable: 'Barkrowler 0.9' + result: { browser: { name: Barkrowler, version: '0.9' }, device: { type: bot } } \ No newline at end of file From eae6bd124253665019c7544be8217a7375f59606 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:52:14 +0100 Subject: [PATCH 458/540] Add `VelenPublicWebCrawler` to bots list (closes PR #546) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index f8412b04b..28fb191d4 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -279,6 +279,7 @@ [ 'name' => 'TrustedSite', 'id' => 'trustedsite', 'regexp' => '/TrustedSite/u' ], [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], + [ 'name' => 'VelenPublicWebCrawler', 'id' => 'velen', 'regexp' => '/VelenPublicWebCrawler\/([0-9.]*)/u' ], [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat\.co OpenGraph Parser/u' ], [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 0d1034b4c..2207a017d 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 84a40d9f9..d64e17c2c 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -885,4 +885,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Barkrowler/0.9; +https://babbar.tech/crawler)' readable: 'Barkrowler 0.9' - result: { browser: { name: Barkrowler, version: '0.9' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Barkrowler, version: '0.9' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; VelenPublicWebCrawler/1.0; +https://velen.io)' + readable: 'VelenPublicWebCrawler 1.0' + result: { browser: { name: VelenPublicWebCrawler, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 10570364debb2b70a9aaa43900fab7786c22615d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:54:18 +0100 Subject: [PATCH 459/540] Add `Evc-batch` to bots list (closes PR #545) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 28fb191d4..5ac153970 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -95,6 +95,7 @@ [ 'name' => 'DuckDuckGo Https Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckBot-Https\/([0-9.]*)/u' ], [ 'name' => 'DuckDuckGo Favicons Bot', 'id' => 'duckduck', 'regexp' => '/DuckDuckGo-Favicons-Bot\/([0-9.]*)/u' ], [ 'name' => 'Embed PHP Library', 'id' => 'embed', 'regexp' => '/Embed PHP library/iu' ], + [ 'name' => 'Evc-batch', 'id' => 'evc', 'regexp' => '/evc-batch\/([0-9.]*)/u' ], [ 'name' => 'Exabot Thumbnails', 'id' => 'exabot', 'regexp' => '/Exabot-Thumbnails/u' ], [ 'name' => 'ExactSeek', 'id' => 'exactseek', 'regexp' => '/ExactSeek Crawler/u' ], [ 'name' => 'Ezooms Crawler', 'id' => 'ezooms', 'regexp' => '/Ezooms\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 2207a017d..50a0aceed 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index d64e17c2c..92f9a37c5 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -889,4 +889,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; VelenPublicWebCrawler/1.0; +https://velen.io)' readable: 'VelenPublicWebCrawler 1.0' - result: { browser: { name: VelenPublicWebCrawler, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: VelenPublicWebCrawler, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; evc-batch/2.0)' + readable: 'Evc-batch 2.0' + result: { browser: { name: Evc-batch, version: '2.0' }, device: { type: bot } } \ No newline at end of file From 6628eac7dcaf3fd81c1b67fe0c6fac0089c0cd36 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 12:57:51 +0100 Subject: [PATCH 460/540] Add `PetalBot` to bots list (closes PR #544) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 14 +++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 5ac153970..0161a4ae6 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -219,6 +219,8 @@ [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], [ 'name' => 'PagesInventory ', 'id' => 'pages', 'regexp' => '/PagesInventory/u' ], + [ 'name' => 'Petal Bot', 'id' => 'petal', 'regexp' => '/PetalBot/u' ], + [ 'name' => 'Petal Bot', 'id' => 'aspiegel', 'regexp' => '/Aspiegel/u' ], [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot\/([0-9.]*)/u' ], [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot-page/u' ], [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot-image/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 50a0aceed..9ce76ef58 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 92f9a37c5..0f15b5607 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -893,4 +893,16 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; evc-batch/2.0)' readable: 'Evc-batch 2.0' - result: { browser: { name: Evc-batch, version: '2.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Evc-batch, version: '2.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; AspiegelBot)' + readable: 'Petal Bot' + result: { browser: { name: 'Petal Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://aspiegel.com/petalbot)' + readable: 'Petal Bot' + result: { browser: { name: 'Petal Bot' }, device: { type: bot } } +- + headers: 'User-Agent: (compatible;PetalBot;+https://aspiegel.com/petalbot)' + readable: 'Petal Bot' + result: { browser: { name: 'Petal Bot' }, device: { type: bot } } \ No newline at end of file From 6be42cf3c18ba12123e414bb000c73b27ea69b0b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:00:46 +0100 Subject: [PATCH 461/540] Add `Iodc` to bot list (closes PR #543) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 0161a4ae6..d9da7feca 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -171,6 +171,7 @@ [ 'name' => 'Ichiro', 'id' => 'ichiro', 'regexp' => '/ichiro\/([0-9.]*)/u' ], [ 'name' => 'Internet Archive', 'id' => 'archive', 'regexp' => '/InternetArchive\/([0-9.]*)/u' ], [ 'name' => 'IndeedBot', 'id' => 'indeed', 'regexp' => '/IndeedBot ([0-9.]*)/u' ], + [ 'name' => 'Iodc', 'id' => 'iodc', 'regexp' => '/iodc\.co\.uk/u' ], [ 'name' => 'Istellabot', 'id' => 'istellabot', 'regexp' => '/istellabot\/t\.([0-9.]*)/u' ], [ 'name' => 'JamesBOT', 'id' => 'crawler', 'regexp' => '/James BOT - WebCrawler/u' ], [ 'name' => 'Jayde', 'id' => 'crawler', 'regexp' => '/Jayde Crawler./u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 9ce76ef58..5aa4e8381 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 0f15b5607..dc237d7fe 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -905,4 +905,12 @@ - headers: 'User-Agent: (compatible;PetalBot;+https://aspiegel.com/petalbot)' readable: 'Petal Bot' - result: { browser: { name: 'Petal Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Petal Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (iodc; odysseus 24842-138-041020155614-449; +https://iodc.co.uk)' + readable: 'Iodc' + result: { browser: { name: Iodc }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; IODC-Odysseus Survey 46182-100-271115114504-101; +https://iodc.co.uk)' + readable: 'Iodc' + result: { browser: { name: Iodc }, device: { type: bot } } \ No newline at end of file From c9e17be0d9ec651e74bf25ad9ce58ae5ea91bbcc Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:02:43 +0100 Subject: [PATCH 462/540] Add `Datanyze` to bots list (closes PR #542) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index d9da7feca..2d808b755 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -81,6 +81,7 @@ [ 'name' => 'Common Crawl Bot', 'id' => 'cbot', 'regexp' => '/CCBot\/([0-9.]*)/u' ], [ 'name' => 'Common Crawl Research Bot', 'id' => 'cresearch', 'regexp' => '/CCResearchBot\/([0-9.]*)/u' ], [ 'name' => 'Data Hotel Watchdog', 'id' => 'watchdog', 'regexp' => '/Data-Hotel-Watchdog\/([0-9.]*)/u' ], + [ 'name' => 'Datanyze', 'id' => 'datanyze', 'regexp' => '/Datanyze/u' ], [ 'name' => 'DataparkSearch', 'id' => 'datasearch', 'regexp' => '/DataparkSearch\/([0-9.]*)/u' ], [ 'name' => 'Dataprovider Bot', 'id' => 'dataprovider', 'regexp' => '/Dataprovider/u' ], [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5aa4e8381..d67b25d81 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index dc237d7fe..844e3db03 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -913,4 +913,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; IODC-Odysseus Survey 46182-100-271115114504-101; +https://iodc.co.uk)' readable: 'Iodc' - result: { browser: { name: Iodc }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Iodc }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Datanyze; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' + readable: 'Datanyze' + result: { browser: { name: Datanyze }, device: { type: bot } } \ No newline at end of file From 7e80a62c0b648309ad30bd0f21d0bddf5cf57fe1 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:05:30 +0100 Subject: [PATCH 463/540] Add `OkHttp` bot (closes PR #534) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 2d808b755..b073db2d2 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -363,6 +363,7 @@ [ 'name' => 'Borland Delphi', 'id' => 'indy', 'regexp' => '/Indy Library/u' ], [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/Go-http-client\/([0-9.]*)/u' ], [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/go-httpclient v([0-9.]*)/u' ], + [ 'name' => 'OkHttp', 'id' => 'okhttp', 'regexp' => '/okhttp\/([0-9.]*)/u' ], [ 'name' => 'Node Fetch', 'id' => 'node', 'regexp' => '/node-fetch\/([0-9.]*)/u' ], [ 'name' => 'Wget', 'id' => 'wget', 'regexp' => '/Wget\/([0-9.]*)/u' ], [ 'name' => 'Curl', 'id' => 'curl', 'regexp' => '/^curl\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index d67b25d81..ed725a08e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 844e3db03..cbe85e0c6 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -917,4 +917,12 @@ - headers: 'User-Agent: Mozilla/5.0 (X11; Datanyze; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' readable: 'Datanyze' - result: { browser: { name: Datanyze }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Datanyze }, device: { type: bot } } +- + headers: 'User-Agent: okhttp/3.4.1' + readable: 'OkHttp 3.4.1' + result: { browser: { name: OkHttp, version: '3.4.1' }, device: { type: bot } } +- + headers: 'User-Agent: AbtestCenter-okhttp/1.0' + readable: 'OkHttp 1.0' + result: { browser: { name: OkHttp, version: '1.0' }, device: { type: bot } } \ No newline at end of file From 1a86bab7ac45464844c8dd7210443670d71ecaf6 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:09:50 +0100 Subject: [PATCH 464/540] Add `Skype` social media platform (closes PR #518) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index b073db2d2..9087384a3 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -255,6 +255,7 @@ [ 'name' => 'SilverReader', 'id' => 'reader', 'regexp' => '/SilverReader\/([0-9.]*)/u' ], [ 'name' => 'SimplePie', 'id' => 'simplepie', 'regexp' => '/SimplePie\/([0-9.]*)/u' ], [ 'name' => 'Site24x7', 'id' => 'site24', 'regexp' => '/Site24x7/u' ], + [ 'name' => 'Skype Url Preview', 'id' => 'skype', 'regexp' => '/SkypeUriPreview Preview\/([0-9.]*)/u' ], [ 'name' => 'Slackbot Link Checker', 'id' => 'slack', 'regexp' => '/Slackbot-LinkExpanding ([0-9.]*)/u' ], [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/sogou spider/u' ], [ 'name' => 'Sogou Web Spider', 'id' => 'sogou', 'regexp' => '/Sogou pic spider\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index ed725a08e..923c5b2e7 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index cbe85e0c6..6432d72b5 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -925,4 +925,8 @@ - headers: 'User-Agent: AbtestCenter-okhttp/1.0' readable: 'OkHttp 1.0' - result: { browser: { name: OkHttp, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: OkHttp, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5' + readable: 'Skype Url Preview 0.5' + result: { browser: { name: 'Skype Url Preview', version: '0.5' }, device: { type: bot } } From df96bff172674cb2655c6f3f3b6f5d4ef800f0d4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:10:13 +0100 Subject: [PATCH 465/540] Rebase test files --- tests/data/bots/generic.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 6432d72b5..cb6a9d314 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -743,7 +743,7 @@ readable: 'Apple News Bot' result: { browser: { name: 'Apple News Bot' }, device: { type: bot } } - - headers: 'User-Agent: Mozilla/5.0 (compatible; Gowikibot/1.0; +http://www.gowikibot.com)' + headers: 'User-Agent: Mozilla/5.0 (compatible; Gowikibot/1.0; +http://www.gowikibot.com)' readable: 'Gowikibot 1.0' result: { browser: { name: Gowikibot, version: '1.0' }, device: { type: bot } } - @@ -797,11 +797,11 @@ - headers: 'User-Agent: go-httpclient v0.5.1' readable: 'Go Http Client 0.5.1' - result: { browser: { name: 'Go Http Client', version: '0.5.1' }, device: { type: bot } } + result: { browser: { name: 'Go Http Client', version: 0.5.1 }, device: { type: bot } } - headers: 'User-Agent: bl.uk_lddc_bot/3.4.0-20200518 (+http://www.bl.uk/aboutus/legaldeposit/websites/websites/faqswebmaster/index.html)' readable: 'British Library 3.4.0' - result: { browser: { name: 'British Library', version: '3.4.0' }, device: { type: bot } } + result: { browser: { name: 'British Library', version: 3.4.0 }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; SputnikFaviconBot/1.2; +http://corp.sputnik.ru/webmaster)' readable: 'Sputnik Favicon Bot 1.2' @@ -816,11 +816,11 @@ result: { browser: { name: 'Sputnik Image Bot', version: '2.3' }, device: { type: bot } } - headers: 'User-Agent: DMCA.com Page Protection Crawling Service' - readable: 'DMCA' + readable: DMCA result: { browser: { name: DMCA }, device: { type: bot } } - headers: 'User-Agent: Made by ZmEu @ WhiteHat Team – http://www.whitehat.ro' - readable: 'ZmEu' + readable: ZmEu result: { browser: { name: ZmEu }, device: { type: bot } } - headers: 'User-Agent: netEstate NE Crawler (+http://www.website-datenbank.de/)' @@ -877,7 +877,7 @@ - headers: 'User-Agent: Xenu Link Sleuth/1.3.9 beta' readable: 'Xenu Link Sleuth 1.3.9' - result: { browser: { name: 'Xenu Link Sleuth', version: '1.3.9' }, device: { type: bot } } + result: { browser: { name: 'Xenu Link Sleuth', version: 1.3.9 }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; Adsbot/3.1)' readable: 'Adsbot 3.1' @@ -908,20 +908,20 @@ result: { browser: { name: 'Petal Bot' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (iodc; odysseus 24842-138-041020155614-449; +https://iodc.co.uk)' - readable: 'Iodc' + readable: Iodc result: { browser: { name: Iodc }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; IODC-Odysseus Survey 46182-100-271115114504-101; +https://iodc.co.uk)' - readable: 'Iodc' + readable: Iodc result: { browser: { name: Iodc }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (X11; Datanyze; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36' - readable: 'Datanyze' + readable: Datanyze result: { browser: { name: Datanyze }, device: { type: bot } } - headers: 'User-Agent: okhttp/3.4.1' readable: 'OkHttp 3.4.1' - result: { browser: { name: OkHttp, version: '3.4.1' }, device: { type: bot } } + result: { browser: { name: OkHttp, version: 3.4.1 }, device: { type: bot } } - headers: 'User-Agent: AbtestCenter-okhttp/1.0' readable: 'OkHttp 1.0' From ed27e0d78d12af7c5832882d3c1ed7fa83771d26 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:12:30 +0100 Subject: [PATCH 466/540] Add `BuzzSumo` a popular social media / seo platform (closes PR #525) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 9087384a3..70ca9e04a 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -65,6 +65,7 @@ [ 'name' => 'Buck', 'id' => 'buck', 'regexp' => '/Buck\/([0-9.]*)/u' ], [ 'name' => 'BuiltWith', 'id' => 'builtwith', 'regexp' => '/BuiltWith\/([0-9.]*)/u' ], [ 'name' => 'Butterfly', 'id' => 'butterfly', 'regexp' => '/Butterfly\/([0-9.]*)/u' ], + [ 'name' => 'BuzzSumo', 'id' => 'buzzsumo', 'regexp' => '/buzzsumo\.com/u' ], [ 'name' => 'Bytespider', 'id' => 'bytespider', 'regexp' => '/Bytespider/u' ], [ 'name' => 'CiteSeerX', 'id' => 'heritrix', 'regexp' => '/heritrix\/([0-9.]*)/u' ], [ 'name' => 'Clarabot', 'id' => 'clarabot', 'regexp' => '/Clarabot\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 923c5b2e7..911f19ab2 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index cb6a9d314..15cc0e901 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -930,3 +930,7 @@ headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) SkypeUriPreview Preview/0.5' readable: 'Skype Url Preview 0.5' result: { browser: { name: 'Skype Url Preview', version: '0.5' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; BuzzSumo; +http://www.buzzsumo.com/bot.html)' + readable: 'BuzzSumo' + result: { browser: { name: BuzzSumo }, device: { type: bot } } \ No newline at end of file From 20789c5abd2c112183eab63848821ac9881538e7 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:14:17 +0100 Subject: [PATCH 467/540] Add `Hootsuite` a popular social media / seo platform (closes PR #524) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 70ca9e04a..2afdfea37 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -165,6 +165,8 @@ [ 'name' => 'Hatena Pagetitle', 'id' => 'hatena', 'regexp' => '/Hatena Pagetitle Agent\/([0-9.]*)/u' ], [ 'name' => 'HeartRails Capture', 'id' => 'capture', 'regexp' => '/HeartRails_Capture\/([0-9.]*)/u' ], [ 'name' => 'Heureka Feed', 'id' => 'heureka', 'regexp' => '/Heurekabot-Feed/u' ], + [ 'name' => 'HootSuite', 'id' => 'hootsuite', 'regexp' => '/Hootsuite-WebFeed\/([0-9\.]*)/u' ], + [ 'name' => 'HootSuite', 'id' => 'hootsuite', 'regexp' => '/HootSuite Image proxy/u' ], [ 'name' => 'htdig', 'id' => 'htdig', 'regexp' => '/htdig\/([0-9.]*)/u' ], [ 'name' => 'HTTPMon', 'id' => 'httpmon', 'regexp' => '/HTTPMon\/([0-9.]*)/u' ], [ 'name' => 'HubPages', 'id' => 'hubpages', 'regexp' => '/HubPages V([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 911f19ab2..1f2942230 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 15cc0e901..92100bd47 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -933,4 +933,12 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; BuzzSumo; +http://www.buzzsumo.com/bot.html)' readable: 'BuzzSumo' - result: { browser: { name: BuzzSumo }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: BuzzSumo }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; U; Hootsuite-WebFeed/1.0; mailto:abuse@hootsuite.com)' + readable: 'HootSuite 1.0' + result: { browser: { name: HootSuite, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: HootSuite Image proxy (hosting@hootsuite.com)' + readable: 'HootSuite' + result: { browser: { name: HootSuite }, device: { type: bot } } \ No newline at end of file From b74928863cd1b9cb71ac0b5fa78858f388ed14f5 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:16:03 +0100 Subject: [PATCH 468/540] Add `Minds` crypto social media platform (closes PR #523) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 2afdfea37..6e76cbc85 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -199,6 +199,7 @@ [ 'name' => 'Mega Index Bot', 'id' => 'megaindex', 'regexp' => '/MegaIndex\.ru\/([0-9.]*)/u' ], [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], + [ 'name' => 'Minds', 'id' => 'minds', 'regexp' => '/MindsMediaProxy\/([0-9\.]*)/u' ], [ 'name' => 'MnoGoSearch', 'id' => 'mnogo', 'regexp' => '/MnoGoSearch\/([0-9.]*)/u' ], [ 'name' => 'MojeekBot', 'id' => 'mojeek', 'regexp' => '/MojeekBot\/([0-9.]*)/u' ], [ 'name' => 'Monitor.us', 'id' => 'monitor', 'regexp' => '/monitor.us/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 1f2942230..e68b6471a 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 92100bd47..9ab6f53b7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -941,4 +941,8 @@ - headers: 'User-Agent: HootSuite Image proxy (hosting@hootsuite.com)' readable: 'HootSuite' - result: { browser: { name: HootSuite }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: HootSuite }, device: { type: bot } } +- + headers: 'User-Agent: MindsMediaProxy/3.0 (+http://www.minds.com/)' + readable: 'Minds 3.0' + result: { browser: { name: Minds, version: '3.0' }, device: { type: bot } } \ No newline at end of file From 568522bd8d1dc1256919a3c96d80d0a0b80bb87f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:17:27 +0100 Subject: [PATCH 469/540] Fixed extra space in PagesInventory --- data/applications-bots.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 6e76cbc85..187a6a398 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -224,7 +224,7 @@ [ 'name' => 'OpenWebSpider', 'id' => 'spider', 'regexp' => '/OpenWebSpider v([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], - [ 'name' => 'PagesInventory ', 'id' => 'pages', 'regexp' => '/PagesInventory/u' ], + [ 'name' => 'PagesInventory', 'id' => 'pages', 'regexp' => '/PagesInventory/u' ], [ 'name' => 'Petal Bot', 'id' => 'petal', 'regexp' => '/PetalBot/u' ], [ 'name' => 'Petal Bot', 'id' => 'aspiegel', 'regexp' => '/Aspiegel/u' ], [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot\/([0-9.]*)/u' ], From 79639fd2a332cb75d76800f9badb0a7ef33655d3 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:18:21 +0100 Subject: [PATCH 470/540] Add `Plurk` social media platform (closes PR #522) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 187a6a398..9a2671340 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -232,6 +232,7 @@ [ 'name' => 'Picsearch Bot', 'id' => 'psbot', 'regexp' => '/psbot-image/u' ], [ 'name' => 'Pingdom', 'id' => 'pingdom', 'regexp' => '/Pingdom.com_bot_version_([0-9.]*)/u' ], [ 'name' => 'Pinterest', 'id' => 'pinterest', 'regexp' => '/Pinterest\/([0-9.]+)( \(+|$)/u' ], + [ 'name' => 'Plurk Bot', 'id' => 'plurk', 'regexp' => '/PlurkBot\/([0-9\.]*)/u' ], [ 'name' => 'Pocket', 'id' => 'pocket', 'regexp' => '/PocketImageCache\/([0-9.]+)/u' ], [ 'name' => 'Pocket', 'id' => 'pocket', 'regexp' => '/PocketParser\/([0-9.]+)/u' ], [ 'name' => 'PostRank', 'id' => 'postrank', 'regexp' => '/PostRank\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index e68b6471a..e0a823c06 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 9ab6f53b7..93ca42905 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -945,4 +945,8 @@ - headers: 'User-Agent: MindsMediaProxy/3.0 (+http://www.minds.com/)' readable: 'Minds 3.0' - result: { browser: { name: Minds, version: '3.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Minds, version: '3.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; PlurkBot/1.0; +https://www.plurk.com/) Firefox/61.0' + readable: 'Plurk Bot 1.0' + result: { browser: { name: 'Plurk Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file From e0f60181ac7e885977feee5ac83a911379505031 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:22:50 +0100 Subject: [PATCH 471/540] Add `Blogger` social media platform (closes PR #521) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 9a2671340..48d1bdf9a 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -52,6 +52,7 @@ [ 'name' => 'Blex Bot', 'id' => 'blex', 'regexp' => '/BLEXBot\/([0-9.]*)/u' ], [ 'name' => 'Blex Test Bot', 'id' => 'blex', 'regexp' => '/BLEXBotTest\/([0-9.]*)/u' ], [ 'name' => 'BlogBridge', 'id' => 'blogbridge', 'regexp' => '/BlogBridge ([0-9.]*)/u' ], + [ 'name' => 'Blogger Bot', 'id' => 'blogger', 'regexp' => '/blogger\.com\)/u' ], [ 'name' => 'Bloglines', 'id' => 'bloglines', 'regexp' => '/Bloglines\/([0-9.]*)/u' ], [ 'name' => 'Bloglovin', 'id' => 'bloglovin', 'regexp' => '/Bloglovin\/([0-9.]*)/u' ], [ 'name' => 'BlogPulse', 'id' => 'blogpulse', 'regexp' => '/BlogPulse \(ISSpider-([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index e0a823c06..1c636a5a8 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 93ca42905..14180a732 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -949,4 +949,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; PlurkBot/1.0; +https://www.plurk.com/) Firefox/61.0' readable: 'Plurk Bot 1.0' - result: { browser: { name: 'Plurk Bot', version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Plurk Bot', version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; blogger.com)' + readable: 'Blogger Bot' + result: { browser: { name: 'Blogger Bot' }, device: { type: bot } } \ No newline at end of file From 541b82d8b55fe9d3f94cb4073adca3b28087766e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:24:44 +0100 Subject: [PATCH 472/540] Add `Medium` social media platform (closes PR #519) --- data/applications-bots.php | 2 ++ data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 48d1bdf9a..564bf738c 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -197,6 +197,8 @@ [ 'name' => 'Mapian News Bot', 'id' => 'mapion', 'regexp' => '/mapion-news-bot\/([0-9.]*)/u' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/Img\/([0-9.]*)/i' ], [ 'name' => 'Mail.ru Bot', 'id' => 'mail\.ru', 'regexp' => '/Mail\.RU_Bot\/([0-9.]*)/i' ], + [ 'name' => 'Medium Bot', 'id' => 'medium', 'regexp' => '/Mediumbot-MetaTagFetcher\/([0-9.]*)/u' ], + [ 'name' => 'Medium Bot', 'id' => 'medium', 'regexp' => '/Mediumbot-ProxyFetcher\/([0-9.]*)/u' ], [ 'name' => 'Mega Index Bot', 'id' => 'megaindex', 'regexp' => '/MegaIndex\.ru\/([0-9.]*)/u' ], [ 'name' => 'Microsoft Social Streams', 'id' => 'socialstreams', 'regexp' => '/Microsoft MSN SocialStreams Bot/u' ], [ 'name' => 'Mixi', 'id' => 'mixi', 'regexp' => '/mixi-check\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 1c636a5a8..5ba911287 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 14180a732..019bbed05 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -953,4 +953,12 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; blogger.com)' readable: 'Blogger Bot' - result: { browser: { name: 'Blogger Bot' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Blogger Bot' }, device: { type: bot } } +- + headers: 'User-Agent: Mediumbot-MetaTagFetcher/0.3 (+https://medium.com/)' + readable: 'Medium Bot 0.3' + result: { browser: { name: 'Medium Bot', version: '0.3' }, device: { type: bot } } +- + headers: 'User-Agent: Mediumbot-ProxyFetcher/0.1 (+https://medium.com/)' + readable: 'Medium Bot 0.1' + result: { browser: { name: 'Medium Bot', version: '0.1' }, device: { type: bot } } \ No newline at end of file From 49ad4c3aee05a039b4b948023ea8ed8869e1c83c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:26:30 +0100 Subject: [PATCH 473/540] Add `HubSpot` social media marketing platform crawler (closes PR #516) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 564bf738c..5e66cf6ac 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -171,6 +171,7 @@ [ 'name' => 'htdig', 'id' => 'htdig', 'regexp' => '/htdig\/([0-9.]*)/u' ], [ 'name' => 'HTTPMon', 'id' => 'httpmon', 'regexp' => '/HTTPMon\/([0-9.]*)/u' ], [ 'name' => 'HubPages', 'id' => 'hubpages', 'regexp' => '/HubPages V([0-9.]*)/u' ], + [ 'name' => 'HubSpot Crawler', 'id' => 'hubspot', 'regexp' => '/hubspot\.com/u' ], [ 'name' => 'iAsk Spider', 'id' => 'spider', 'regexp' => '/iaskspider\/([0-9.]*)/u' ], [ 'name' => 'iAsk Spider', 'id' => 'spider', 'regexp' => '/iaskspider2/u' ], [ 'name' => 'Ichiro', 'id' => 'ichiro', 'regexp' => '/ichiro\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5ba911287..98d909ffc 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 019bbed05..e118e4ad7 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -961,4 +961,8 @@ - headers: 'User-Agent: Mediumbot-ProxyFetcher/0.1 (+https://medium.com/)' readable: 'Medium Bot 0.1' - result: { browser: { name: 'Medium Bot', version: '0.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Medium Bot', version: '0.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; HubSpot Crawler; web-crawlers@hubspot.com)' + readable: 'HubSpot Crawler' + result: { browser: { name: 'HubSpot Crawler' }, device: { type: bot } } \ No newline at end of file From ba47863893864771efb6f4214d3c1c30c7f9ebd8 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:28:02 +0100 Subject: [PATCH 474/540] Add `Ok.ru` a Russian social media platform (closes PR #515) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 5e66cf6ac..1d59999c5 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -225,6 +225,7 @@ [ 'name' => 'NewsGator', 'id' => 'newsgator', 'regexp' => '/NewsGatorOnline\/([0-9.]*)/u' ], [ 'name' => 'NewsGator FetchLinks', 'id' => 'newsgator', 'regexp' => '/NewsGator FetchLinks extension\/([0-9.]*)/u' ], [ 'name' => 'Nimbostratus', 'id' => 'nimbostratus', 'regexp' => '/Nimbostratus-Bot\/v([0-9.]*)/u' ], + [ 'name' => 'OdklBot', 'id' => 'odklbot', 'regexp' => '/OdklBot\/([0-9.]*)/u' ], [ 'name' => 'OpenWebSpider', 'id' => 'spider', 'regexp' => '/OpenWebSpider v([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Collector\/([0-9.]*)/u' ], [ 'name' => 'OrangeBot', 'id' => 'orange', 'regexp' => '/OrangeBot-Mobile/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 98d909ffc..e3c2001e4 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index e118e4ad7..14491d5a0 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -965,4 +965,12 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; HubSpot Crawler; web-crawlers@hubspot.com)' readable: 'HubSpot Crawler' - result: { browser: { name: 'HubSpot Crawler' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'HubSpot Crawler' }, device: { type: bot } } +- + headers: 'User-Agent: OdklBot/1.0 (share@odnoklassniki.ru)' + readable: 'OdklBot 1.0' + result: { browser: { name: OdklBot, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; OdklBot/1.0 like Linux; klass@odnoklassniki.ru)' + readable: 'OdklBot 1.0' + result: { browser: { name: OdklBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file From e0b5c020013bdf4773aa0ee0d65036f31ed5f311 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:29:36 +0100 Subject: [PATCH 475/540] Add `Daum` a Korean social media platform (closes PR #514) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 1d59999c5..08efeb22b 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -86,6 +86,7 @@ [ 'name' => 'Datanyze', 'id' => 'datanyze', 'regexp' => '/Datanyze/u' ], [ 'name' => 'DataparkSearch', 'id' => 'datasearch', 'regexp' => '/DataparkSearch\/([0-9.]*)/u' ], [ 'name' => 'Dataprovider Bot', 'id' => 'dataprovider', 'regexp' => '/Dataprovider/u' ], + [ 'name' => 'Daum', 'id' => 'daum', 'regexp' => '/Daum\/([0-9.]*)/u' ], [ 'name' => 'Daumoa', 'id' => 'daumoa', 'regexp' => '/Daumoa ([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg Deeper\/v([0-9.]*)/u' ], [ 'name' => 'Digg', 'id' => 'digg', 'regexp' => '/Digg\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index e3c2001e4..5f862a768 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 14491d5a0..a44f91d9a 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -973,4 +973,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; OdklBot/1.0 like Linux; klass@odnoklassniki.ru)' readable: 'OdklBot 1.0' - result: { browser: { name: OdklBot, version: '1.0' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: OdklBot, version: '1.0' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; Daum/4.1; +http://cs.daum.net/faq/15/4118.html?faqId=28966)' + readable: 'Daum 4.1' + result: { browser: { name: Daum, version: '4.1' }, device: { type: bot } } \ No newline at end of file From e9e38511566a976539e3a84172e7f1c51450eceb Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:31:02 +0100 Subject: [PATCH 476/540] Add `vkShare` bot - crawler for the Russian VK social media platform (closes PR #513) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 08efeb22b..b73445452 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -297,6 +297,7 @@ [ 'name' => 'Typhoeus', 'id' => 'typhoeus', 'regexp' => '/Typhoeus/u' ], [ 'name' => 'Vagabondo', 'id' => 'vagabondo', 'regexp' => '/Vagabondo\/([0-9.]*)/u' ], [ 'name' => 'VelenPublicWebCrawler', 'id' => 'velen', 'regexp' => '/VelenPublicWebCrawler\/([0-9.]*)/u' ], + [ 'name' => 'vkShare', 'id' => 'vkshare', 'regexp' => '/vkShare/u' ], [ 'name' => 'Voat', 'id' => 'voat', 'regexp' => '/Voat\.co OpenGraph Parser/u' ], [ 'name' => 'Voilabot', 'id' => 'voila', 'regexp' => '/Voila[Bb]ot/u' ], [ 'name' => 'VocusBot', 'id' => 'vocus', 'regexp' => '/VocusBot ([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 5f862a768..c25aadc60 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index a44f91d9a..c2f5b7cbf 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -977,4 +977,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; Daum/4.1; +http://cs.daum.net/faq/15/4118.html?faqId=28966)' readable: 'Daum 4.1' - result: { browser: { name: Daum, version: '4.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: Daum, version: '4.1' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (compatible; vkShare; +http://vk.com/dev/Share)' + readable: 'vkShare' + result: { browser: { name: vkShare }, device: { type: bot } } \ No newline at end of file From f7bf3d60b1a6db64fea18e3939374141e896ca3b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:32:32 +0100 Subject: [PATCH 477/540] Add `Line Spider` to bots list (closes PR #512) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index b73445452..3a37ddd0d 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -186,6 +186,7 @@ [ 'name' => 'Kouio', 'id' => 'kouio', 'regexp' => '/kouio.com/u' ], [ 'name' => 'Larbin', 'id' => 'larbin', 'regexp' => '/[Ll]arbin[\/_]([0-9.]*)/u' ], [ 'name' => 'LetsearchBot', 'id' => 'letsearch', 'regexp' => '/LetsearchBot\/([0-9.]*)/u' ], + [ 'name' => 'Line Bot', 'id' => 'line', 'regexp' => '/Linespider\/([0-9.]*)/u' ], [ 'name' => 'Linkedin Bot', 'id' => 'linkedin', 'regexp' => '/LinkedInBot\/([0-9.]*)/u' ], [ 'name' => 'Linkpad Bot', 'id' => 'linkpad', 'regexp' => '/LinkpadBot\/([0-9.]*)/u' ], [ 'name' => 'Linkdex Bot', 'id' => 'linkdex', 'regexp' => '/linkdexbot-mobile\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index c25aadc60..753897d94 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|line|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index c2f5b7cbf..73bfea3de 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -981,4 +981,8 @@ - headers: 'User-Agent: Mozilla/5.0 (compatible; vkShare; +http://vk.com/dev/Share)' readable: 'vkShare' - result: { browser: { name: vkShare }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: vkShare }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.0 Safari/537.36 (compatible; Linespider/1.1; +https://lin.ee/4dwXkTH)' + readable: 'Line Bot 1.1' + result: { browser: { name: 'Line Bot', version: '1.1' }, device: { type: bot } } \ No newline at end of file From 8f8acf4575aa2558a5307f4cf8bed6ae133cd13b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 13:35:41 +0100 Subject: [PATCH 478/540] Add `HTTPUnit` bot - very common bot (closes PR #509) --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 3a37ddd0d..4b0c821dc 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -377,6 +377,7 @@ [ 'name' => 'Borland Delphi', 'id' => 'indy', 'regexp' => '/Indy Library/u' ], [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/Go-http-client\/([0-9.]*)/u' ], [ 'name' => 'Go Http Client', 'id' => 'go', 'regexp' => '/go-httpclient v([0-9.]*)/u' ], + [ 'name' => 'HttpUnit', 'id' => 'httpunit', 'regexp' => '/httpunit\/([0-9.]*)/u' ], [ 'name' => 'OkHttp', 'id' => 'okhttp', 'regexp' => '/okhttp\/([0-9.]*)/u' ], [ 'name' => 'Node Fetch', 'id' => 'node', 'regexp' => '/node-fetch\/([0-9.]*)/u' ], [ 'name' => 'Wget', 'id' => 'wget', 'regexp' => '/Wget\/([0-9.]*)/u' ], diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 753897d94..9d70c8d2e 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|line|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|line|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|httpunit|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 73bfea3de..899554166 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -985,4 +985,8 @@ - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.0 Safari/537.36 (compatible; Linespider/1.1; +https://lin.ee/4dwXkTH)' readable: 'Line Bot 1.1' - result: { browser: { name: 'Line Bot', version: '1.1' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: 'Line Bot', version: '1.1' }, device: { type: bot } } +- + headers: 'User-Agent: httpunit/1.5' + readable: 'HttpUnit 1.5' + result: { browser: { name: HttpUnit, version: '1.5' }, device: { type: bot } } \ No newline at end of file From 5225bfd0a92ff9ce9dfe015ee0bd266be0f1b28f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 14:52:31 +0100 Subject: [PATCH 479/540] Rebase test files --- tests/data/bots/generic.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 899554166..1279c2b93 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -932,7 +932,7 @@ result: { browser: { name: 'Skype Url Preview', version: '0.5' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; BuzzSumo; +http://www.buzzsumo.com/bot.html)' - readable: 'BuzzSumo' + readable: BuzzSumo result: { browser: { name: BuzzSumo }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; U; Hootsuite-WebFeed/1.0; mailto:abuse@hootsuite.com)' @@ -940,7 +940,7 @@ result: { browser: { name: HootSuite, version: '1.0' }, device: { type: bot } } - headers: 'User-Agent: HootSuite Image proxy (hosting@hootsuite.com)' - readable: 'HootSuite' + readable: HootSuite result: { browser: { name: HootSuite }, device: { type: bot } } - headers: 'User-Agent: MindsMediaProxy/3.0 (+http://www.minds.com/)' @@ -980,7 +980,7 @@ result: { browser: { name: Daum, version: '4.1' }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (compatible; vkShare; +http://vk.com/dev/Share)' - readable: 'vkShare' + readable: vkShare result: { browser: { name: vkShare }, device: { type: bot } } - headers: 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.0 Safari/537.36 (compatible; Linespider/1.1; +https://lin.ee/4dwXkTH)' @@ -989,4 +989,4 @@ - headers: 'User-Agent: httpunit/1.5' readable: 'HttpUnit 1.5' - result: { browser: { name: HttpUnit, version: '1.5' }, device: { type: bot } } \ No newline at end of file + result: { browser: { name: HttpUnit, version: '1.5' }, device: { type: bot } } From e7dba16234e19bfb264a4719532b24a8577fad1d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 14:53:10 +0100 Subject: [PATCH 480/540] Improve parsing of Android UA string, when it uses the old Linux based string without build --- src/Analyser/Header/Useragent/Os.php | 2 +- tests/data/mobile/os-android.yaml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index de1c817f5..ab8f71082 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -269,7 +269,7 @@ private function detectAndroid($ua) } elseif (preg_match('/Mozilla\//ui', $ua)) { /* Old Android useragent strings */ - if (preg_match('/Linux; (?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { + if (preg_match('/Linux; (?:arm; |arm_64; )?(?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { $candidates[] = $match[1]; } elseif (preg_match('/\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/u', $ua, $match)) { $candidates[] = $match[1]; diff --git a/tests/data/mobile/os-android.yaml b/tests/data/mobile/os-android.yaml index 439943a70..76080d461 100644 --- a/tests/data/mobile/os-android.yaml +++ b/tests/data/mobile/os-android.yaml @@ -334,3 +334,11 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 2.2; de; TSB_CLOUD_COMPANION;TOSHIBA_AC_AND_AZ) AppleWebkit/533.1(KHTML, like Gecko) Version/4.0 Safari/533.1' readable: 'Android Browser on a Toshiba Dynabook AZ running Android 2.2' result: { browser: { name: 'Android Browser' }, engine: { name: Webkit, version: '533.1' }, os: { name: Android, version: '2.2' }, device: { type: desktop, manufacturer: Toshiba, model: 'Dynabook AZ' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; arm_64; Android 6.0.1; NX549J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.3.85.00 SA/3 Mobile Safari/537.36' + readable: 'Yandex Browser 20.9 on a ZTE Nubia Z11 Mini S running Android 6.0.1' + result: { browser: { name: 'Yandex Browser', family: { name: Chrome, version: 85 }, version: '20.9', type: browser }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: ZTE, model: 'Nubia Z11 Mini S' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; arm; Android 6.0.1; NX549J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.3.85.00 SA/3 Mobile Safari/537.36' + readable: 'Yandex Browser 20.9 on a ZTE Nubia Z11 Mini S running Android 6.0.1' + result: { browser: { name: 'Yandex Browser', family: { name: Chrome, version: 85 }, version: '20.9', type: browser }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: ZTE, model: 'Nubia Z11 Mini S' } } From d4476845043ea2749aaea8d213ab2bdfbe58a857 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 15:30:44 +0100 Subject: [PATCH 481/540] Improve parsing of Android UA string, when it uses the old Linux based string without build --- src/Analyser/Header/Useragent/Os.php | 2 +- tests/data/mobile/os-android.yaml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index de1c817f5..ab8f71082 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -269,7 +269,7 @@ private function detectAndroid($ua) } elseif (preg_match('/Mozilla\//ui', $ua)) { /* Old Android useragent strings */ - if (preg_match('/Linux; (?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { + if (preg_match('/Linux; (?:arm; |arm_64; )?(?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { $candidates[] = $match[1]; } elseif (preg_match('/\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/u', $ua, $match)) { $candidates[] = $match[1]; diff --git a/tests/data/mobile/os-android.yaml b/tests/data/mobile/os-android.yaml index 439943a70..76080d461 100644 --- a/tests/data/mobile/os-android.yaml +++ b/tests/data/mobile/os-android.yaml @@ -334,3 +334,11 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 2.2; de; TSB_CLOUD_COMPANION;TOSHIBA_AC_AND_AZ) AppleWebkit/533.1(KHTML, like Gecko) Version/4.0 Safari/533.1' readable: 'Android Browser on a Toshiba Dynabook AZ running Android 2.2' result: { browser: { name: 'Android Browser' }, engine: { name: Webkit, version: '533.1' }, os: { name: Android, version: '2.2' }, device: { type: desktop, manufacturer: Toshiba, model: 'Dynabook AZ' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; arm_64; Android 6.0.1; NX549J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.3.85.00 SA/3 Mobile Safari/537.36' + readable: 'Yandex Browser 20.9 on a ZTE Nubia Z11 Mini S running Android 6.0.1' + result: { browser: { name: 'Yandex Browser', family: { name: Chrome, version: 85 }, version: '20.9', type: browser }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: ZTE, model: 'Nubia Z11 Mini S' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; arm; Android 6.0.1; NX549J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.3.85.00 SA/3 Mobile Safari/537.36' + readable: 'Yandex Browser 20.9 on a ZTE Nubia Z11 Mini S running Android 6.0.1' + result: { browser: { name: 'Yandex Browser', family: { name: Chrome, version: 85 }, version: '20.9', type: browser }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: ZTE, model: 'Nubia Z11 Mini S' } } From 82ad4c1740ebdf30a40a18e242f3f7e1df7eb80e Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 15:31:39 +0100 Subject: [PATCH 482/540] Fix an issue with the Android user agent when the token Build is appended somewhere in the end of the string --- src/Analyser/Header/Useragent/Os.php | 2 +- tests/data/mobile/os-android.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index ab8f71082..c88cc01b4 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -242,7 +242,7 @@ private function detectAndroid($ua) $candidates = []; - if (preg_match('/Build/ui', $ua)) { + if (preg_match('/Build/ui', $ua) && (!preg_match('/AppleWebKit.*Build/ui', $ua) || preg_match('/Build.*AppleWebKit/ui', $ua))) { /* Normal Android useragent strings */ if (preg_match('/; [a-z][a-zA-Z][-_][a-zA-Z][a-zA-Z] ([^;]*[^;\s])\s+(?:BUILD|Build|build)/u', $ua, $match)) { diff --git a/tests/data/mobile/os-android.yaml b/tests/data/mobile/os-android.yaml index 76080d461..df37b0b20 100644 --- a/tests/data/mobile/os-android.yaml +++ b/tests/data/mobile/os-android.yaml @@ -342,3 +342,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; arm; Android 6.0.1; NX549J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.3.85.00 SA/3 Mobile Safari/537.36' readable: 'Yandex Browser 20.9 on a ZTE Nubia Z11 Mini S running Android 6.0.1' result: { browser: { name: 'Yandex Browser', family: { name: Chrome, version: 85 }, version: '20.9', type: browser }, engine: { name: Blink }, os: { name: Android, version: 6.0.1 }, device: { type: mobile, subtype: smart, manufacturer: ZTE, model: 'Nubia Z11 Mini S' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; th; vivo 1915) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' + readable: 'Tenta Browser 3.1.6 on a vivo 1915 running Android 9' + result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, model: 'vivo 1915' } } From 566d0165c2954867c3606e3c7d26a9c292d2cb9f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 16:00:57 +0100 Subject: [PATCH 483/540] Add Google Favicon bot --- data/applications-bots.php | 1 + tests/data/bots/generic.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/data/applications-bots.php b/data/applications-bots.php index 4b0c821dc..2a6a70d26 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -147,6 +147,7 @@ [ 'name' => 'Google App Engine', 'id' => 'google', 'regexp' => '/AppEngine-Google/u' ], [ 'name' => 'Google Web Preview', 'id' => 'google', 'regexp' => '/Google Web Preview/u' ], [ 'name' => 'Google Page Speed', 'id' => 'google', 'regexp' => '/Google Page Speed Insights/u' ], + [ 'name' => 'Google Favicon', 'id' => 'google', 'regexp' => '/Google Favicon/u' ], [ 'name' => 'Google FeedBurner', 'id' => 'feed', 'regexp' => '/FeedBurner\/([0-9.]*)/u' ], [ 'name' => 'Google Feedfetcher', 'id' => 'google', 'regexp' => '/Feedfetcher-Google/iu' ], [ 'name' => 'Google Font Analysis', 'id' => 'google', 'regexp' => '/Google-FontAnalysis\/([0-9.]*)/u' ], diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 1279c2b93..5588b1c62 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -990,3 +990,7 @@ headers: 'User-Agent: httpunit/1.5' readable: 'HttpUnit 1.5' result: { browser: { name: HttpUnit, version: '1.5' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon' + readable: 'Google Favicon' + result: { browser: { name: 'Google Favicon' }, device: { type: bot } } From a39cca7dd1f6f2995460a5666da4daffdbd42e7d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 16:05:32 +0100 Subject: [PATCH 484/540] Add new type of iOS version detection --- src/Analyser/Header/Useragent/Os.php | 4 ++++ tests/data/mobile/os-ios.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index c88cc01b4..0e432c917 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -74,6 +74,10 @@ private function detectDarwin($ua) $this->data->os->version = new Version([ 'value' => str_replace('_', '.', $match[1]) ]); } + if (preg_match('/iOS ([0-9.]*);/u', $ua, $match)) { + $this->data->os->version = new Version([ 'value' => $match[1] ]); + } + if (preg_match('/iPhone Simulator;/u', $ua)) { $this->data->device->type = Constants\DeviceType::EMULATOR; } else { diff --git a/tests/data/mobile/os-ios.yaml b/tests/data/mobile/os-ios.yaml index de72bec91..7dec8bdd2 100644 --- a/tests/data/mobile/os-ios.yaml +++ b/tests/data/mobile/os-ios.yaml @@ -466,3 +466,7 @@ headers: 'User-Agent: AtomicLite/7.0.1 CFNetwork/672.1.13 Darwin/14.0.0' result: { browser: { name: Atomic, version: 7.0.1, type: browser }, os: { name: iOS, version: '7.1' }, device: { type: mobile, subtype: smart, manufacturer: Apple } } readable: 'Atomic 7.0.1 on iOS 7.1' +- + headers: 'User-Agent: (iPhone; iOS 13.1.2; Scale/2.00; iPhone9,3)' + readable: 'an Apple iPhone 7 running iOS 13.1.2' + result: { os: { name: iOS, version: 13.1.2 }, device: { type: mobile, subtype: smart, manufacturer: Apple, model: 'iPhone 7' } } From cba3da3011e25999d8404fe44d924d12abc76caa Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 16:13:27 +0100 Subject: [PATCH 485/540] Add zgrab bot --- data/applications-bots.php | 1 + data/regexes/applications-bots.php | 2 +- tests/data/bots/generic.yaml | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index 2a6a70d26..b9589eab4 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -367,6 +367,7 @@ [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], [ 'name' => 'Yioop Bot', 'id' => 'yioop', 'regexp' => '/YioopBot/u' ], [ 'name' => 'Yisou Spider', 'id' => 'yisou', 'regexp' => '/YisouSpider\/?([0-9.]*)/u' ], + [ 'name' => 'Zgrab', 'id' => 'zgrab', 'regexp' => '/zgrab\//u' ], [ 'name' => 'ZmEu', 'id' => 'zmeu', 'regexp' => '/ZmEu/u' ], /* Generic bots */ diff --git a/data/regexes/applications-bots.php b/data/regexes/applications-bots.php index 9d70c8d2e..79571d03a 100644 --- a/data/regexes/applications-bots.php +++ b/data/regexes/applications-bots.php @@ -2,4 +2,4 @@ namespace WhichBrowser\Data; -Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|line|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zmeu|httpclient|nutch|synapse|indy|go|httpunit|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; +Applications::$BOTS_REGEX = '/(008|360|a6|abound|muncher|adaxas|addthis|admantx|adsbot|ahrefs|archiver|altavista|curious|cloudfront|amorank|apple|archive|jeeves|astra|backlink|baidu|barkrowler|bazqux|bingbot|msnbot|msmobot|bing|blex|blogbridge|blogger|bloglines|bloglovin|blogpulse|blogram|blogtrot|blogshares|boardreader|lddc|browsershots|bubing|buck|builtwith|butterfly|buzzsumo|bytespider|heritrix|clarabot|cliqz|cloudflare|coccoc|comodo|commafeed|cbot|cresearch|watchdog|datanyze|datasearch|dataprovider|daum|daumoa|digg|domaincrawl|domainstats|discord|domain|dmca|duckduck|embed|evc|exabot|exactseek|ezooms|facebook|fast|flamingo|fastladder|feed|wrangler|validator|fever|florienzh|friendica|robot|genieo|fetchor|google|gofeed|gomez|ichiro|gooblog|goorss|gowiki|grammarly|grub|hatena|capture|heureka|hootsuite|htdig|httpmon|hubpages|hubspot|spider|indeed|iodc|istellabot|crawler|kakao|kouio|larbin|letsearch|line|linkedin|linkpad|linkdex|livedoor|seeker|ltx71|magpie|mj12bot|mapion|mail\.ru|medium|megaindex|socialstreams|mixi|minds|mnogo|mojeek|monitor|dotbot|rogerbot|yeti|mxtoolbox|netcraft|netestate|netvibes|newsblur|newsgator|nimbostratus|odklbot|orange|pages|petal|aspiegel|psbot|pingdom|pinterest|plurk|pocket|postrank|comment|reddit|rssbar|hunter|quora|safesearch|scrapy|searchatlas|seekport|semrush|serpstat|seokicks|seznam|shopwiki|reader|simplepie|site24|skype|slack|sogou|sophora|soso|spaziodati|spdycheck|spinn|sputnik|detector|summify|telegram|twisted|twitter|tiny|tineye|tlsprober|trustedsite|typhoeus|vagabondo|velen|vkshare|voat|voila|vocus|mcrawler|vuhuv|w3bot|jigsaw|w3c|wappalyzer|wayback|webindexer|wordpress|mechanize|xenu|xerka|sitemap|yacy|yandex|yahoo|y\!j|slurp|yelp|yioop|yisou|zgrab|zmeu|httpclient|nutch|synapse|indy|go|httpunit|okhttp|node|wget|curl|package|java|simple|libwww|lwp|urllib|requests|php|pear|zend|ruby)/i'; diff --git a/tests/data/bots/generic.yaml b/tests/data/bots/generic.yaml index 5588b1c62..70f5ddd54 100644 --- a/tests/data/bots/generic.yaml +++ b/tests/data/bots/generic.yaml @@ -994,3 +994,7 @@ headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 Google Favicon' readable: 'Google Favicon' result: { browser: { name: 'Google Favicon' }, device: { type: bot } } +- + headers: 'User-Agent: Mozilla/5.0 zgrab/0.x' + readable: Zgrab + result: { browser: { name: Zgrab }, device: { type: bot } } From 80437c32ba8e7bd0ddad646d876585f10b3738a3 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 17:13:58 +0100 Subject: [PATCH 486/540] Improve Roku model detection --- .../Header/Useragent/Device/Television.php | 102 +++++++++++++++--- tests/data/television/roku.yaml | 16 +++ 2 files changed, 101 insertions(+), 17 deletions(-) diff --git a/src/Analyser/Header/Useragent/Device/Television.php b/src/Analyser/Header/Useragent/Device/Television.php index 92181c8a7..aeab6877f 100644 --- a/src/Analyser/Header/Useragent/Device/Television.php +++ b/src/Analyser/Header/Useragent/Device/Television.php @@ -610,29 +610,97 @@ private function detectSettopboxes($ua) /* Roku */ - if (preg_match('/^Roku\/DVP-(?:[0-9A-Z]+-)?[0-9\.]+ \(([0-9]{2,2})/u', $ua, $match)) { + if (preg_match('/Roku(?:([0-9]+)[A-Z]+)?\/DVP-(?:([0-9]+)[A-Z]+-)?[0-9\.]+/u', $ua, $match)) { $this->data->os->reset(); $this->data->device->manufacturer = 'Roku'; $this->data->device->type = Constants\DeviceType::TELEVISION; - - switch ($match[1]) { - case '02': - $this->data->device->model = '2 XS'; - $this->data->device->generic = false; - break; - case '04': - $this->data->device->model = '3'; - $this->data->device->generic = false; - break; - case '07': - $this->data->device->model = 'LT'; + + $models = [ + '2000' => 'HD', + '2050' => 'XD', + '2100' => 'XDS', + '2400' => 'LT', + '2450' => 'LT', + '2500' => 'HD', + '2700' => 'LT', + '2710' => '1 SE', + '2720' => '2', + '3000' => '2 HD', + '3050' => '2 XD', + '3100' => '2 XS', + '3400' => 'Streaming Stick, MHL', + '3420' => 'Streaming Stick, MHL', + '3500' => 'Streaming Stick, HDMI', + '3600' => 'Streaming Stick', + '3700' => 'Express', + '3710' => 'Express+', + '3800' => 'Streaming Stick', + '3810' => 'Streaming Stick+', + '3900' => 'Express', + '3910' => 'Express+', + '3920' => 'Premiere', + '3921' => 'Premiere+', + '3930' => 'Express', + '3931' => 'Express+', + '4200' => '3', + '4210' => '2', + '4230' => '3', + '4400' => '4', + '4620' => 'Premiere', + '4630' => 'Premiere+', + '4640' => 'Ultra', + '4660' => 'Ultra', + '4661' => 'Ultra', + '4662' => 'Ultra LT', + '4670' => 'Ultra', + '4800' => 'Ultra', + ]; + + if (!empty($match[1]) || !empty($match[2])) { + $model = !empty($match[1]) ? $match[1] : $match[2]; + + if (isset($models[$model])) { + $this->data->device->model = $models[$model]; $this->data->device->generic = false; - break; - case '09': - $this->data->device->model = 'Streaming Stick'; + } + } + + $this->data->device->identified |= Constants\Id::MATCH_UA; + } + + if (preg_match('/Roku\/DVP-[0-9\.]+ \(([0-9A-Z]{2,2})[0-9]+\./u', $ua, $match)) { + $this->data->os->reset(); + + $this->data->device->manufacturer = 'Roku'; + $this->data->device->type = Constants\DeviceType::TELEVISION; + + $models = [ + '02' => '2 XS', + '03' => 'LT', + '04' => '3', + '07' => 'LT', + '09' => 'Streaming Stick', + '29' => 'Ultra', + '30' => [ 'TCL', '4K Roku TV' ], + '51' => 'Express', + 'AE' => 'Express', + ]; + + if (!empty($match[1])) { + $model = $match[1]; + + if (isset($models[$model])) { + if (is_array($models[$model])) { + $this->data->device->manufacturer = $models[$model][0]; + $this->data->device->model = $models[$model][1]; + } + else { + $this->data->device->model = $models[$model]; + } + $this->data->device->generic = false; - break; + } } $this->data->device->identified |= Constants\Id::MATCH_UA; diff --git a/tests/data/television/roku.yaml b/tests/data/television/roku.yaml index f71f4d8bf..8d28c5855 100644 --- a/tests/data/television/roku.yaml +++ b/tests/data/television/roku.yaml @@ -18,3 +18,19 @@ headers: 'User-Agent: Roku/DVP-5.5 (095.05E02025A)' result: { device: { type: television, manufacturer: Roku, model: 'Streaming Stick' } } readable: 'a Roku Streaming Stick' +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Roku/DVP-8.10 (468.10E04145A)' + readable: 'a Roku' + result: { browser: { family: { name: Chrome, version: 70 }, type: browser }, engine: { name: Blink }, device: { type: television, manufacturer: Roku } } +- + headers: 'User-Agent: Roku/DVP-9.10 (519.10E04111A)' + readable: 'a Roku Express' + result: { device: { type: television, manufacturer: Roku, model: Express } } +- + headers: 'User-Agent: Roku4640X/DVP-7.70 (297.70E04154A)' + readable: 'a Roku Ultra' + result: { device: { type: television, manufacturer: Roku, model: Ultra } } +- + headers: 'User-Agent: Roku/DVP-9.30 (309.30E04182A)' + readable: 'a TCL 4K Roku TV' + result: { device: { type: television, manufacturer: TCL, model: '4K Roku TV' } } From 8bf01ea5892754b5a8828e5c0be8f29ea1b7c140 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 17:15:13 +0100 Subject: [PATCH 487/540] Fix whitespace issues --- src/Analyser/Header/Useragent/Device/Television.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Analyser/Header/Useragent/Device/Television.php b/src/Analyser/Header/Useragent/Device/Television.php index aeab6877f..f32f4b91e 100644 --- a/src/Analyser/Header/Useragent/Device/Television.php +++ b/src/Analyser/Header/Useragent/Device/Television.php @@ -649,7 +649,7 @@ private function detectSettopboxes($ua) '4400' => '4', '4620' => 'Premiere', '4630' => 'Premiere+', - '4640' => 'Ultra', + '4640' => 'Ultra', '4660' => 'Ultra', '4661' => 'Ultra', '4662' => 'Ultra LT', @@ -694,8 +694,7 @@ private function detectSettopboxes($ua) if (is_array($models[$model])) { $this->data->device->manufacturer = $models[$model][0]; $this->data->device->model = $models[$model][1]; - } - else { + } else { $this->data->device->model = $models[$model]; } From da24adc4f4f26002673d236e69b91a10f2fd594c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 4 Jan 2021 17:36:15 +0100 Subject: [PATCH 488/540] Limit the headers we are analysing --- src/Analyser/Header.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header.php b/src/Analyser/Header.php index 0655c624a..35e998b4b 100644 --- a/src/Analyser/Header.php +++ b/src/Analyser/Header.php @@ -139,9 +139,11 @@ private function additionalUserAgent($ua) private function getHeader($h) { + /* Find the header that matches */ foreach ($this->headers as $k => $v) { if (strtolower($h) == strtolower($k)) { - return $v; + /* And return the first 1024 bytes */ + return substr($v, 0, 1024); } } } From 817f54f5d5d24090495643cff261ac7ab97bf404 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:04:33 +0000 Subject: [PATCH 489/540] Correct PlayStation brand name and add PS5 --- data/applications-browsers.php | 2 +- src/Analyser/Corrections.php | 2 +- src/Analyser/Header/Useragent/Browser.php | 4 +-- .../Header/Useragent/Device/Gaming.php | 30 ++++++++++++++----- tests/unit/Model/DeviceTest.php | 4 +-- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 5619bf561..833e3a2bd 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -303,7 +303,7 @@ [ 'name' => 'Aplix', 'id' => 'aplix', 'regexp' =>'/Aplix_SEGASATURN_browser\/([0-9](?:.[0-9.]+)?)/u' ], // browser for the Sega Saturn [ 'name' => 'Bunjalloo', 'id' => 'bunjalloo', 'regexp' =>'/Bunjalloo\/([0-9.]*)/u' ], // browser for the Nintento DS [ 'name' => 'Nintendo Web Framework', 'id' => 'nwf', 'regexp' =>'/NWF\/([0-9.]*)/u', 'details' => 2 ], // browser for the Sega Dreamcast - [ 'name' => 'Nuanti Meta', 'id' => 'nuanti', 'regexp' =>'/Nuanti(?:Meta)?\/([0-9.]*)/u' ], // browser for the Playstation + [ 'name' => 'Nuanti Meta', 'id' => 'nuanti', 'regexp' =>'/Nuanti(?:Meta)?\/([0-9.]*)/u' ], // browser for the PlayStation /* Other browsers */ [ 'name' => 'Wear Internet Browser','id' => 'wib', 'regexp' =>'/WIB\/([0-9.]*)/u' ], diff --git a/src/Analyser/Corrections.php b/src/Analyser/Corrections.php index a51bbd57b..7debbfae6 100644 --- a/src/Analyser/Corrections.php +++ b/src/Analyser/Corrections.php @@ -116,7 +116,7 @@ private function hideBrowserBasedOnOperatingSystem() private function hideBrowserOnDeviceTypeGaming() { - if (isset($this->data->device->model) && $this->data->device->model == 'Playstation 2' && $this->data->browser->name == 'Internet Explorer') { + if (isset($this->data->device->model) && $this->data->device->model == 'PlayStation 2' && $this->data->browser->name == 'Internet Explorer') { $this->data->browser->reset(); } } diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index b79317df8..c9eec1875 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -1365,7 +1365,7 @@ private function detectNetfront($ua) if (in_array($match[1], [ 'ACCESS/NFPS', 'SUNSOFT/EnjoyMagic' ])) { $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 2', + 'model' => 'PlayStation 2', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); @@ -2439,7 +2439,7 @@ private function detectTelevisionBrowsers($ua) if (preg_match('/SPS/u', $ua, $match)) { $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 2', + 'model' => 'PlayStation 2', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index 9a7b7d489..2ecb221fb 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -123,7 +123,7 @@ private function detectNintendo($ua) /* Sony PlayStation */ - private function detectPlaystation($ua) + private function detectPlayStation($ua) { /* PlayStation Portable */ @@ -136,7 +136,7 @@ private function detectPlaystation($ua) $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation Portable', + 'model' => 'PlayStation Portable', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::PORTABLE ]); @@ -150,25 +150,25 @@ private function detectPlaystation($ua) $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation Vita', + 'model' => 'PlayStation Vita', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::PORTABLE ]); if (preg_match('/VTE\//u', $ua)) { - $this->data->device->model = 'Playstation TV'; + $this->data->device->model = 'PlayStation TV'; $this->data->device->subtype = Constants\DeviceSubType::CONSOLE; } } /* PlayStation 2 */ - if (preg_match('/Playstation2/u', $ua) || preg_match('/\(PS2/u', $ua)) { + if (preg_match('/PlayStation2/u', $ua) || preg_match('/\(PS2/u', $ua)) { $this->data->os->reset(); $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 2', + 'model' => 'PlayStation 2', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); @@ -188,7 +188,7 @@ private function detectPlaystation($ua) $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 3', + 'model' => 'PlayStation 3', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); @@ -202,7 +202,21 @@ private function detectPlaystation($ua) $this->data->device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 4', + 'model' => 'PlayStation 4', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } + + /* PlayStation 5 */ + + if (preg_match('/PlayStation 5/ui', $ua) || preg_match('/\(PS5/u', $ua)) { + $this->data->os->reset(); + $this->data->os->identifyVersion('/PlayStation 5 ([0-9.]*)/u', $ua); + + $this->data->device->setIdentification([ + 'manufacturer' => 'Sony', + 'model' => 'PlayStation 5', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); diff --git a/tests/unit/Model/DeviceTest.php b/tests/unit/Model/DeviceTest.php index b079454a8..8a028e21a 100644 --- a/tests/unit/Model/DeviceTest.php +++ b/tests/unit/Model/DeviceTest.php @@ -266,14 +266,14 @@ public function testToArray() $device->setIdentification([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 4', + 'model' => 'PlayStation 4', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); $this->assertEquals([ 'manufacturer' => 'Sony', - 'model' => 'Playstation 4', + 'model' => 'PlayStation 4', 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ], $device->toArray()); From 789a98b77fd86a743668ab45ffdbdf91320f0dfe Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:16:01 +0000 Subject: [PATCH 490/540] Add tests and update regex --- .../Header/Useragent/Device/Gaming.php | 6 +- tests/data/gaming/sony.yaml | 214 +++++++++--------- 2 files changed, 114 insertions(+), 106 deletions(-) diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index 2ecb221fb..6374a5eb9 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -123,7 +123,7 @@ private function detectNintendo($ua) /* Sony PlayStation */ - private function detectPlayStation($ua) + private function detectPlaystation($ua) { /* PlayStation Portable */ @@ -144,7 +144,7 @@ private function detectPlayStation($ua) /* PlayStation Vita */ - if (preg_match('/PlayStation Vita/iu', $ua)) { + if (preg_match('/PlayStation Vita/ui', $ua)) { $this->data->os->reset(); $this->data->os->identifyVersion('/PlayStation Vita ([0-9.]*)/u', $ua); @@ -163,7 +163,7 @@ private function detectPlayStation($ua) /* PlayStation 2 */ - if (preg_match('/PlayStation2/u', $ua) || preg_match('/\(PS2/u', $ua)) { + if (preg_match('/PlayStation2/ui', $ua) || preg_match('/\(PS2/u', $ua)) { $this->data->os->reset(); $this->data->device->setIdentification([ diff --git a/tests/data/gaming/sony.yaml b/tests/data/gaming/sony.yaml index 34552887d..14238ad4f 100644 --- a/tests/data/gaming/sony.yaml +++ b/tests/data/gaming/sony.yaml @@ -1,204 +1,212 @@ - headers: 'User-Agent: Mozilla/4.0 (PSP (PlayStation Portable); 2.00)' - result: { engine: { name: NetFront }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Portable' } } - readable: 'a Sony Playstation Portable' + result: { engine: { name: NetFront }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Portable' } } + readable: 'a Sony PlayStation Portable' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.10) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.10' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.10' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.10' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.10' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.11) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.11' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.11' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.11' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.11' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.31) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.31' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.31' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.31' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.31' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.41) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.41' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.41' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.41' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.41' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.50) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.50' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.50' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.50' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.50' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.53) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.53' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.53' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.53' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.53' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3 4.55) AppleWebKit/531.22.8 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.55' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 4.55' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '4.55' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 4.55' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3; 1.00)' - result: { engine: { name: NetFront }, os: { version: '1.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 1.00' + result: { engine: { name: NetFront }, os: { version: '1.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 1.00' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3; 2.00)' - result: { engine: { name: NetFront }, os: { version: '2.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 2.00' + result: { engine: { name: NetFront }, os: { version: '2.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 2.00' - headers: 'User-Agent: Mozilla/5.0 (PLAYSTATION 3; 3.55)' - result: { engine: { name: NetFront }, os: { version: '3.55' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'a Sony Playstation 3 running 3.55' + result: { engine: { name: NetFront }, os: { version: '3.55' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 3 running 3.55' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 3) SonyComputerEntertainmentEurope/531.3 (NCell) NuantiMeta/2.0' - result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'Nuanti Meta 2.0 on a Sony Playstation 3' + result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'Nuanti Meta 2.0 on a Sony PlayStation 3' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.000) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.000' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.000' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.000' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.000' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.51) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.51' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.51' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.51' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.51' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.52) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.52' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.52' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.52' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.52' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.60) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.60' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.60' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.60' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.60' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.61) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.61' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.61' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.61' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.61' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.62) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.62' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.62' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.62' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.62' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 1.70) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.70' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 1.70' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '1.70' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 1.70' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4 2.00) AppleWebKit/537.73 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '537.73' }, os: { version: '2.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'a Sony Playstation 4 running 2.00' + result: { engine: { name: Webkit, version: '537.73' }, os: { version: '2.00' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'a Sony PlayStation 4 running 2.00' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.00) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.00' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.00' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.50) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.50' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.50' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.50' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.50' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.51) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.51' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.51' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.51' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.51' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.52) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.52' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.52' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.52' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.52' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.60) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.60' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.60' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.60' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.60' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.61) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.61' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.61' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.61' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.61' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 1.80) AppleWebKit/531.22.8 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.80' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 1.80' + result: { engine: { name: Webkit, version: 531.22.8 }, os: { version: '1.80' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 1.80' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 2.60) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '2.60' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 2.60' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '2.60' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 2.60' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 2.61) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '2.61' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 2.61' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '2.61' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 2.61' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.00) AppleWebKit/536.26 (KHTML, like Gecko)' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.00' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.00' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.00) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.00' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.00' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.00' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.01) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.01' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.01' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.01' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.01' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.01) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2 VTE/2.50' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.01' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation TV' } } - readable: 'a Sony Playstation TV running 3.01' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.01' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation TV' } } + readable: 'a Sony PlayStation TV running 3.01' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.10) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.10' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.10' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.10' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.10' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.10) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2 VTE/2.50' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.10' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation TV' } } - readable: 'a Sony Playstation TV running 3.10' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.10' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation TV' } } + readable: 'a Sony PlayStation TV running 3.10' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.12) AppleWebKit/536.26 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.12' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.12' + result: { engine: { name: Webkit, version: '536.26' }, os: { version: '3.12' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.12' - headers: 'User-Agent: Mozilla/5.0 (PlayStation Vita 3.20) AppleWebKit/537.73 (KHTML, like Gecko) Silk/3.2' - result: { engine: { name: Webkit, version: '537.73' }, os: { version: '3.20' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'a Sony Playstation Vita running 3.20' + result: { engine: { name: Webkit, version: '537.73' }, os: { version: '3.20' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'a Sony PlayStation Vita running 3.20' - headers: 'User-Agent: Sony Playstation2 (Utility Disc Ver.2.03c/for PS-modem)[jp]' - result: { device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'a Sony Playstation 2' + result: { device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/5.0 [ja] (Playstation2; Linux 2.4.20 MIPS; ja-JP; rv:1.8a2) Gecko/20040630' - result: { engine: { name: Gecko, version: 1.8a2 }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'a Sony Playstation 2' + result: { engine: { name: Gecko, version: 1.8a2 }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'a Sony PlayStation 2' - - headers: 'User-Agent: Mozilla/5.0 [ja] (compatible; MSIE 6.0; Linux 2.6.11-1.1369_FC4; Playstation2)' + headers: 'User-Agent: Mozilla/5.0 [ja] (compatible; MSIE 6.0; Linux 2.6.11-1.1369_FC4; PlayStation2)' result: { device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'a Sony Playstation 2' + readable: 'a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0' - result: { browser: { name: NetFront, version: '3.0', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'NetFront 3.0 on a Sony Playstation 2' + result: { browser: { name: NetFront, version: '3.0', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'NetFront 3.0 on a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/5.0 (PS3) AppleWebKit/535.11 (KHTML, like Gecko) NuantiMeta/2.0' - result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '535.11' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'Nuanti Meta 2.0 on a Sony Playstation 3' + result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '535.11' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'Nuanti Meta 2.0 on a Sony PlayStation 3' - headers: 'User-Agent: Mozilla/5.0 (PS3) AppleWebKit/535.1 (KHTML, like Gecko) NuantiMeta/2.0 Chrome/13.0.782.220 Safari/535.1' - result: { browser: { name: 'Nuanti Meta', family: { name: Chrome, version: 13 }, version: '2.0', type: browser }, engine: { name: Webkit, version: '535.1' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } - readable: 'Nuanti Meta 2.0 on a Sony Playstation 3' + result: { browser: { name: 'Nuanti Meta', family: { name: Chrome, version: 13 }, version: '2.0', type: browser }, engine: { name: Webkit, version: '535.1' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'Nuanti Meta 2.0 on a Sony PlayStation 3' - headers: 'User-Agent: Mozilla/5.0 (PlayStation 4) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0' - result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '531.3' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } - readable: 'Nuanti Meta 2.0 on a Sony Playstation 4' + result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '531.3' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } + readable: 'Nuanti Meta 2.0 on a Sony PlayStation 4' - headers: 'User-Agent: Mozilla/5.0 (PlayStation VITA) AppleWebKit/531.3 (KHTML, like Gecko) SCEE/1.0 Nuanti/2.0' - result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '531.3' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'Playstation Vita' } } - readable: 'Nuanti Meta 2.0 on a Sony Playstation Vita' + result: { browser: { name: 'Nuanti Meta', version: '2.0', type: browser }, engine: { name: Webkit, version: '531.3' }, device: { type: gaming, subtype: portable, manufacturer: Sony, model: 'PlayStation Vita' } } + readable: 'Nuanti Meta 2.0 on a Sony PlayStation Vita' - headers: 'User-Agent: Mozilla/3.0 (Planetweb/v1.16; SPS JP)' - result: { browser: { name: Planetweb, version: '1.16', type: browser }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'Planetweb 1.16 on a Sony Playstation 2' + result: { browser: { name: Planetweb, version: '1.16', type: browser }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'Planetweb 1.16 on a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/3.0 AVE-Front/2.6 (BrowserInfo Screen=624x400x16M; InputMethod=CONTROLER, MOUSE, REMOCON; Page=10M; Category=GAME; Product=ACCESS/NFPS; HTML-Level=3.2; Strage=NO;)' - result: { browser: { name: NetFront, version: '2.6', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'NetFront 2.6 on a Sony Playstation 2' + result: { browser: { name: NetFront, version: '2.6', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'NetFront 2.6 on a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/3.0 AVE-Front/2.6 (BrowserInfo Screen=640x448x16M; InputMethod=CONTROLER, MOUSE, REMOCON; Page=12M; Category=GAME; Product=SUNSOFT/EnjoyMagic; HTML-Level=3.2; Language=ja.SJIS; Storage=NO;)' - result: { browser: { name: NetFront, version: '2.6', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } - readable: 'NetFront 2.6 on a Sony Playstation 2' + result: { browser: { name: NetFront, version: '2.6', type: browser }, engine: { name: NetFront }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } + readable: 'NetFront 2.6 on a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/5.0 (PS3; Leanback Shell) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/19.0.1048.0 LeanbackShell/01.00.01.73 QA Safari/535.22 Sony PS3/ (PS3, , no, CH)' - readable: 'Chrome Dev 19.0.1048.0 on a Sony Playstation 3' - result: { browser: { name: Chrome, version: 19.0.1048.0, type: browser }, engine: { name: Webkit, version: '535.22' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } + readable: 'Chrome Dev 19.0.1048.0 on a Sony PlayStation 3' + result: { browser: { name: Chrome, version: 19.0.1048.0, type: browser }, engine: { name: Webkit, version: '535.22' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } - - headers: 'User-Agent: Mozilla/5.0 (PS4; Leanback Shell) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.70 LeanbackShell/2.3D Gold build cf8a43c-2016329 Safari/537.22 Sony Playstation4/ (PS4,, en, US)' - readable: 'Chrome 25 on a Sony Playstation 4' - result: { browser: { name: Chrome, version: '25', type: browser }, engine: { name: Webkit, version: '537.22' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 4' } } + headers: 'User-Agent: Mozilla/5.0 (PS4; Leanback Shell) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.70 LeanbackShell/2.3D Gold build cf8a43c-2016329 Safari/537.22 Sony PlayStation4/ (PS4,, en, US)' + readable: 'Chrome 25 on a Sony PlayStation 4' + result: { browser: { name: Chrome, version: '25', type: browser }, engine: { name: Webkit, version: '537.22' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 4' } } - headers: 'User-Agent: Mozilla/5.0 (PS3; PPU 4.2.0) AppleWebKit/537.21+ (KHTML, like Gecko) AmazonSpark/0.1.0' - readable: 'a Sony Playstation 3' - result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 3' } } + readable: 'a Sony PlayStation 3' + result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } +- + headers: 'User-Agent: Mozilla/5.0 (PlayStation 5/SmartTV) AppleWebKit/605.1.15 (KHTML, like Gecko)' + readable: 'a Sony PlayStation 5' + result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } +- + headers: 'User-Agent: Mozilla/5.0 (PlayStation 5 3.03/SmartTV) AppleWebKit/605.1.15 (KHTML, like Gecko)' + readable: 'a Sony PlayStation 5' + result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } From 5e8cc476a95f764e5db410e8497c0334c9215db3 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:20:54 +0000 Subject: [PATCH 491/540] Update tests --- tests/data/gaming/sony.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/data/gaming/sony.yaml b/tests/data/gaming/sony.yaml index 14238ad4f..e2c5cc785 100644 --- a/tests/data/gaming/sony.yaml +++ b/tests/data/gaming/sony.yaml @@ -156,7 +156,7 @@ readable: 'a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/5.0 [ja] (compatible; MSIE 6.0; Linux 2.6.11-1.1369_FC4; PlayStation2)' - result: { device: { type: gaming, subtype: console, manufacturer: Sony, model: 'Playstation 2' } } + result: { device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 2' } } readable: 'a Sony PlayStation 2' - headers: 'User-Agent: Mozilla/4.0 (PS2; PlayStation BB Navigator 1.0) NetFront/3.0' @@ -205,8 +205,8 @@ - headers: 'User-Agent: Mozilla/5.0 (PlayStation 5/SmartTV) AppleWebKit/605.1.15 (KHTML, like Gecko)' readable: 'a Sony PlayStation 5' - result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + result: { engine: { name: Webkit, version: 605.1.15 }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 5' } } - headers: 'User-Agent: Mozilla/5.0 (PlayStation 5 3.03/SmartTV) AppleWebKit/605.1.15 (KHTML, like Gecko)' - readable: 'a Sony PlayStation 5' - result: { engine: { name: Webkit, version: '537.21' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 3' } } + readable: 'a Sony PlayStation 5 running 3.03' + result: { engine: { name: Webkit, version: 605.1.15 }, os: { version: '3.03' }, device: { type: gaming, subtype: console, manufacturer: Sony, model: 'PlayStation 5' } } From ee6ea860baf62894479d638a6ea5168725bc3d47 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:33:48 +0000 Subject: [PATCH 492/540] Add Xbox Series X to repo detection --- src/Analyser/Header/Useragent/Browser.php | 2 +- src/Analyser/Header/Useragent/Device/Gaming.php | 16 ++++++++++++---- tests/data/gaming/microsoft.yaml | 4 ++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index b79317df8..22c1eb380 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -381,7 +381,7 @@ private function detectExplorer($ua) if (preg_match('/IEMobile/u', $ua) || preg_match('/Windows CE/u', $ua) || preg_match('/Windows Phone/u', $ua) || preg_match('/WP7/u', $ua) || preg_match('/WPDesktop/u', $ua)) { $this->data->browser->name = 'Mobile Internet Explorer'; - if (isset($this->data->device->model) && ($this->data->device->model == 'Xbox 360' || $this->data->device->model == 'Xbox One')) { + if (isset($this->data->device->model) && ($this->data->device->model == 'Xbox 360' || $this->data->device->model == 'Xbox One' || $this->data->device->model == 'Xbox Series X')) { $this->data->browser->name = 'Internet Explorer'; } } diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index 9a7b7d489..5d77c88b9 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -19,10 +19,6 @@ private function detectGaming($ua) $this->detectSega($ua); } - - - - /* Nintendo Wii and DS */ private function detectNintendo($ua) @@ -245,6 +241,18 @@ private function detectXbox($ua) 'subtype' => Constants\DeviceSubType::CONSOLE ]); } + + /* Xbox Series X */ + + if (preg_match('/Xbox Series X\)$/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Microsoft', + 'model' => 'Xbox Series X', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); + } } diff --git a/tests/data/gaming/microsoft.yaml b/tests/data/gaming/microsoft.yaml index c24212d60..148a3f6fd 100644 --- a/tests/data/gaming/microsoft.yaml +++ b/tests/data/gaming/microsoft.yaml @@ -18,3 +18,7 @@ headers: 'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)' result: { browser: { name: 'Internet Explorer', version: '9.0', type: browser }, engine: { name: Trident, version: '5.0' }, device: { type: gaming, subtype: console, manufacturer: Microsoft, model: 'Xbox 360' } } readable: 'Internet Explorer 9.0 on a Microsoft Xbox 360' +- + headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02' + result: { browser: { name: 'Internet Explorer', version: '9.0', type: browser }, engine: { name: Trident, version: '5.0' }, device: { type: gaming, subtype: console, manufacturer: Microsoft, model: 'Xbox 360' } } + readable: 'xxx' From 9239fdad91d68eea0ace89286ade2b89c0017a4c Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:40:17 +0000 Subject: [PATCH 493/540] Update Gaming.php --- .../Header/Useragent/Device/Gaming.php | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index 5d77c88b9..b5207a412 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -210,18 +210,6 @@ private function detectPlaystation($ua) private function detectXbox($ua) { - /* Xbox 360 */ - - if (preg_match('/Xbox\)$/u', $ua, $match)) { - $this->data->os->reset(); - $this->data->device->setIdentification([ - 'manufacturer' => 'Microsoft', - 'model' => 'Xbox 360', - 'type' => Constants\DeviceType::GAMING, - 'subtype' => Constants\DeviceSubType::CONSOLE - ]); - } - /* Xbox One */ if (preg_match('/Xbox One\)/u', $ua, $match)) { @@ -240,11 +228,10 @@ private function detectXbox($ua) 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); - } /* Xbox Series X */ - if (preg_match('/Xbox Series X\)$/u', $ua, $match)) { + } elseif (preg_match('/Xbox Series X\)$/u', $ua, $match)) { $this->data->os->reset(); $this->data->device->setIdentification([ 'manufacturer' => 'Microsoft', @@ -252,6 +239,17 @@ private function detectXbox($ua) 'type' => Constants\DeviceType::GAMING, 'subtype' => Constants\DeviceSubType::CONSOLE ]); + + /* Xbox 360 */ + + } elseif (preg_match('/Xbox\)$/u', $ua, $match)) { + $this->data->os->reset(); + $this->data->device->setIdentification([ + 'manufacturer' => 'Microsoft', + 'model' => 'Xbox 360', + 'type' => Constants\DeviceType::GAMING, + 'subtype' => Constants\DeviceSubType::CONSOLE + ]); } } From b5ee5ef71c61df03c20676870199313f0bb7ec1b Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:43:06 +0000 Subject: [PATCH 494/540] Update Gaming.php --- src/Analyser/Header/Useragent/Device/Gaming.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index b5207a412..6fe019457 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -211,7 +211,6 @@ private function detectPlaystation($ua) private function detectXbox($ua) { /* Xbox One */ - if (preg_match('/Xbox One\)/u', $ua, $match)) { if ($this->data->isOs('Windows Phone', '=', '10')) { $this->data->os->name = 'Windows'; @@ -230,7 +229,6 @@ private function detectXbox($ua) ]); /* Xbox Series X */ - } elseif (preg_match('/Xbox Series X\)$/u', $ua, $match)) { $this->data->os->reset(); $this->data->device->setIdentification([ @@ -241,7 +239,6 @@ private function detectXbox($ua) ]); /* Xbox 360 */ - } elseif (preg_match('/Xbox\)$/u', $ua, $match)) { $this->data->os->reset(); $this->data->device->setIdentification([ From 501e7194caf5475c43d2c81c1aaa05ec11d2882b Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:50:42 +0000 Subject: [PATCH 495/540] Update Gaming.php --- src/Analyser/Header/Useragent/Device/Gaming.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Device/Gaming.php b/src/Analyser/Header/Useragent/Device/Gaming.php index 6fe019457..348147017 100644 --- a/src/Analyser/Header/Useragent/Device/Gaming.php +++ b/src/Analyser/Header/Useragent/Device/Gaming.php @@ -229,7 +229,7 @@ private function detectXbox($ua) ]); /* Xbox Series X */ - } elseif (preg_match('/Xbox Series X\)$/u', $ua, $match)) { + } elseif (preg_match('/Xbox Series X\)/u', $ua, $match)) { $this->data->os->reset(); $this->data->device->setIdentification([ 'manufacturer' => 'Microsoft', From c40c452d88a9d756142f0edbb8d707a79eef0db0 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 6 Jan 2021 21:56:59 +0000 Subject: [PATCH 496/540] Upadte tests --- tests/data/gaming/microsoft.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/gaming/microsoft.yaml b/tests/data/gaming/microsoft.yaml index 148a3f6fd..f1d09452b 100644 --- a/tests/data/gaming/microsoft.yaml +++ b/tests/data/gaming/microsoft.yaml @@ -20,5 +20,5 @@ readable: 'Internet Explorer 9.0 on a Microsoft Xbox 360' - headers: 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox Series X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36 Edge/20.02' - result: { browser: { name: 'Internet Explorer', version: '9.0', type: browser }, engine: { name: Trident, version: '5.0' }, device: { type: gaming, subtype: console, manufacturer: Microsoft, model: 'Xbox 360' } } - readable: 'xxx' + result: { browser: { name: Edge, version: '20', type: browser }, engine: { name: EdgeHTML, version: '20.02' }, device: { type: gaming, subtype: console, manufacturer: Microsoft, model: 'Xbox Series X' } } + readable: 'Edge 20 on a Microsoft Xbox Series X' From c65ad41ee66cc126a7740d929aab706dd7304c1c Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sat, 23 Jan 2021 15:36:55 +0100 Subject: [PATCH 497/540] Fix typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 76132ead1..7755ec5e2 100644 --- a/README.md +++ b/README.md @@ -264,7 +264,7 @@ Is used to query the `name` and `version` property of the `engine` object. This Is used to query the `name` and `version` property of the `os` object. This function works in exactly the same way as `isBrowser`. `isDetected()` -Is there actually some browser detected, for did we fail to detect anything? +Is there actually some browser detected, or did we fail to detect anything? `toString()` Get a human readable representation of the detected browser, including operating system and device information. From 9babf9ddf47e10136b6597c5cef8205370e588ac Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 10 May 2021 12:00:09 +0200 Subject: [PATCH 498/540] Update Chrome versions --- data/browsers-chrome.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index 7cf0fab7a..69623b4d5 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -91,6 +91,9 @@ '85.0.4183' => 'stable', '86.0.4240' => 'stable', '87.0.4280' => 'stable', + '88.0.4324' => 'stable', + '89.0.4389' => 'stable', + '90.0.4430' => 'stable', ]; Chrome::$MOBILE = [ @@ -155,4 +158,7 @@ '85.0.4183' => 'stable', '86.0.4240' => 'stable', '87.0.4280' => 'stable', + '88.0.4324' => 'stable', + '89.0.4389' => 'stable', + '90.0.4430' => 'stable', ]; From bcf642a1891032de16a5ab976fd352753dd7f9a0 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 10 May 2021 12:18:11 +0200 Subject: [PATCH 499/540] Fix macOS Big Sur detection for 11.1, 11.2, 11.3 and later --- src/Analyser/Derive.php | 2 +- tests/data/desktop/platform-electron.yaml | 24 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Derive.php b/src/Analyser/Derive.php index 241a7b6cf..eec2312e3 100644 --- a/src/Analyser/Derive.php +++ b/src/Analyser/Derive.php @@ -485,7 +485,7 @@ private function deriveBasedOnOperatingSystem() $this->data->os->version->nickname = 'Catalina'; } - if ($this->data->os->version->is('11.0')) { + if ($this->data->os->version->is('11')) { $this->data->os->version->nickname = 'Big Sur'; } } diff --git a/tests/data/desktop/platform-electron.yaml b/tests/data/desktop/platform-electron.yaml index 661519d84..aad78ee49 100644 --- a/tests/data/desktop/platform-electron.yaml +++ b/tests/data/desktop/platform-electron.yaml @@ -14,3 +14,27 @@ headers: 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) AtomShellDefaultApp/0.1.0 Chrome/37.0.2062.102 AtomShell/0.17.2 Safari/537.36' result: { browser: { using: { name: Electron, version: 0.17.2 }, family: { name: Chrome, version: 37 }, type: browser }, engine: { name: Blink }, os: { name: Linux }, device: { type: desktop } } readable: 'Electron 0.17.2 on Linux' +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.40 Electron/11.0.0-beta.20 Safari/537.36' + readable: 'Electron 11.0.0 on macOS Big Sur 11.0' + result: { browser: { using: { name: Electron, version: 11.0.0 }, family: { name: Chrome, version: 87 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Electron/11.0.3 Safari/537.36' + readable: 'Electron 11.0.3 on macOS Big Sur 11.1' + result: { browser: { using: { name: Electron, version: 11.0.3 }, family: { name: Chrome, version: 87 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.1', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Electron/11.0.3 Safari/537.36' + readable: 'Electron 11.0.3 on macOS Big Sur 11.2' + result: { browser: { using: { name: Electron, version: 11.0.3 }, family: { name: Chrome, version: 87 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.2', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Electron/11.3.0 Safari/537.36' + readable: 'Electron 11.3.0 on macOS Big Sur 11.2' + result: { browser: { using: { name: Electron, version: 11.3.0 }, family: { name: Chrome, version: 87 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.2', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Electron/12.0.5 Safari/537.36' + readable: 'Electron 12.0.5 on macOS Big Sur 11.2' + result: { browser: { using: { name: Electron, version: 12.0.5 }, family: { name: Chrome, version: 89 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.2', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_3_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Electron/12.0.6 Safari/537.36' + readable: 'Electron 12.0.6 on macOS Big Sur 11.3' + result: { browser: { using: { name: Electron, version: 12.0.6 }, family: { name: Chrome, version: 89 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.3', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From c13170630d85692fbf5961dce870e023499064b9 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 23 Jun 2021 15:23:55 +0100 Subject: [PATCH 500/540] tests --- src/Analyser/Header/Useragent/Os.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 0e432c917..d13f6ef88 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -1505,7 +1505,7 @@ private function detectWebos($ua) { if (preg_match('/(?:web|hpw)OS\/(?:HP webOS )?([0-9.]*)/u', $ua, $match)) { $this->data->os->name = 'webOS'; - $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); $this->data->device->type = preg_match('/Tablet/iu', $ua) ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; $this->data->device->generic = false; } From 49c033c16640a966af9f42120b129a9ca4fcf528 Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 23 Jun 2021 15:35:45 +0100 Subject: [PATCH 501/540] nA --- src/Analyser/Header/Useragent/Os.php | 2 +- tests/data/mobile/os-webos.yaml | 80 ++++++++++++++-------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index d13f6ef88..99e462d75 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -1505,7 +1505,7 @@ private function detectWebos($ua) { if (preg_match('/(?:web|hpw)OS\/(?:HP webOS )?([0-9.]*)/u', $ua, $match)) { $this->data->os->name = 'webOS'; - $this->data->os->version = new Version([ 'value' => $match[1], 'details' => 3 ]); + $this->data->os->version = new Version([ 'value' => $match[1] ]); $this->data->device->type = preg_match('/Tablet/iu', $ua) ? Constants\DeviceType::TABLET : Constants\DeviceType::MOBILE; $this->data->device->generic = false; } diff --git a/tests/data/mobile/os-webos.yaml b/tests/data/mobile/os-webos.yaml index 441298a9b..11d02d841 100644 --- a/tests/data/mobile/os-webos.yaml +++ b/tests/data/mobile/os-webos.yaml @@ -44,96 +44,96 @@ readable: 'a Palm Pre 2 running webOS 2.2.4' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.0; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.54 Safari/534.6 Pre/3.0' - result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 3' } } - readable: 'a Palm Pre 3 running webOS 2.2' + result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 3' } } + readable: 'a Palm Pre 3 running webOS 2.2.0' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.56 Safari/534.6 P160UNA/1.0' result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } readable: 'a HP Veer running webOS 2.2' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.56 Safari/534.6 Pre/1.2' - result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } - readable: 'a Palm Pre 2 running webOS 2.2' + result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } + readable: 'a Palm Pre 2 running webOS 2.2.4' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.56 Safari/534.6 Pre/3.0' - result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 3' } } - readable: 'a Palm Pre 3 running webOS 2.2' + result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 3' } } + readable: 'a Palm Pre 3 running webOS 2.2.4' - headers: 'User-Agent: Mozilla/5.0 (hp-desktop; Linux; hpwOS/2.0; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 Desktop/1.0' result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.0' }, device: { type: emulator } } readable: 'webOS Browser on an emulator running webOS 2.0' - headers: 'User-Agent: Mozilla/5.0 (iPhone; U; xx)(webOS/2.1.0; U; xx) AppleWebKit/532.2 Version/1.0 Safari/532.2 Pre/1.0 -CET' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } - readable: 'a Palm Pre running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } + readable: 'a Palm Pre running webOS 2.1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.0; U; xx) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/1.0 Safari/525.27.1 Pre/1.0' result: { engine: { name: Webkit, version: 525.27.1 }, os: { name: webOS, version: '1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } readable: 'a Palm Pre running webOS 1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } - readable: 'a Palm Pre running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } + readable: 'a Palm Pre running webOS 1.4.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5.1; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } - readable: 'a Palm Pixi Plus running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } + readable: 'a Palm Pixi Plus running webOS 1.4.5.1' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5.1; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } - readable: 'a Palm Pre Plus running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } + readable: 'a Palm Pre Plus running webOS 1.4.5' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pixi } } - readable: 'a Palm Pixi running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pixi } } + readable: 'a Palm Pixi running webOS 1.4.5' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } - readable: 'a Palm Pixi Plus running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } + readable: 'a Palm Pixi Plus running webOS 1.4.5' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } - readable: 'a Palm Pre running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } + readable: 'a Palm Pre running webOS 1.4.5' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } - readable: 'a Palm Pre Plus running webOS 1.4' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } + readable: 'a Palm Pre Plus running webOS 1.4.5' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.0.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.2' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } - readable: 'a Palm Pre 2 running webOS 2.0' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.0.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } + readable: 'a Palm Pre 2 running webOS 2.0.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } - readable: 'a Palm Pre running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pre } } + readable: 'a Palm Pre running webOS 2.1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } - readable: 'a Palm Pre Plus running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } + readable: 'a Palm Pre Plus running webOS 2.1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.2' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } - readable: 'a Palm Pre 2 running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } + readable: 'a Palm Pre 2 running webOS 2.1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.1; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 P160U/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } - readable: 'a HP Veer running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.1' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } + readable: 'a HP Veer running webOS 2.1.1' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.2; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 P160U/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } - readable: 'a HP Veer running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.2' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } + readable: 'a HP Veer running webOS 2.1.2' - headers: 'User-Agent: Mozilla/5.0 (webOS/2.1.2; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 P160UNA/1.0' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } - readable: 'a HP Veer running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.2' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } + readable: 'a HP Veer running webOS 2.1.2' - headers: 'User-Agent: Mozilla/5.0 (webOS/HP webOS 2.1.0; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } - readable: 'a Palm Pixi Plus running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.0' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } + readable: 'a Palm Pixi Plus running webOS 2.1.0' - headers: 'User-Agent: Mozilla/5.0 (webOS/HP webOS 2.1.2; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } - readable: 'a Palm Pixi Plus running webOS 2.1' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '2.1.2' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pixi Plus' } } + readable: 'a Palm Pixi Plus running webOS 2.1.2' - headers: 'User-Agent: Mozilla/5.0 (Linux; U; en-US) AppleWebKit/532.2 Version/1.0 Safari/532.2 Pixi/1.1' readable: 'a Palm Pixi Plus running webOS' From 003ba35b884c19318a11aedad74f90b9f737c1cd Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 23 Jun 2021 15:40:45 +0100 Subject: [PATCH 502/540] ta --- tests/data/mobile/os-webos.yaml | 8 ++++---- tests/data/tablet/os-webos.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/data/mobile/os-webos.yaml b/tests/data/mobile/os-webos.yaml index 11d02d841..c92893bdf 100644 --- a/tests/data/mobile/os-webos.yaml +++ b/tests/data/mobile/os-webos.yaml @@ -48,8 +48,8 @@ readable: 'a Palm Pre 3 running webOS 2.2.0' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.56 Safari/534.6 P160UNA/1.0' - result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } - readable: 'a HP Veer running webOS 2.2' + result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2.4' }, device: { type: mobile, subtype: smart, manufacturer: HP, model: Veer } } + readable: 'a HP Veer running webOS 2.2.4' - headers: 'User-Agent: Mozilla/5.0 (Linux; webOS/2.2.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) webOSBrowser/221.56 Safari/534.6 Pre/1.2' result: { engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '2.2.4' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre 2' } } @@ -80,8 +80,8 @@ readable: 'a Palm Pixi Plus running webOS 1.4.5.1' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5.1; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1' - result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } - readable: 'a Palm Pre Plus running webOS 1.4.5' + result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5.1' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: 'Pre Plus' } } + readable: 'a Palm Pre Plus running webOS 1.4.5.1' - headers: 'User-Agent: Mozilla/5.0 (webOS/1.4.5; U; xx) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.0' result: { engine: { name: Webkit, version: '532.2' }, os: { name: webOS, version: '1.4.5' }, device: { type: mobile, subtype: smart, manufacturer: Palm, model: Pixi } } diff --git a/tests/data/tablet/os-webos.yaml b/tests/data/tablet/os-webos.yaml index f5b8c6a14..09a1e96de 100644 --- a/tests/data/tablet/os-webos.yaml +++ b/tests/data/tablet/os-webos.yaml @@ -1,11 +1,11 @@ - headers: 'User-Agent: Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.4; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.68 Safari/534.6 TouchPad/1.0' - result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '3.0' }, device: { type: tablet, manufacturer: HP, model: TouchPad } } - readable: 'webOS Browser on a HP TouchPad running webOS 3.0' + result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '3.0.4' }, device: { type: tablet, manufacturer: HP, model: TouchPad } } + readable: 'webOS Browser on a HP TouchPad running webOS 3.0.4' - headers: 'User-Agent: Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.5; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 TouchPad/1.0' - result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '3.0' }, device: { type: tablet, manufacturer: HP, model: TouchPad } } - readable: 'webOS Browser on a HP TouchPad running webOS 3.0' + result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS, version: '3.0.5' }, device: { type: tablet, manufacturer: HP, model: TouchPad } } + readable: 'webOS Browser on a HP TouchPad running webOS 3.0.5' - headers: 'User-Agent: Mozilla/5.0 (iPad; U; xx) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/234.83 Safari/534.6 011/07' result: { browser: { name: 'webOS Browser', type: browser }, engine: { name: Webkit, version: '534.6' }, os: { name: webOS }, device: { type: tablet, manufacturer: HP, model: TouchPad } } From 95a35ab91c956c19e1b67d3618aad69d6d87642d Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 23 Jun 2021 15:43:55 +0100 Subject: [PATCH 503/540] Update lg.yaml --- tests/data/television/lg.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/data/television/lg.yaml b/tests/data/television/lg.yaml index 0105f79cd..fa523f734 100644 --- a/tests/data/television/lg.yaml +++ b/tests/data/television/lg.yaml @@ -322,3 +322,27 @@ headers: 'User-Agent: Mozilla/5.0 (Unknown; Linux armv7l) AppleWebKit/537.1+ Hybridcast/1.0(;00E091;webOSTV3_0;2;2;)0' readable: 'a LG webOS TV' result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36 WebAppManager' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 WebAppManager' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.34 Safari/537.36 WebAppManager' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.2.1 Chrome/38.0.2125.122 Safari/537.36 WebAppManager' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/538.2 (KHTML, like Gecko) Large Screen WebAppManager Safari/538.2' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } +- + headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41' + readable: 'a LG webOS TV' + result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } From 6523645b6094609ae8aeca56049ed88411ed118b Mon Sep 17 00:00:00 2001 From: Ayumi Date: Wed, 23 Jun 2021 15:54:16 +0100 Subject: [PATCH 504/540] Update lg.yaml --- tests/data/television/lg.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/data/television/lg.yaml b/tests/data/television/lg.yaml index fa523f734..d772cc848 100644 --- a/tests/data/television/lg.yaml +++ b/tests/data/television/lg.yaml @@ -325,24 +325,24 @@ - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36 WebAppManager' readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + result: { browser: { family: { name: Chrome, version: 79 }, type: browser }, engine: { name: Blink }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 WebAppManager' readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + result: { browser: { family: { name: Chrome, version: 68 }, type: browser }, engine: { name: Blink }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.34 Safari/537.36 WebAppManager' readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + result: { browser: { family: { name: Chrome, version: 53 }, type: browser }, engine: { name: Blink }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.2.1 Chrome/38.0.2125.122 Safari/537.36 WebAppManager' - readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + readable: 'Qt 5.2.1 on a LG webOS TV' + result: { browser: { using: { name: Qt, version: 5.2.1 }, family: { name: Chrome, version: 38 }, type: browser }, engine: { name: Blink }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/538.2 (KHTML, like Gecko) Large Screen WebAppManager Safari/538.2' readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + result: { engine: { name: Webkit, version: '538.2' }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } - headers: 'User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41' readable: 'a LG webOS TV' - result: { engine: { name: Webkit, version: '537.1' }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } + result: { engine: { name: Webkit, version: '537.41' }, os: { name: webOS }, device: { type: television, manufacturer: LG, series: 'webOS TV' } } From 3e6a51138f564af4eb5ed8786932773594e9ad49 Mon Sep 17 00:00:00 2001 From: Nikita Korotaev Date: Sat, 5 Feb 2022 11:46:59 +0000 Subject: [PATCH 505/540] Allow psr/cache v3.0 to improve PHP 8 support --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 333e74ee2..b860c52fd 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "require": { "php": ">=5.4.0", - "psr/cache": "^1.0" + "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "autoload": { From 5f77aff7c4221e67473279e3c5251d655de7f199 Mon Sep 17 00:00:00 2001 From: Simone Mariotti Date: Wed, 16 Feb 2022 01:17:52 +0000 Subject: [PATCH 506/540] Make the new RegEx compatible with Javascript --- data/applications-bots.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/applications-bots.php b/data/applications-bots.php index b9589eab4..ed05f1373 100644 --- a/data/applications-bots.php +++ b/data/applications-bots.php @@ -15,8 +15,8 @@ [ 'name' => 'Adsbot', 'id' => 'adsbot', 'regexp' => '/Adsbot\/([0-9.]*)/u' ], // Not to be mixed up with Google Adsbot [ 'name' => 'Ahrefs Feeds Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\.Feeds v([0-9.]*)/u' ], [ 'name' => 'Ahrefs Site Audit Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsSiteAudit\/([0-9.]*)/u' ], - [ 'name' => 'Ahrefs News Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)\; News/u' ], - [ 'name' => 'Ahrefs SA Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)\; SA/u' ], + [ 'name' => 'Ahrefs News Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*); News/u' ], + [ 'name' => 'Ahrefs SA Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*); SA/u' ], [ 'name' => 'Ahrefs Bot', 'id' => 'ahrefs', 'regexp' => '/AhrefsBot\/([0-9.]*)/u' ], [ 'name' => 'Alexa', 'id' => 'archiver', 'regexp' => '/ia_archiver/u' ], [ 'name' => 'AltaVista', 'id' => 'altavista', 'regexp' => '/AltaVista Intranet V([0-9.]*)/u' ], @@ -364,7 +364,7 @@ [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\/([0-9.]*)/u' ], [ 'name' => 'Inktomi Slurp', 'id' => 'slurp', 'regexp' => '/Slurp\.so\/([0-9.]*)/u' ], - [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider\-([0-9.]*)/u' ], + [ 'name' => 'Yelp Spider', 'id' => 'yelp', 'regexp' => '/yelpspider-([0-9.]*)/u' ], [ 'name' => 'Yioop Bot', 'id' => 'yioop', 'regexp' => '/YioopBot/u' ], [ 'name' => 'Yisou Spider', 'id' => 'yisou', 'regexp' => '/YisouSpider\/?([0-9.]*)/u' ], [ 'name' => 'Zgrab', 'id' => 'zgrab', 'regexp' => '/zgrab\//u' ], From 752e2930b42e2f5ea51252e507c2578154e83fb2 Mon Sep 17 00:00:00 2001 From: Simone Mariotti Date: Wed, 16 Feb 2022 01:29:43 +0000 Subject: [PATCH 507/540] Adapt RegEx related to Bots and Browser for Javascript --- data/applications-browsers.php | 6 +++--- data/applications-others.php | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/applications-browsers.php b/data/applications-browsers.php index 5619bf561..8371ee0ec 100644 --- a/data/applications-browsers.php +++ b/data/applications-browsers.php @@ -147,7 +147,7 @@ [ 'name' => 'Oregano', 'id' => 'oregano', 'regexp' =>'/Oregano ([0-9.]*)/u' ], // see: http://www.xat.nl/en/riscos/sw/oregano/ [ 'name' => 'Otter', 'id' => 'otter', 'regexp' =>'/Otter(?: Browser)?\/([0-9.]*)/u' ], // see: https://otter-browser.org [ 'name' => 'Pale Moon', 'id' => 'palemoon', 'regexp' =>'/Pale[mM]oon\/([0-9.]*)/u' ], // see: https://www.palemoon.org - [ 'name' => 'Patriott Browser', 'id' => 'patriott', 'regexp' =>'/Patriott\:\:Browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://madgroup.x10.mx/patriott1.php + [ 'name' => 'Patriott Browser', 'id' => 'patriott', 'regexp' =>'/Patriott::Browser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://madgroup.x10.mx/patriott1.php [ 'name' => 'Perk', 'id' => 'perk', 'regexp' =>'/ Perk\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: http://www.perk.com/ [ 'name' => 'Polarity', 'id' => 'polarity', 'regexp' =>'/Polarity\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], [ 'name' => 'Privacy Browser', 'id' => 'privacy', 'regexp' => '/PrivacyBrowser\/([0-9.]*)/u', 'type' => Constants\DeviceType::DESKTOP ], // see: https://www.stoutner.com/privacy-browser/ @@ -227,8 +227,8 @@ [ 'name' => 'Digia @Web', 'id' => 'digia', 'regexp' =>'/Digia @Web\/([0-9.]*)/u' ], [ 'name' => 'Doris', 'id' => 'doris', 'regexp' =>'/Doris\/([0-9.]*)/u' ], [ 'name' => 'Dorothy', 'id' => 'doroty', 'regexp' =>'/Dorothy$/u' ], - [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sandroid\@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.ecosia.android - [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sios\@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://apps.apple.com/us/app/ecosia/id670881887 + [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sandroid@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://play.google.com/store/apps/details?id=com.ecosia.android + [ 'name' => 'Ecosia Browser', 'id' => 'ecosia', 'regexp' => '/Ecosia\sios@([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://apps.apple.com/us/app/ecosia/id670881887 [ 'name' => 'EMOBILE Browser', 'id' => 'www browser', 'regexp' =>'/WWW Browser\/ver([0-9.]*)/u' ], [ 'name' => 'Epic Browser', 'id' => 'epic', 'regexp' => '/ Epic\/([0-9.]*)/u', 'type' => Constants\DeviceType::MOBILE ], // see: https://en.wikipedia.org/wiki/Epic_(web_browser) [ 'name' => 'EUI Browser', 'id' => 'eui', 'regexp' =>'/EUI Browser\/[^0-9\s]*([0-9.]*)/u', 'details' => 2 ], diff --git a/data/applications-others.php b/data/applications-others.php index 5a24f0635..5a1626f1d 100644 --- a/data/applications-others.php +++ b/data/applications-others.php @@ -83,7 +83,7 @@ [ 'name' => 'Wire', 'id' => 'wire', 'regexp' =>'/Wire\/([0-9.]*)/u' ], [ 'name' => 'Yahoo Messenger', 'id' => 'yahoo', 'regexp' =>'/YahooMobile\/1.0 \(im; ([0-9.]+)\)/u', 'details' => 3 ], [ 'name' => 'Yammer', 'id' => 'yammer', 'regexp' =>'/Yammer\/([0-9.]*)/u', 'details' => 2 ], - [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/Zalo\-win32\-([0-9.]*)/u' ], + [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/Zalo-win32-([0-9.]*)/u' ], [ 'name' => 'Zalo', 'id' => 'zalo', 'regexp' => '/ Zalo\/([0-9.]*)/u' ], ], From d0828833c1e2e05654b72e78d6944732adeb606b Mon Sep 17 00:00:00 2001 From: Simone Mariotti Date: Wed, 16 Feb 2022 02:03:06 +0000 Subject: [PATCH 508/540] Add Chrome 91-98 --- data/browsers-chrome.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index 69623b4d5..e068a786c 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -94,6 +94,14 @@ '88.0.4324' => 'stable', '89.0.4389' => 'stable', '90.0.4430' => 'stable', + '91.0.4472' => 'stable', + '92.0.4515' => 'stable', + '93.0.4577' => 'stable', + '94.0.4606' => 'stable', + '95.0.4638' => 'stable', + '96.0.4664' => 'stable', + '97.0.4692' => 'stable', + '98.0.4758' => 'stable', ]; Chrome::$MOBILE = [ @@ -161,4 +169,12 @@ '88.0.4324' => 'stable', '89.0.4389' => 'stable', '90.0.4430' => 'stable', + '91.0.4472' => 'stable', + '92.0.4515' => 'stable', + '93.0.4577' => 'stable', + '94.0.4606' => 'stable', + '95.0.4638' => 'stable', + '96.0.4664' => 'stable', + '97.0.4692' => 'stable', + '98.0.4758' => 'stable', ]; From bc295e43026ab6b9bc6563ae80d498561b952ad4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 10 Apr 2022 21:30:49 +0200 Subject: [PATCH 509/540] Improve PHP 8 compatibility --- src/Data/DeviceModels.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Data/DeviceModels.php b/src/Data/DeviceModels.php index fbe026290..2e559eb1c 100644 --- a/src/Data/DeviceModels.php +++ b/src/Data/DeviceModels.php @@ -262,7 +262,7 @@ public static function identifyList(&$index, &$list, $model, $cleanup = true) public static function applyMatches($model, $original, $pattern) { - if (strpos($model, '$') !== false && substr($pattern, -1) == "!") { + if (!is_null($model) && strpos($model, '$') !== false && substr($pattern, -1) == "!") { if (preg_match('/^' . substr($pattern, 0, -1) . '/iu', $original, $matches)) { foreach ($matches as $k => $v) { $model = str_replace('$' . $k, $v, $model); From 84b4b28c7818edc7ddd2e8de8e782bea9c3f02a0 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 10 Apr 2022 21:35:01 +0200 Subject: [PATCH 510/540] Add a PHP 8.1 test runner --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ac4f8ad91..c52182b7f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0'] + php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8,1'] steps: - name: Checkout source From 7ac60db8b2d6b2344777bc87d686279e18db4cc9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 10 Apr 2022 21:35:39 +0200 Subject: [PATCH 511/540] Fix typo --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c52182b7f..f87090f60 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8,1'] + php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] steps: - name: Checkout source From a204e2f8cc4f6c29e4d7e17e84b10f232ebfdf93 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 10 Apr 2022 23:05:45 +0200 Subject: [PATCH 512/540] Prevent Chrome 100+ from being detected as camouflaged --- src/Analyser/Camouflage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Camouflage.php b/src/Analyser/Camouflage.php index 8bd8ffbfc..7740277a3 100644 --- a/src/Analyser/Camouflage.php +++ b/src/Analyser/Camouflage.php @@ -122,7 +122,7 @@ private function &detectCamouflagedAsChrome($ua) { if ($this->data->isBrowser('Chrome')) { if (preg_match('/(?:Chrome|CrMo|CriOS)\//u', $ua) - && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,2}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/u', $ua) + && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,3}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/u', $ua) ) { $this->data->features[] = 'wrongVersion'; $this->data->camouflage = true; From 0e7d83657499f2214f2ce70976fde25901131042 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Sun, 10 Apr 2022 23:06:08 +0200 Subject: [PATCH 513/540] Add Chrome 99 and 100 --- data/browsers-chrome.php | 4 ++++ tests/data/desktop/browser-chrome.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index e068a786c..7e855c91e 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -102,6 +102,8 @@ '96.0.4664' => 'stable', '97.0.4692' => 'stable', '98.0.4758' => 'stable', + '99.0.4844' => 'stable', + '100.0.4896' => 'stable' ]; Chrome::$MOBILE = [ @@ -177,4 +179,6 @@ '96.0.4664' => 'stable', '97.0.4692' => 'stable', '98.0.4758' => 'stable', + '99.0.4844' => 'stable', + '100.0.4896' => 'stable' ]; diff --git a/tests/data/desktop/browser-chrome.yaml b/tests/data/desktop/browser-chrome.yaml index 60eeba7da..5da08c695 100644 --- a/tests/data/desktop/browser-chrome.yaml +++ b/tests/data/desktop/browser-chrome.yaml @@ -66,3 +66,7 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36' result: { browser: { name: Chrome, version: '87', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.0', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } readable: 'Chrome 87 on macOS Big Sur 11.0' +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' + readable: 'Chrome 100 on macOS Catalina 10.15' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 8bd3230745b8dcb6d24975b63849b4af37f59257 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 11 Apr 2022 11:06:30 +0200 Subject: [PATCH 514/540] Add nickname for macOS 12 --- src/Analyser/Derive.php | 4 ++++ tests/data/desktop/platform-electron.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/Analyser/Derive.php b/src/Analyser/Derive.php index eec2312e3..e61c024fb 100644 --- a/src/Analyser/Derive.php +++ b/src/Analyser/Derive.php @@ -488,6 +488,10 @@ private function deriveBasedOnOperatingSystem() if ($this->data->os->version->is('11')) { $this->data->os->version->nickname = 'Big Sur'; } + + if ($this->data->os->version->is('12')) { + $this->data->os->version->nickname = 'Monterey'; + } } } } diff --git a/tests/data/desktop/platform-electron.yaml b/tests/data/desktop/platform-electron.yaml index aad78ee49..ce193293e 100644 --- a/tests/data/desktop/platform-electron.yaml +++ b/tests/data/desktop/platform-electron.yaml @@ -38,3 +38,7 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_3_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Electron/12.0.6 Safari/537.36' readable: 'Electron 12.0.6 on macOS Big Sur 11.3' result: { browser: { using: { name: Electron, version: 12.0.6 }, family: { name: Chrome, version: 89 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '11.3', nickname: 'Big Sur' } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 12_3_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Electron/12.0.9 Safari/537.36' + readable: 'Electron 12.0.9 on macOS Monterey 12.3' + result: { browser: { using: { name: Electron, version: 12.0.9 }, family: { name: Chrome, version: 89 }, type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '12.3', nickname: Monterey } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 01fdc8abd574a684f034cb4c32312a4c0ac7d07c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 11 Apr 2022 12:07:03 +0200 Subject: [PATCH 515/540] Update iPhone and iPad model numbers --- data/models-ios.php | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/data/models-ios.php b/data/models-ios.php index e006e8df0..e4c7ebf29 100644 --- a/data/models-ios.php +++ b/data/models-ios.php @@ -57,6 +57,16 @@ 'iPhone12,1' => [ 'Apple', 'iPhone 11', DeviceType::MOBILE ], 'iPhone12,3' => [ 'Apple', 'iPhone 11 Pro', DeviceType::MOBILE ], 'iPhone12,5' => [ 'Apple', 'iPhone 11 Pro Max', DeviceType::MOBILE ], + 'iPhone12,8' => [ 'Apple', 'iPhone SE (2nd gen)', DeviceType::MOBILE ], + 'iPhone13,1' => [ 'Apple', 'iPhone 12 Mini', DeviceType::MOBILE ], + 'iPhone13,2' => [ 'Apple', 'iPhone 12', DeviceType::MOBILE ], + 'iPhone13,3' => [ 'Apple', 'iPhone 12 Pro', DeviceType::MOBILE ], + 'iPhone13,4' => [ 'Apple', 'iPhone 12 Pro Max', DeviceType::MOBILE ], + 'iPhone14,2' => [ 'Apple', 'iPhone 13 Pro', DeviceType::MOBILE ], + 'iPhone14,3' => [ 'Apple', 'iPhone 13 Pro Max', DeviceType::MOBILE ], + 'iPhone14,4' => [ 'Apple', 'iPhone 13 Mini', DeviceType::MOBILE ], + 'iPhone14,5' => [ 'Apple', 'iPhone 13', DeviceType::MOBILE ], + 'iPod1,1' => [ 'Apple', 'iPod touch', DeviceType::MEDIA ], 'iPod2,1' => [ 'Apple', 'iPod touch (2nd gen)', DeviceType::MEDIA ], 'iPod3,1' => [ 'Apple', 'iPod touch (3rd gen)', DeviceType::MEDIA ], @@ -114,8 +124,28 @@ 'iPad8,6' => [ 'Apple', 'iPad Pro (12.9″, 3rd gen)', DeviceType::TABLET ], 'iPad8,7' => [ 'Apple', 'iPad Pro (12.9″, 3rd gen)', DeviceType::TABLET ], 'iPad8,8' => [ 'Apple', 'iPad Pro (12.9″, 3rd gen)', DeviceType::TABLET ], + 'iPad8,9' => [ 'Apple', 'iPad Pro (11.0″, 4th gen)', DeviceType::TABLET ], + 'iPad8,10' => [ 'Apple', 'iPad Pro (11.0″, 4th gen)', DeviceType::TABLET ], + 'iPad8,11' => [ 'Apple', 'iPad Pro (12.9″, 4th gen)', DeviceType::TABLET ], + 'iPad8,12' => [ 'Apple', 'iPad Pro (12.9″, 4th gen)', DeviceType::TABLET ], 'iPad11,1' => [ 'Apple', 'iPad mini (5th gen)', DeviceType::TABLET ], 'iPad11,2' => [ 'Apple', 'iPad mini (5th gen)', DeviceType::TABLET ], 'iPad11,3' => [ 'Apple', 'iPad Air (3rd gen)', DeviceType::TABLET ], 'iPad11,4' => [ 'Apple', 'iPad Air (3rd gen)', DeviceType::TABLET ], + 'iPad11,6' => [ 'Apple', 'iPad (8th gen)', DeviceType::TABLET ], + 'iPad11,7' => [ 'Apple', 'iPad (8th gen)', DeviceType::TABLET ], + 'iPad12,1' => [ 'Apple', 'iPad (9th gen)', DeviceType::TABLET ], + 'iPad12,2' => [ 'Apple', 'iPad (9th gen)', DeviceType::TABLET ], + 'iPad14,1' => [ 'Apple', 'iPad mini (6th gen)', DeviceType::TABLET ], + 'iPad14,2' => [ 'Apple', 'iPad mini (6th gen)', DeviceType::TABLET ], + 'iPad13,1' => [ 'Apple', 'iPad Air (4th gen)', DeviceType::TABLET ], + 'iPad13,2' => [ 'Apple', 'iPad Air (4th gen)', DeviceType::TABLET ], + 'iPad13,4' => [ 'Apple', 'iPad Pro (11.0″, 5th gen)', DeviceType::TABLET ], + 'iPad13,5' => [ 'Apple', 'iPad Pro (11.0″, 5th gen)', DeviceType::TABLET ], + 'iPad13,6' => [ 'Apple', 'iPad Pro (11.0″, 5th gen)', DeviceType::TABLET ], + 'iPad13,7' => [ 'Apple', 'iPad Pro (11.0″, 5th gen)', DeviceType::TABLET ], + 'iPad13,8' => [ 'Apple', 'iPad Pro (12.9″, 5th gen)', DeviceType::TABLET ], + 'iPad13,9' => [ 'Apple', 'iPad Pro (12.9″, 5th gen)', DeviceType::TABLET ], + 'iPad13,10' => [ 'Apple', 'iPad Pro (12.9″, 5th gen)', DeviceType::TABLET ], + 'iPad13,11' => [ 'Apple', 'iPad Pro (12.9″, 5th gen)', DeviceType::TABLET ], ]; From 5a1b5355df6daeeefe1abcdc55efd009b10a9c21 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 11 Apr 2022 13:24:10 +0200 Subject: [PATCH 516/540] Android model update --- data/indices/models-android.php | 849 ++++++++++++++++++-------------- data/models-android.php | 129 ++++- 2 files changed, 594 insertions(+), 384 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 2f0d74b46..91d8f6bc3 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -44,19 +44,20 @@ 36 => 'G[0-9]{4,4}!!', 37 => 'H[0-9]{4,4}!!', 38 => 'I[0-9]{4,4}!!', - 39 => 'E[0-9]{2,2}[a-z]!!', - 40 => 'L[0-9]{2,2}[a-z]!!', - 41 => '(SNM\\-)?M[0-9]{2,2}[a-z]!!', - 42 => 'S[0-9]{2,2}[a-z]!!', - 43 => '(XOLO )?[ABQX][0-9]{3,4}!!', - 44 => '(ZTE ?)?N[0-9]{3,3}!!', - 45 => '(ZXY-)?(ZTE )?N[0-9]{4,4}!!', - 46 => '(ZTE ?)?U[0-9]{3,3}!!', - 47 => '(ZTE ?)?V[0-9]{3,3}[A-Z]!!', - 48 => '(ZTE ?)?V ?[0-9]{3,3}!!', - 49 => '(ZTE ?)?X[0-9]{3,3}!!', - 50 => '(ZTE )?Z[0-9]!!', - 51 => '[a-z][a-z](?:-[a-z][a-z])?, SmartTabII7!', + 39 => 'J[0-9]{4,4}!!', + 40 => 'E[0-9]{2,2}[a-z]!!', + 41 => 'L[0-9]{2,2}[a-z]!!', + 42 => '(SNM\\-)?M[0-9]{2,2}[a-z]!!', + 43 => 'S[0-9]{2,2}[a-z]!!', + 44 => '(XOLO )?[ABQX][0-9]{3,4}!!', + 45 => '(ZTE ?)?N[0-9]{3,3}!!', + 46 => '(ZXY-)?(ZTE )?N[0-9]{4,4}!!', + 47 => '(ZTE ?)?U[0-9]{3,3}!!', + 48 => '(ZTE ?)?V[0-9]{3,3}[A-Z]!!', + 49 => '(ZTE ?)?V ?[0-9]{3,3}!!', + 50 => '(ZTE ?)?X[0-9]{3,3}!!', + 51 => '(ZTE )?Z[0-9]!!', + 52 => '[a-z][a-z](?:-[a-z][a-z])?, SmartTabII7!', ), '@00' => array ( @@ -126,6 +127,10 @@ 1 => '(Xiaomi )?20!!', 2 => '(Xiaomi |HM)?20!!', ), + '@21' => + array ( + 0 => '(Xiaomi |HM)?21!!', + ), '@2P' => array ( 0 => '2PQ93', @@ -195,63 +200,64 @@ ), '@50' => array ( - 0 => '5010[DEGSUX]!', - 1 => '5011[A]!', - 2 => '5012[G]!', - 3 => '5015[ADEX]!', - 4 => '5016[AJ]!', - 5 => '5017[B]!', - 6 => '5017[ADEOX]!', - 7 => '5019[D]!', - 8 => '5020[A]!', - 9 => '5022[DEX]!', - 10 => '5023[F]!', - 11 => '5024[D]!', - 12 => '5025[DEGX]!', - 13 => '5027[B]!', - 14 => '5033[ADJOX]!', - 15 => '5034[D]!', - 16 => '5036[D]!', - 17 => '5038[ADEX]!', - 18 => '5039[D]!', - 19 => '5041[C]!', - 20 => '5042[ADEFGTWXY]!', - 21 => '5044[ADGIOSTY]!', - 22 => '5045[ADFGJTXY]!', - 23 => '5046[DGIJUY]!', - 24 => '5047[DIUY]!', - 25 => '5049[EGSWZ]!', - 26 => '5050[ASYX]!', - 27 => '5051[ADJMX]!', - 28 => '5052[DY]!', - 29 => '5053[D]!', - 30 => '5054[ADOSTX]!', - 31 => '5054[NW]!', - 32 => '5056[ADEINUWX]!', - 33 => '5056[O]!', - 34 => '5057[M]!', - 35 => '5058[I]!', - 36 => '5059[ADJTXY]!', - 37 => '5060[D]!', - 38 => '5065[ADJNWX]!', - 39 => '5070[DJX]!', - 40 => '5080[A]!', - 41 => '5080[DFQX]!', - 42 => '5085[CDJNOYX]!', - 43 => '5086[ADY]!', - 44 => '5090[Y]!', - 45 => '5095[BIKY]!', - 46 => '5096[AI]!', - 47 => '5098[OS]!', - 48 => '5099[ADY]!', - 49 => '504Q', - 50 => '504Q+', - 51 => '504QP', - 52 => '501LV', - 53 => '(48|50|55)AX600C!', - 54 => '5080C Pro', - 55 => '50[0-9]SO!!', - 56 => '502ZT', + 0 => '5002[H]!', + 1 => '5010[DEGSUX]!', + 2 => '5011[A]!', + 3 => '5012[G]!', + 4 => '5015[ADEX]!', + 5 => '5016[AJ]!', + 6 => '5017[B]!', + 7 => '5017[ADEOX]!', + 8 => '5019[D]!', + 9 => '5020[A]!', + 10 => '5022[DEX]!', + 11 => '5023[F]!', + 12 => '5024[D]!', + 13 => '5025[DEGX]!', + 14 => '5027[B]!', + 15 => '5033[ADJOX]!', + 16 => '5034[D]!', + 17 => '5036[D]!', + 18 => '5038[ADEX]!', + 19 => '5039[D]!', + 20 => '5041[C]!', + 21 => '5042[ADEFGTWXY]!', + 22 => '5044[ADGIOSTY]!', + 23 => '5045[ADFGJTXY]!', + 24 => '5046[DGIJUY]!', + 25 => '5047[DIUY]!', + 26 => '5049[EGSWZ]!', + 27 => '5050[ASYX]!', + 28 => '5051[ADJMX]!', + 29 => '5052[DY]!', + 30 => '5053[D]!', + 31 => '5054[ADOSTX]!', + 32 => '5054[NW]!', + 33 => '5056[ADEINUWX]!', + 34 => '5056[O]!', + 35 => '5057[M]!', + 36 => '5058[I]!', + 37 => '5059[ADJTXY]!', + 38 => '5060[D]!', + 39 => '5065[ADJNWX]!', + 40 => '5070[DJX]!', + 41 => '5080[A]!', + 42 => '5080[DFQX]!', + 43 => '5085[CDJNOYX]!', + 44 => '5086[ADY]!', + 45 => '5090[Y]!', + 46 => '5095[BIKY]!', + 47 => '5096[AI]!', + 48 => '5098[OS]!', + 49 => '5099[ADY]!', + 50 => '504Q', + 51 => '504Q+', + 52 => '504QP', + 53 => '501LV', + 54 => '(48|50|55)AX600C!', + 55 => '5080C Pro', + 56 => '50[0-9]SO!!', + 57 => '502ZT', ), '@55' => array ( @@ -608,9 +614,10 @@ 7 => 'AC45NE', 8 => 'ACM3066-8', 9 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', - 10 => 'ACT2000', - 11 => 'ACU Volvo', - 12 => 'Acqua', + 10 => 'AC2003', + 11 => 'ACT2000', + 12 => 'ACU Volvo', + 13 => 'Acqua', ), '@AD' => array ( @@ -764,7 +771,7 @@ 34 => 'Allwinner A10', 35 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 36 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 37 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 37 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 38 => 'Alfa A93 POP', 39 => 'Alfa L', 40 => 'Ally', @@ -849,7 +856,7 @@ 41 => 'AN10G2-LZ', 42 => 'AN10BG3-LZ', 43 => 'AN7DG3C', - 44 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 44 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 45 => '(iBall )?Andi!!', 46 => 'AND1', 47 => 'AND1E', @@ -996,7 +1003,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1193,7 +1200,7 @@ '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1207,7 +1214,7 @@ 7 => 'Blaze S180', 8 => 'BLADE LE 70', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 11 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 12 => '(BLF-)?lephone!!', 13 => 'Blackphone 2', @@ -1233,7 +1240,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1388,7 +1395,7 @@ 9 => 'Casper VIA!!', 10 => 'CAT!!', 11 => 'Candy TV', - 12 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 12 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 13 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', 14 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 15 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', @@ -1423,7 +1430,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1458,7 +1465,7 @@ 4 => 'Clanga SE 097-1008', 5 => 'CLP281X', 6 => 'Click', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => '(Intex )?Cloud!!', 9 => 'CLIQ', 10 => 'CLIQ XT', @@ -1497,7 +1504,7 @@ 15 => 'Connect-2G-2.0', 16 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 17 => 'Coquettish Red', - 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 19 => 'Comet', 20 => 'Corvair', 21 => 'COOLPIX S800c', @@ -1531,12 +1538,32 @@ 22 => 'CPH1859', 23 => 'CPH1881', 24 => 'CPH1823', - 25 => 'CPH1969', - 26 => 'CPH1721', - 27 => 'CPH1611', - 28 => 'CPH1879', - 29 => 'CPH1861', - 30 => 'CPH1979', + 25 => 'CPH1907', + 26 => 'CPH1931', + 27 => 'CPH1969', + 28 => 'CPH2021', + 29 => 'CPH2043', + 30 => 'CPH2067', + 31 => 'CPH2089', + 32 => 'CPH2091', + 33 => 'CPH2127', + 34 => 'CPH2135', + 35 => 'CPH2145', + 36 => 'CPH2161', + 37 => 'CPH2185', + 38 => 'CPH2195', + 39 => 'CPH2197', + 40 => 'CPH2207', + 41 => 'CPH2211', + 42 => 'CPH2219', + 43 => 'CPH2251', + 44 => 'CPH2269', + 45 => 'CPH2273', + 46 => 'CPH1721', + 47 => 'CPH1611', + 48 => 'CPH1879', + 49 => 'CPH1861', + 50 => 'CPH1979', ), '@CR' => array ( @@ -1617,7 +1644,7 @@ '@D2' => array ( 0 => 'D2-[0-9]{3,3}!!', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@D5' => array ( @@ -1650,7 +1677,7 @@ 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 2 => 'Dakele A380', 3 => 'DAKELE MC001', - 4 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 5 => 'DATAM803HC', 6 => 'DATAM805HC', 7 => 'DATAM819HD!', @@ -1733,7 +1760,7 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', ), '@DM' => @@ -1756,6 +1783,7 @@ 2 => 'DNS S!!', 3 => 'DNSS4003', 4 => 'DNS4502M', + 5 => 'DN2103', ), '@DO' => array ( @@ -1827,7 +1855,7 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@DW' => array ( @@ -1933,11 +1961,12 @@ array ( 0 => 'EBEN!!', 1 => 'EBEST!!', - 2 => 'EB-4063-X', - 3 => 'EB-A71GJ', - 4 => 'EB-W51GJ', - 5 => 'EB-WX1GJ', - 6 => 'EB-L76G-B', + 2 => 'EB2103', + 3 => 'EB-4063-X', + 4 => 'EB-A71GJ', + 5 => 'EB-W51GJ', + 6 => 'EB-WX1GJ', + 7 => 'EB-L76G-B', ), '@EC' => array ( @@ -1950,7 +1979,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -1986,7 +2015,7 @@ 4 => 'ELIFE-E3', 5 => 'Elife E5', 6 => 'ElifeE6', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => 'Elektra L', 9 => 'Elektra XL', 10 => 'Electrify', @@ -2017,7 +2046,7 @@ 0 => 'EMBT3C', 1 => 'EM63', 2 => 'EM01F', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => 'eMAX mini', 5 => 'EMR1879', ), @@ -2081,7 +2110,7 @@ 9 => 'EVO 4G', 10 => 'Evo V 4G', 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 12 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 12 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 13 => '(EV|KM)-[ES][0-9]{3,3}!!', 14 => 'Event', 15 => 'EVERY35', @@ -2160,7 +2189,7 @@ array ( 0 => 'FIH-FB0', 1 => 'FIH-!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Find 5', 4 => 'FIND7', ), @@ -2241,11 +2270,12 @@ 0 => 'FP1', 1 => 'FP1U', 2 => 'FP2', + 3 => 'FP3', ), '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2326,11 +2356,11 @@ ), '@G6' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G9' => array ( @@ -2620,7 +2650,7 @@ array ( 0 => 'Grouper', 1 => 'GR-TB!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'greenridge', 4 => 'Graphos A10', 5 => '(ZTE )?(Grand|Mimosa)!!', @@ -2629,8 +2659,9 @@ array ( 0 => 'GS01', 1 => '(Gsmart|Gigabyte|Rio)!!', - 2 => 'GS02', - 3 => 'GS03', + 2 => 'GS190', + 3 => 'GS02', + 4 => 'GS03', ), '@GT' => array ( @@ -2682,11 +2713,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2732,7 +2763,7 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 4 => 'HD190[01]!', 5 => 'HD191[03]!', ), @@ -2770,7 +2801,7 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( @@ -2780,15 +2811,16 @@ 3 => '(Xiaomi )?(Redmi|RedRice|HM)!!', 4 => '(Xiaomi )?(Redmi|HM)[ \\-]?Note!!', 5 => '(Xiaomi |HM)?20!!', + 6 => '(Xiaomi |HM)?21!!', ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2801,6 +2833,10 @@ 3 => 'HP-TouchPad', 4 => '(HP )?Touchpad!', ), + '@HR' => + array ( + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + ), '@HS' => array ( 0 => 'HS-[0-9]{1,2}DTB!!', @@ -2847,9 +2883,9 @@ 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 13 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 13 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', 15 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', 16 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', @@ -2876,9 +2912,9 @@ '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', 5 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 6 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', @@ -3036,8 +3072,10 @@ 22 => 'INQ Mayfair (EU)', 23 => '(iNote|itel)!!', 24 => 'Infinity', - 25 => 'Internet TV', - 26 => 'Internet TV Box', + 25 => 'IN201[01357]!', + 26 => 'IN202[0135]!', + 27 => 'Internet TV', + 28 => 'Internet TV Box', ), '@IO' => array ( @@ -3122,6 +3160,10 @@ 1 => 'JDN2-AL00HN', 2 => 'JDN2-W09HN', ), + '@JE' => + array ( + 0 => 'Jelly2', + ), '@JI' => array ( 0 => '(JIAYU|JY)!!', @@ -3137,7 +3179,7 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JO' => array ( @@ -3147,7 +3189,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3235,6 +3277,7 @@ '@KB' => array ( 0 => 'KB901', + 1 => 'KB200[01357]!', ), '@KC' => array ( @@ -3273,7 +3316,7 @@ '@KI' => array ( 0 => 'Kindle Fire', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 3 => 'KIOTO 793', 4 => 'KITE', @@ -3285,7 +3328,7 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( @@ -3465,47 +3508,52 @@ 73 => 'Lenovo YT3-X90L', 74 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', 75 => 'Lenovo TB-7304F', - 76 => 'Lenovo TB-X103F', - 77 => 'Lenovo TB2-X30F', - 78 => 'Lenovo TB2-X30L', - 79 => 'Lenovo TB3-730X', - 80 => 'Lenovo TB3-710F', - 81 => 'Lenovo TB3-710I', - 82 => 'Lenovo TB-7703X', - 83 => 'Lenovo TB3-850F', - 84 => 'Lenovo TB3-850M', - 85 => 'Lenovo TB3-X70F', - 86 => 'Lenovo TB3-X70L', - 87 => 'Lenovo TB-8504F', - 88 => 'Lenovo TB-8703F', - 89 => 'Lenovo TB-8704F', - 90 => 'Lenovo TB-X304F', - 91 => 'Lenovo TB-X704F', - 92 => 'Lenovo TB-X704L', - 93 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 94 => 'Lenovo Pad A4', - 95 => 'Lenovo', - 96 => 'lepad 001b', - 97 => 'lepad 001n', - 98 => '(Lenovo |Lephone )?3GC101!', - 99 => '(Lenovo |Lephone )?3GW100!', - 100 => '(Lenovo |Lephone )?3GW101!', - 101 => '(Lenovo )?S1[- ]37AH0!', - 102 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 103 => 'Lenovo!!', - 104 => 'LenovoTV 40S9', - 105 => 'LenovoTV 50S52', - 106 => 'Lenovo Z2', - 107 => '(BLF-)?lephone!!', - 108 => 'Le Pan Mini', - 109 => 'Le Pan TC802A', - 110 => 'Le Pan TC1010', - 111 => 'Le Pan TC1020', - 112 => 'LePanII', - 113 => 'Le Pan S', - 114 => 'LENNY', - 115 => 'LENNY2', - 116 => 'LENNY3', + 76 => 'Lenovo TB-J616F', + 77 => 'Lenovo TB-X606F', + 78 => 'Lenovo TB-X103F', + 79 => 'Lenovo TB2-X30F', + 80 => 'Lenovo TB2-X30L', + 81 => 'Lenovo TB3-730X', + 82 => 'Lenovo TB3-710F', + 83 => 'Lenovo TB3-710I', + 84 => 'Lenovo TB-7703X', + 85 => 'Lenovo TB3-850F', + 86 => 'Lenovo TB3-850M', + 87 => 'Lenovo TB3-X70F', + 88 => 'Lenovo TB3-X70L', + 89 => 'Lenovo TB-8504F', + 90 => 'Lenovo TB-8703F', + 91 => 'Lenovo TB-8704F', + 92 => 'Lenovo TB-X304F', + 93 => 'Lenovo TB-X704F', + 94 => 'Lenovo TB-X704L', + 95 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 96 => 'Lenovo Pad A4', + 97 => 'Lenovo', + 98 => 'lepad 001b', + 99 => 'lepad 001n', + 100 => '(Lenovo |Lephone )?3GC101!', + 101 => '(Lenovo |Lephone )?3GW100!', + 102 => '(Lenovo |Lephone )?3GW101!', + 103 => '(Lenovo )?S1[- ]37AH0!', + 104 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 105 => 'Lenovo!!', + 106 => 'LenovoTV 40S9', + 107 => 'LenovoTV 50S52', + 108 => 'Lenovo Z2', + 109 => '(BLF-)?lephone!!', + 110 => 'Le Pan Mini', + 111 => 'Le Pan TC802A', + 112 => 'Le Pan TC1010', + 113 => 'Le Pan TC1020', + 114 => 'LePanII', + 115 => 'Le Pan S', + 116 => 'LE2101', + 117 => 'LE211[135]!', + 118 => 'LE212[01357]!', + 119 => 'LENNY', + 120 => 'LENNY2', + 121 => 'LENNY3', ), '@LG' => array ( @@ -3596,7 +3644,7 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => @@ -3605,31 +3653,33 @@ 1 => 'LM-G715!', 2 => 'LM-G810!', 3 => 'LM-G820!', - 4 => 'LM-Q610!', - 5 => 'LM-Q617!', - 6 => 'LM-Q710!', - 7 => 'LM-Q720!', - 8 => 'LM-Q725!', - 9 => 'LM-Q815!', - 10 => 'LM-Q850!', - 11 => 'LM-Q910!', - 12 => 'LM-Q925!', - 13 => 'LM-V350!', - 14 => 'LM-V40[59]!', - 15 => 'LM-V450!', - 16 => 'LM-V500!', - 17 => 'LM-X120!', - 18 => 'LM-X210!', - 19 => 'LM-X212!', - 20 => 'LM-X220!', - 21 => 'LM-X320!', - 22 => 'LM-X410!', - 23 => 'LM-X415!', - 24 => 'LM-X420!', - 25 => 'LM-X510!', - 26 => 'LM-X525!', - 27 => 'LM-X625!', - 28 => 'LM-Y110!', + 4 => 'LM-G900!', + 5 => 'LM-Q610!', + 6 => 'LM-Q617!', + 7 => 'LM-Q710!', + 8 => 'LM-Q720!', + 9 => 'LM-Q725!', + 10 => 'LM-Q815!', + 11 => 'LM-Q850!', + 12 => 'LM-Q910!', + 13 => 'LM-Q925!', + 14 => 'LM-V350!', + 15 => 'LM-V40[59]!', + 16 => 'LM-V450!', + 17 => 'LM-V500!', + 18 => 'LM-V600!', + 19 => 'LM-X120!', + 20 => 'LM-X210!', + 21 => 'LM-X212!', + 22 => 'LM-X220!', + 23 => 'LM-X320!', + 24 => 'LM-X410!', + 25 => 'LM-X415!', + 26 => 'LM-X420!', + 27 => 'LM-X510!', + 28 => 'LM-X525!', + 29 => 'LM-X625!', + 30 => 'LM-Y110!', ), '@LO' => array ( @@ -3639,7 +3689,7 @@ ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -3745,7 +3795,7 @@ '@M1' => array ( 0 => 'M19', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 2 => 'M1050S', 3 => 'M1', 4 => 'm1 metal', @@ -3760,6 +3810,17 @@ 2 => 'm2 note', 3 => 'm2', 4 => 'M2mini', + 5 => 'M2002J9G', + 6 => 'M2007J17G', + 7 => 'M2007J20CG', + 8 => 'M2010J19SY', + 9 => 'M2012K11AG', + 10 => 'M2012K11G', + 11 => 'M2101K6G', + 12 => 'M2101K7AG', + 13 => 'M2101K7BNY', + 14 => 'M2101K9G', + 15 => 'M2102J20SG', ), '@M3' => array ( @@ -3844,19 +3905,20 @@ 3 => '(bq|Aquaris|Edison|Maxwell)!!', 4 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 5 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 6 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', - 7 => 'MAX FIND 5.0', - 8 => 'Malata!!', - 9 => 'Masstel!!', - 10 => 'MASTONE!!', - 11 => 'Maxtron!!', - 12 => 'magi', - 13 => 'MagicBox', - 14 => '(Xiaomi )?(MI )?MAX$!', - 15 => '(Xiaomi )?(MI )?MAX 2$!', - 16 => '(Xiaomi )?(MI )?MAX 3$!', - 17 => 'markf', - 18 => 'markw', + 6 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', + 8 => 'MAX FIND 5.0', + 9 => 'Malata!!', + 10 => 'Masstel!!', + 11 => 'MASTONE!!', + 12 => 'Maxtron!!', + 13 => 'magi', + 14 => 'MagicBox', + 15 => '(Xiaomi )?(MI )?MAX$!', + 16 => '(Xiaomi )?(MI )?MAX 2$!', + 17 => '(Xiaomi )?(MI )?MAX 3$!', + 18 => 'markf', + 19 => 'markw', ), '@MB' => array ( @@ -3975,20 +4037,23 @@ 38 => 'MI 8 UD', 39 => 'MI 8 Lite', 40 => 'MI 9', - 41 => 'Mi 9T Pro', - 42 => 'Mi9 Pro 5G', - 43 => '(Xiaomi|Xiaomi Mi|MI) Note!!', - 44 => '(Xiaomi )?(MI )?MAX$!', - 45 => '(Xiaomi )?(MI )?MAX 2$!', - 46 => '(Xiaomi )?(MI )?MAX 3$!', - 47 => '(Xiaomi )?(MI )?MIX$!', - 48 => '(Xiaomi )?(MI )?MIX 2$!', - 49 => '(Xiaomi )?(MI )?MIX 2S$!', - 50 => 'mido', - 51 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 52 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 53 => '(Xiaomi|Xiaomi Mi|MI)TV!!', - 54 => '(ZTE )?(Grand|Mimosa)!!', + 41 => 'Mi 9T', + 42 => 'Mi 9T Pro', + 43 => 'Mi9 Pro 5G', + 44 => 'Mi Note 10 Lite', + 45 => '(Xiaomi|Xiaomi Mi|MI) Note!!', + 46 => '(Xiaomi )?(MI )?MAX$!', + 47 => '(Xiaomi )?(MI )?MAX 2$!', + 48 => '(Xiaomi )?(MI )?MAX 3$!', + 49 => '(Xiaomi )?(MI )?MIX$!', + 50 => '(Xiaomi )?(MI )?MIX 2$!', + 51 => '(Xiaomi )?(MI )?MIX 2S$!', + 52 => 'Mi MIX 3', + 53 => 'mido', + 54 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 55 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 56 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 57 => '(ZTE )?(Grand|Mimosa)!!', ), '@MK' => array ( @@ -4037,74 +4102,80 @@ 19 => 'motorola one power', 20 => 'motorola one vision', 21 => 'motorola one zoom', - 22 => 'Moto Droid', - 23 => 'Motorola Pro XT610', - 24 => 'Motorola Milestone MAXX', - 25 => 'Motorola Backflip Me600', - 26 => 'Moto ME860', - 27 => 'Moto C', - 28 => 'Moto C Plus', - 29 => '(Moto)?E2$!', - 30 => '(Moto)?E2\\(4G-LTE\\)$!', - 31 => 'Motorola MotoE2!', - 32 => 'Moto E4', - 33 => 'Moto E (4)', - 34 => 'Moto E (4) Plus', - 35 => 'moto e5 cruise', - 36 => 'moto e5 play', - 37 => '(Moto)?G3$!', - 38 => '(Moto)?G3-TE$!', - 39 => 'Moto G 2015', - 40 => 'Moto G (2015)', - 41 => 'Moto G (2014', - 42 => 'MOTOROLA MOTOG', - 43 => 'Moto G Play', - 44 => 'Moto G Turbo', - 45 => 'Moto G4', - 46 => 'Moto G (4', - 47 => 'Moto G (4)', - 48 => 'Moto G4 Plus', - 49 => 'Moto G 5', - 50 => 'Moto G (5', - 51 => 'Moto G (5)', - 52 => 'Moto G (5) Plus', - 53 => 'Moto G (5S', - 54 => 'Moto G (5S)', - 55 => 'Moto G (5S) Plus', - 56 => 'moto g(6', - 57 => 'moto g(6)', - 58 => 'moto g(6) (XT1925DL)', - 59 => 'moto g(6) forge', - 60 => 'moto g(6) play', - 61 => 'moto g(6) plus', - 62 => 'moto g(7', - 63 => 'moto g(7)', - 64 => 'moto g(7) optimo (XT1952DL)', - 65 => 'moto g(7) play', - 66 => 'moto g(7) plus', - 67 => 'moto g(7) power', - 68 => 'moto g(7) supra', - 69 => 'moto g(8', - 70 => 'Moto Z (2)', - 71 => 'Moto Z2 Play', - 72 => 'Moto X Pro', - 73 => 'moto x4', - 74 => 'Moto Backflip', - 75 => 'MOTOROLA XOOM MZ606', - 76 => 'MOTOROLA RAZR', - 77 => 'MOTWX435KT', - 78 => '(PLOYER-)?MOMO!!', - 79 => 'MOB-5045', - 80 => 'Mobii 7', - 81 => 'MoFing', - 82 => 'mocha', - 83 => 'MO-01J', - 84 => 'MO-01K', - 85 => 'Movistar Express', - 86 => 'Movistar Link', - 87 => 'Movistar Motion', - 88 => 'Movistar Prime', - 89 => 'MOVE', + 22 => 'motorola edge 20 pro', + 23 => 'Moto Droid', + 24 => 'Motorola Pro XT610', + 25 => 'Motorola Milestone MAXX', + 26 => 'Motorola Backflip Me600', + 27 => 'Moto ME860', + 28 => 'Moto C', + 29 => 'Moto C Plus', + 30 => '(Moto)?E2$!', + 31 => '(Moto)?E2\\(4G-LTE\\)$!', + 32 => 'Motorola MotoE2!', + 33 => 'Moto E4', + 34 => 'Moto E (4)', + 35 => 'Moto E (4) Plus', + 36 => 'moto e5 cruise', + 37 => 'moto e5 play', + 38 => '(Moto)?G3$!', + 39 => '(Moto)?G3-TE$!', + 40 => 'Moto G 2015', + 41 => 'Moto G (2015)', + 42 => 'Moto G (2014', + 43 => 'MOTOROLA MOTOG', + 44 => 'Moto G Play', + 45 => 'Moto G Turbo', + 46 => 'moto g 5G', + 47 => 'moto g 5G plus', + 48 => 'Moto G4', + 49 => 'Moto G (4', + 50 => 'Moto G (4)', + 51 => 'Moto G4 Plus', + 52 => 'Moto G 5', + 53 => 'Moto G (5', + 54 => 'Moto G (5)', + 55 => 'Moto G (5) Plus', + 56 => 'Moto G (5S', + 57 => 'Moto G (5S)', + 58 => 'Moto G (5S) Plus', + 59 => 'moto g(6', + 60 => 'moto g(6)', + 61 => 'moto g(6) (XT1925DL)', + 62 => 'moto g(6) forge', + 63 => 'moto g(6) play', + 64 => 'moto g(6) plus', + 65 => 'moto g(7', + 66 => 'moto g(7)', + 67 => 'moto g(7) optimo (XT1952DL)', + 68 => 'moto g(7) play', + 69 => 'moto g(7) plus', + 70 => 'moto g(7) power', + 71 => 'moto g(7) supra', + 72 => 'moto g(8', + 73 => 'moto g(8) power', + 74 => 'moto g(9) plus', + 75 => 'moto g(9) power', + 76 => 'Moto Z (2)', + 77 => 'Moto Z2 Play', + 78 => 'Moto X Pro', + 79 => 'moto x4', + 80 => 'Moto Backflip', + 81 => 'MOTOROLA XOOM MZ606', + 82 => 'MOTOROLA RAZR', + 83 => 'MOTWX435KT', + 84 => '(PLOYER-)?MOMO!!', + 85 => 'MOB-5045', + 86 => 'Mobii 7', + 87 => 'MoFing', + 88 => 'mocha', + 89 => 'MO-01J', + 90 => 'MO-01K', + 91 => 'Movistar Express', + 92 => 'Movistar Link', + 93 => 'Movistar Motion', + 94 => 'Movistar Prime', + 95 => 'MOVE', ), '@MP' => array ( @@ -4436,7 +4507,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4527,7 +4598,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -4621,8 +4692,9 @@ 86 => 'Notion Ink ADAM', 87 => 'Note III', 88 => 'Nozomi', - 89 => 'Noble TAB07-485', - 90 => '(QMobile|QTab|Q-Smart|Noir)!!', + 89 => 'Note 9P', + 90 => 'Noble TAB07-485', + 91 => '(QMobile|QTab|Q-Smart|Noir)!!', ), '@NP' => array ( @@ -5066,7 +5138,7 @@ ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5131,7 +5203,8 @@ array ( 0 => 'P2A700', 1 => 'P2Lite', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => 'P20HD EEA', ), '@P3' => array ( @@ -5160,11 +5233,11 @@ 2 => 'P6 Pro', 3 => 'P6 Qmax', 4 => 'P6 Quad', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@P7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'P700i', 2 => 'P701', 3 => 'P7', @@ -5307,7 +5380,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5325,7 +5398,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5423,35 +5496,38 @@ 8 => 'Pixel 3a', 9 => 'Pixel 3a XL', 10 => 'Pixel 4', - 11 => 'Pixel 4 XL', - 12 => '(Axioo[\\- ])?PICO!!', - 13 => 'picoBit-L', - 14 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', - 15 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', - 16 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', - 17 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', - 18 => 'PixelV1', - 19 => 'Pixel V2', - 20 => 'Pixel V2+', - 21 => 'PI2000', - 22 => 'PI2010', - 23 => 'PI2011', - 24 => 'PI3100', - 25 => 'PI3100-93', - 26 => 'PI3100Z3 93', - 27 => 'PI3105', - 28 => 'PI3106', - 29 => 'PI3110', - 30 => 'PI3205G', - 31 => 'PI3210G', - 32 => 'PI3900', - 33 => 'PI3900-93', - 34 => 'PI3910', - 35 => 'PI4010G', - 36 => 'PI7000', - 37 => 'PI7100 93', - 38 => '(PNR-)?Pioneer!!', - 39 => 'PIRANHA!!', + 11 => 'Pixel 4a', + 12 => 'Pixel 4 XL', + 13 => 'Pixel 5', + 14 => 'Pixel 6', + 15 => '(Axioo[\\- ])?PICO!!', + 16 => 'picoBit-L', + 17 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', + 18 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', + 19 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', + 20 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', + 21 => 'PixelV1', + 22 => 'Pixel V2', + 23 => 'Pixel V2+', + 24 => 'PI2000', + 25 => 'PI2010', + 26 => 'PI2011', + 27 => 'PI3100', + 28 => 'PI3100-93', + 29 => 'PI3100Z3 93', + 30 => 'PI3105', + 31 => 'PI3106', + 32 => 'PI3110', + 33 => 'PI3205G', + 34 => 'PI3210G', + 35 => 'PI3900', + 36 => 'PI3900-93', + 37 => 'PI3910', + 38 => 'PI4010G', + 39 => 'PI7000', + 40 => 'PI7100 93', + 41 => '(PNR-)?Pioneer!!', + 42 => 'PIRANHA!!', ), '@PJ' => array ( @@ -5462,7 +5538,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -5579,6 +5655,7 @@ 82 => 'Positivo X400', 83 => 'Positivo X800', 84 => 'POCOPHONE F1', + 85 => 'POCO F2 Pro', ), '@PP' => array ( @@ -5589,7 +5666,7 @@ array ( 0 => 'Project Tango Tablet Development Kit', 1 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Pro 10 dual core', 4 => 'Prada 3.0', 5 => 'PRO 5', @@ -6028,7 +6105,7 @@ 2 => 'Rikomagic MK802III', 3 => 'Rikomagic MK802IIIS', 4 => '(Gsmart|Gigabyte|Rio)!!', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Rise', 7 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 8 => 'RIDGE', @@ -6075,10 +6152,12 @@ 2 => 'RM-1061', 3 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 4 => 'RMD-[0-9]{2,3}G!!', + 5 => 'RMX3242', + 6 => 'RMX3363', ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6152,8 +6231,10 @@ ), '@S6' => array ( - 0 => 'S658t', - 1 => 'S6 Edge+!', + 0 => 'S61', + 1 => 'S62 Pro', + 2 => 'S658t', + 3 => 'S6 Edge+!', ), '@S7' => array ( @@ -6202,8 +6283,8 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', 5 => 'SCH-L710!', @@ -6345,19 +6426,20 @@ 30 => 'SM-P[0-9]{3,3}!!', 31 => 'SM-S[0-9]{3,3}!!', 32 => 'SM-T[0-9]{3,3}!!', - 33 => 'SM-V700', - 34 => 'SM-W[0-9]{4,4}!!', - 35 => 'Smartphone Android by SFR STARADDICT II', - 36 => '(Smartfren|Andromax)!!', - 37 => 'Smartfren Tab 7', - 38 => 'SM919', - 39 => 'SM701', - 40 => 'SM801', - 41 => 'SmartQ!!', - 42 => 'SMART Sprint', - 43 => 'SMART Start', - 44 => 'SMART Surf2 4G', - 45 => 'SmartTab!!', + 33 => 'SM-X200', + 34 => 'SM-V700', + 35 => 'SM-W[0-9]{4,4}!!', + 36 => 'Smartphone Android by SFR STARADDICT II', + 37 => '(Smartfren|Andromax)!!', + 38 => 'Smartfren Tab 7', + 39 => 'SM919', + 40 => 'SM701', + 41 => 'SM801', + 42 => 'SmartQ!!', + 43 => 'SMART Sprint', + 44 => 'SMART Start', + 45 => 'SMART Surf2 4G', + 46 => 'SmartTab!!', ), '@SN' => array ( @@ -6379,7 +6461,7 @@ 7 => 'Softwinerf900', 8 => 'SoftwinerEvbV13', 9 => 'soho', - 10 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 10 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 11 => 'SONIC', 12 => 'Sonim!!', 13 => 'SO-0[0-9][A-Z]!!', @@ -6445,8 +6527,8 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 16 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 16 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', 19 => 'STM[0-9]{3,3}H!!', @@ -6897,7 +6979,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -6950,19 +7032,20 @@ 12 => '(Transformer )?(Pad )?TF700(T|K)!', 13 => 'Transformer (Pad )?Infinity!', 14 => 'TR720F', - 15 => 'TR10CS1', - 16 => 'TripNiCE Pyramid', - 17 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 18 => 'TR10RS1', - 19 => '(KAZAM|Thunder|Tornado|Trooper)!!', - 20 => 'Triumph', - 21 => 'TRACER OXYGEN GS1', - 22 => 'Trevi PHABLET 4C', - 23 => 'Trevi PHABLET 5 S', - 24 => 'TREQ!!', - 25 => 'Trevi REVERSE 5.5Q', - 26 => 'Trevi PHABLET 6 S', - 27 => 'TRUE BEYOND 3G', + 15 => 'Trekker-X4', + 16 => 'TR10CS1', + 17 => 'TripNiCE Pyramid', + 18 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 19 => 'TR10RS1', + 20 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 21 => 'Triumph', + 22 => 'TRACER OXYGEN GS1', + 23 => 'Trevi PHABLET 4C', + 24 => 'Trevi PHABLET 5 S', + 25 => 'TREQ!!', + 26 => 'Trevi REVERSE 5.5Q', + 27 => 'Trevi PHABLET 6 S', + 28 => 'TRUE BEYOND 3G', ), '@TS' => array ( @@ -7302,7 +7385,7 @@ 20 => 'Vibo-A688', 21 => 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro', 22 => 'Vivid 4G', - 23 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 23 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 24 => 'Vibe K5 Plus', 25 => 'VIBE X2 (X2)', 26 => 'VIBE X3', @@ -7354,7 +7437,7 @@ ), '@VK' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VK410', 2 => 'VK700', 3 => 'VK810 4G', @@ -7372,7 +7455,7 @@ ), '@VN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@VO' => array ( @@ -7381,7 +7464,7 @@ 2 => 'Volantisg', 3 => 'VOYAGER DG300', 4 => 'VOYAGER2 DG310', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Vox', 7 => 'Vortex', 8 => 'vollo Vi86', @@ -7427,7 +7510,7 @@ ), '@VT' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VT6078', 2 => 'VT75C', 3 => 'VT77C', @@ -7522,7 +7605,7 @@ ), '@WA' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'WA-U420D', 2 => 'WALSUN S1 Pro', 3 => 'WALSUN S2', @@ -7928,13 +8011,14 @@ 10 => '(Xiaomi )?(Redmi|RedRice|HM)!!', 11 => '(Xiaomi )?(Redmi|HM)[ \\-]?Note!!', 12 => '(Xiaomi |HM)?20!!', - 13 => 'Xiaomi MDT2!', - 14 => 'Xiaomi MCT1!', - 15 => 'Xiaomi MAT136!', - 16 => 'Xiaomi MBT6A5!', - 17 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 18 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 19 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 13 => '(Xiaomi |HM)?21!!', + 14 => 'Xiaomi MDT2!', + 15 => 'Xiaomi MCT1!', + 16 => 'Xiaomi MAT136!', + 17 => 'Xiaomi MBT6A5!', + 18 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 19 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 20 => '(Xiaomi|Xiaomi Mi|MI)TV!!', ), '@XL' => array ( @@ -7991,6 +8075,11 @@ 3 => '(Symphony|Xplorer)!!', 4 => 'xPAD-70', ), + '@XQ' => + array ( + 0 => 'XQ-AS52', + 1 => 'XQ-AU52', + ), '@XT' => array ( 0 => 'Xtreme X2', @@ -8043,7 +8132,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( diff --git a/data/models-android.php b/data/models-android.php index 7f264f086..98d66e30f 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -271,7 +271,10 @@ 'Pixel 3a' => [ 'Google', 'Pixel 3a' ], 'Pixel 3a XL' => [ 'Google', 'Pixel 3a XL' ], 'Pixel 4' => [ 'Google', 'Pixel 4' ], + 'Pixel 4a' => [ 'Google', 'Pixel 4a' ], 'Pixel 4 XL' => [ 'Google', 'Pixel 4 XL' ], + 'Pixel 5' => [ 'Google', 'Pixel 5' ], + 'Pixel 6' => [ 'Google', 'Pixel 6' ], /* Google Edition */ 'HTC One' => [ 'HTC', 'One (Google Edition)' ], @@ -980,6 +983,7 @@ '4055[JU]!' => [ 'Alcatel', 'One Touch Pixi 5 (4)' ], '4060[A]!' => [ 'Alcatel', 'IDEAL' ], '4060[SW]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], + '5002[H]!' => [ 'Alcatel', '1B (2020)' ], '5010[DEGSUX]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], '5011[A]!' => [ 'Alcatel', 'A3 Plus' ], '5012[G]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.5)' ], @@ -2700,6 +2704,8 @@ 'S40' => [ 'CAT', 'S40' ], 'S50' => [ 'CAT', 'S50' ], 'S50c' => [ 'CAT', 'S50c' ], + 'S61' => [ 'CAT', 'S61' ], + 'S62 Pro' => [ 'CAT', 'S62 Pro' ], 'CAT!!' => [ 'Cat Comet' => [ 'CAT', 'COMET', DeviceType::TABLET ], @@ -3433,6 +3439,8 @@ 'CROSSCALL WILD' => [ 'Crosscall', 'WILD' ], ], + 'Trekker-X4' => [ 'Crosscall', 'Trekker-X4' ], + 'Novapad!!' => [ 'Novapad 70 D124 FC' => [ 'Crypto', 'NovaPad 70 D124', DeviceType::TABLET ], 'Novapad 70 S124 FC' => [ 'Crypto', 'NovaPad 70 S124', DeviceType::TABLET ], @@ -3455,6 +3463,7 @@ 'CUBOT ONE-S' => [ 'Cubot', 'One S' ], 'CUBOT P7' => [ 'Cubot', 'P7' ], 'CUBOT P9' => [ 'Cubot', 'P9' ], + 'CUBOT P20' => [ 'Cubot', 'P20' ], 'CUBOT S108' => [ 'Cubot', 'S108' ], 'CUBOT S222' => [ 'Cubot', 'S222' ], 'CUBOT X6' => [ 'Cubot', 'X6' ], @@ -4271,6 +4280,7 @@ 'FP1' => [ 'Fairphone', '1' ], 'FP1U' => [ 'Fairphone', '1' ], 'FP2' => [ 'Fairphone', '2' ], + 'FP3' => [ 'Fairphone', '3' ], 'FDT!!' => [ 'FDT C838' => [ 'FDT', 'C838' ], @@ -4715,6 +4725,7 @@ 'Gigaset QV1030' => [ 'Gigaset', 'QV1030', DeviceType::TABLET ], ], + 'GS190' => [ 'Gigaset', 'GS190' ], '80-1' => [ 'Gigaset', 'Maxwell 10', DeviceType::DECT ], 'SL930' => [ 'Gigaset', 'SL930', DeviceType::DECT ], @@ -6238,7 +6249,7 @@ '(HW-|HUAWEI )?JKM-(AL00|AL00a|AL00b|LX1|LX2|LX3|TL00)!' => [ 'Huawei', 'Enjoy 9 Plus' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6271,6 +6282,7 @@ '(HW-|HUAWEI )?RNE-(AL00|L01|L02|L03|L21|L22|L23|L31)!' => [ 'Huawei', 'Honor 9i' ], '(HW-|HUAWEI )?HLK-(AL00|AL10)!' => [ 'Huawei', 'Honor 9X' ], '(HW-|HUAWEI )?COL-(AL00|AL10|L29|TL00|TL10)!' => [ 'Huawei', 'Honor 10' ], + '(HW-|HUAWEI )?HRY-(LX1)!' => [ 'Huawei', 'Honor 10 Lite' ], '(HW-|HUAWEI )?YAL-(AL00|AL10|L21|L41)!' => [ 'Huawei', 'Honor 20' ], '(HW-|HUAWEI )?LRA-(AL00)!' => [ 'Huawei', 'Honor 20 Lite' ], '(HW-|HUAWEI )?DUK-(AL20|L09|TL30)!' => [ 'Huawei', 'Honor V9' ], @@ -6289,7 +6301,7 @@ '(HW-|HUAWEI )?BLL-(L21|L22|L23)!' => [ 'Huawei', 'GR5 (2017)' ], ], - '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ + '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ 'HUAWEI D2' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?D2-(0082|2010|5000|6070|6114)!' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?G6-(C00|L11|L22|L33|T00|U00|U10|U34|U251)!' => [ 'Huawei', 'Ascend G6' ], @@ -6320,6 +6332,7 @@ '(HW-|HUAWEI )?CLT-?(AL00|AL01|L04|L09|L29|L39|TL00|TL01)!' => [ 'Huawei', 'P20 Pro' ], '(HW-|HUAWEI )?ELE-?(AL00|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30' ], '(HW-|HUAWEI )?VOG-?(AL00|AL10|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30 Pro' ], + '(HW-|HUAWEI )?MAR-?(LX1B)!' => [ 'Huawei', 'P30 Lite' ], ], 'Rock-(AL00|CL00|L01|L03)!' => [ 'Huawei', 'Ascend G7' ], @@ -8449,6 +8462,8 @@ ], 'Lenovo TB-7304F' => [ 'Lenovo', 'Tab 7 Essential', DeviceType::TABLET ], + 'Lenovo TB-J616F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], + 'Lenovo TB-X606F' => [ 'Lenovo', 'Tab M11 FHD Plus', DeviceType::TABLET ], 'Lenovo TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'Lenovo TB2-X30F' => [ 'Lenovo', 'Tab 2 A10', DeviceType::TABLET ], @@ -9427,6 +9442,7 @@ 'LM-G715!' => [ 'LG', 'G7 ThinQ' ], 'LM-G810!' => [ 'LG', 'G8s ThinQ' ], 'LM-G820!' => [ 'LG', 'G8 ThinQ' ], + 'LM-G900!' => [ 'LG', 'Velvet' ], 'LM-Q610!' => [ 'LG', 'Q7' ], 'LM-Q617!' => [ 'LG', 'Q7 BTS Edition' ], 'LM-Q710!' => [ 'LG', 'Q Stylus+' ], @@ -9440,6 +9456,7 @@ 'LM-V40[59]!' => [ 'LG', 'V40 ThinQ' ], 'LM-V450!' => [ 'LG', 'V50 ThinQ' ], 'LM-V500!' => [ 'LG', 'V50 ThinQ' ], + 'LM-V600!' => [ 'LG', 'V60 ThinQ' ], 'LM-X120!' => [ 'LG', 'K20' ], 'LM-X210!' => [ 'LG', 'Aristo 2' ], 'LM-X212!' => [ 'LG', 'K8' ], @@ -10691,6 +10708,8 @@ 'motorola one vision' => [ 'Motorola', 'One Vision' ], 'motorola one zoom' => [ 'Motorola', 'One Zoom' ], + 'motorola edge 20 pro' => [ 'Motorola', 'Edge 20 Pro' ], + 'Atrix 2' => [ 'Motorola', 'ATRIX 2' ], 'Atrix 2 WeifanZ' => [ 'Motorola', 'ATRIX 2' ], 'Atrix 4G' => [ 'Motorola', 'ATRIX 4G' ], @@ -10758,6 +10777,8 @@ 'MOTOROLA MOTOG' => [ 'Motorola', 'Moto G' ], 'Moto G Play' => [ 'Motorola', 'Moto G Play' ], 'Moto G Turbo' => [ 'Motorola', 'Moto G Turbo' ], + 'moto g 5G' => [ 'Motorola', 'Moto G 5G' ], + 'moto g 5G plus' => [ 'Motorola', 'Moto G 5G Plus' ], 'Moto G4' => [ 'Motorola', 'Moto G4' ], 'Moto G (4' => [ 'Motorola', 'Moto G4' ], 'Moto G (4)' => [ 'Motorola', 'Moto G4' ], @@ -10783,6 +10804,9 @@ 'moto g(7) power' => [ 'Motorola', 'Moto G7 Power' ], 'moto g(7) supra' => [ 'Motorola', 'Moto G7 Supra' ], 'moto g(8' => [ 'Motorola', 'Moto G8' ], + 'moto g(8) power' => [ 'Motorola', 'Moto G8 Power' ], + 'moto g(9) plus' => [ 'Motorola', 'Moto G9 Plus' ], + 'moto g(9) power' => [ 'Motorola', 'Moto G9 Power' ], 'Moto Z (2)' => [ 'Motorola', 'Moto Z2' ], 'Moto Z2 Play' => [ 'Motorola', 'Moto Z2 Play' ], 'Moto X Pro' => [ 'Motorola', 'Moto X Pro' ], @@ -11351,10 +11375,19 @@ 'HD191[03]!' => [ 'OnePlus', '7T Pro' ], 'GM190[0135]!' => [ 'OnePlus', '7' ], 'GM191[01357]!' => [ 'OnePlus', '7 Pro' ], + 'IN201[01357]!' => [ 'OnePlus', '8' ], + 'IN202[0135]!' => [ 'OnePlus', '8 Pro' ], + 'KB200[01357]!' => [ 'OnePlus', '8T' ], + 'LE2101' => [ 'OnePlus', '9T' ], + 'LE211[135]!' => [ 'OnePlus', '9' ], + 'LE212[01357]!' => [ 'OnePlus', '9 Pro' ], 'ONE E1000' => [ 'OnePlus', 'X' ], 'ONE E1001' => [ 'OnePlus', 'X' ], 'ONE E1003' => [ 'OnePlus', 'X' ], 'ONE E1005' => [ 'OnePlus', 'X' ], + 'AC2003' => [ 'OnePlus', 'Nord' ], + 'DN2103' => [ 'OnePlus', 'Nord 2' ], + 'EB2103' => [ 'OnePlus', 'Nord CE' ], 'ONDA MID' => [ 'Onda', 'MID', DeviceType::TABLET ], 'ONDA A9 Core4' => [ 'Onda', 'A9 Quad Core', DeviceType::TABLET ], 'ONDA VI10' => [ 'Onda', 'VI10', DeviceType::TABLET ], @@ -11463,7 +11496,27 @@ 'CPH1859' => [ 'Oppo', 'F7 Youth' ], 'CPH1881' => [ 'Oppo', 'F9' ], 'CPH1823' => [ 'Oppo', 'F9 Pro' ], + 'CPH1907' => [ 'Oppo', 'Reno 2' ], + 'CPH1931' => [ 'Oppo', 'A5 (2020)' ], 'CPH1969' => [ 'Oppo', 'F11 Pro' ], + 'CPH2021' => [ 'Oppo', 'A91' ], + 'CPH2043' => [ 'Oppo', 'Reno 3' ], + 'CPH2067' => [ 'Oppo', 'A72' ], + 'CPH2089' => [ 'Oppo', 'Reno 4 Pro' ], + 'CPH2091' => [ 'Oppo', 'Reno 4' ], + 'CPH2127' => [ 'Oppo', 'A53' ], + 'CPH2135' => [ 'Oppo', 'A53s' ], + 'CPH2145' => [ 'Oppo', 'Find X3 Lite' ], + 'CPH2161' => [ 'Oppo', 'A73' ], + 'CPH2185' => [ 'Oppo', 'A15' ], + 'CPH2195' => [ 'Oppo', 'A54' ], + 'CPH2197' => [ 'Oppo', 'A74' ], + 'CPH2207' => [ 'Oppo', 'Find X3 Neo' ], + 'CPH2211' => [ 'Oppo', 'A94' ], + 'CPH2219' => [ 'Oppo', 'A74' ], + 'CPH2251' => [ 'Oppo', 'Reno 6' ], + 'CPH2269' => [ 'Oppo', 'A16' ], + 'CPH2273' => [ 'Oppo', 'A54s' ], 'Find 5' => [ 'Oppo', 'Find 5' ], 'X903' => [ 'Oppo', 'Find Me X903' ], 'X903S' => [ 'Oppo', 'Find X903S' ], @@ -13256,20 +13309,31 @@ 'SM-A[0-9]{3,3}!!' => [ 'SM-A015!' => [ 'Samsung', 'Galaxy A01' ], + 'SM-A025!' => [ 'Samsung', 'Galaxy A02s' ], 'SM-A102!' => [ 'Samsung', 'Galaxy A10e' ], 'SM-A105!' => [ 'Samsung', 'Galaxy A10' ], - 'SM-A115!' => [ 'Samsung', 'Galaxy A11' ], 'SM-A107!' => [ 'Samsung', 'Galaxy A10s' ], + 'SM-A115!' => [ 'Samsung', 'Galaxy A11' ], + 'SM-A125!' => [ 'Samsung', 'Galaxy A12' ], + 'SM-A127!' => [ 'Samsung', 'Galaxy A12' ], + 'SM-A135!' => [ 'Samsung', 'Galaxy A13' ], 'SM-A202!' => [ 'Samsung', 'Galaxy A20e' ], 'SM-A205!' => [ 'Samsung', 'Galaxy A20' ], + 'SM-A207!' => [ 'Samsung', 'Galaxy A20s' ], 'SM-A215!' => [ 'Samsung', 'Galaxy A21' ], + 'SM-A217!' => [ 'Samsung', 'Galaxy A21s' ], 'SM-A260!' => [ 'Samsung', 'Galaxy A2 Core' ], 'SM-A300!' => [ 'Samsung', 'Galaxy A3' ], 'SM-A305!' => [ 'Samsung', 'Galaxy A30' ], 'SM-A307!' => [ 'Samsung', 'Galaxy A30s' ], 'SM-A310!' => [ 'Samsung', 'Galaxy A3 (2016)' ], + 'SM-A315!' => [ 'Samsung', 'Galaxy A31' ], 'SM-A320!' => [ 'Samsung', 'Galaxy A3 (2017)' ], + 'SM-A325!' => [ 'Samsung', 'Galaxy A32' ], + 'SM-A326!' => [ 'Samsung', 'Galaxy A32 5G' ], 'SM-A405!' => [ 'Samsung', 'Galaxy A40' ], + 'SM-A415!' => [ 'Samsung', 'Galaxy A41' ], + 'SM-A426!' => [ 'Samsung', 'Galaxy A42 5G' ], 'SM-A430!' => [ 'Samsung', 'Galaxy A4' ], 'SM-A450!' => [ 'Samsung', 'Galaxy A4 (2017)' ], 'SM-A460!' => [ 'Samsung', 'SM-A460' ], @@ -13280,6 +13344,9 @@ 'SM-A515!' => [ 'Samsung', 'Galaxy A51' ], 'SM-A516!' => [ 'Samsung', 'Galaxy A51 5G' ], 'SM-A520!' => [ 'Samsung', 'Galaxy A5 (2017)' ], + 'SM-A525!' => [ 'Samsung', 'Galaxy A52' ], + 'SM-A526!' => [ 'Samsung', 'Galaxy A52 5G' ], + 'SM-A528!' => [ 'Samsung', 'Galaxy A52s 5G' ], 'SM-A530!' => [ 'Samsung', 'Galaxy A8 (2018)' ], 'SM-A600!' => [ 'Samsung', 'Galaxy A6 (2018)' ], 'SM-A6050!' => [ 'Samsung', 'Galaxy A9 Star Lite' ], @@ -13288,8 +13355,10 @@ 'SM-A700!' => [ 'Samsung', 'Galaxy A7' ], 'SM-A705!' => [ 'Samsung', 'Galaxy A70' ], 'SM-A710!' => [ 'Samsung', 'Galaxy A7 (2016)' ], + 'SM-A715!' => [ 'Samsung', 'Galaxy A71' ], 'SM-A716!' => [ 'Samsung', 'Galaxy A71 5G' ], 'SM-A720!' => [ 'Samsung', 'Galaxy A7 (2017)' ], + 'SM-A725!' => [ 'Samsung', 'Galaxy A72' ], 'SM-A730!' => [ 'Samsung', 'Galaxy A8+ (2018)' ], 'SM-A750!' => [ 'Samsung', 'Galaxy A7 (2018)' ], 'SM-A800!' => [ 'Samsung', 'Galaxy A8' ], @@ -13320,6 +13389,7 @@ 'SM-F[0-9]{3,3}!!' => [ 'SM-F700!' => [ 'Samsung', 'Galaxy Z Flip' ], 'SM-F707!' => [ 'Samsung', 'Galaxy Z Flip 5G' ], + 'SM-F711!' => [ 'Samsung', 'Galaxy Z Flip3 5G' ], 'SM-F900!' => [ 'Samsung', 'Galaxy Fold' ], 'SM-F910!' => [ 'Samsung', 'Galaxy Z Fold2' ], 'SM-F916!' => [ 'Samsung', 'Galaxy Z Fold2 5G' ], @@ -13387,6 +13457,8 @@ 'SM-G730!' => [ 'Samsung', 'Galaxy S III Mini' ], 'SM-G750!' => [ 'Samsung', 'Galaxy Mega 2 ' ], 'SM-G770!' => [ 'Samsung', 'Galaxy S10 Lite' ], + 'SM-G780!' => [ 'Samsung', 'Galaxy S20 FE' ], + 'SM-G781!' => [ 'Samsung', 'Galaxy S20 FE' ], 'SM-G800!' => [ 'Samsung', 'Galaxy S5 Mini' ], 'SM-G850!' => [ 'Samsung', 'Galaxy Alpha' ], 'SM-G860!' => [ 'Samsung', 'Galaxy S5 Sport' ], @@ -13425,6 +13497,10 @@ 'SM-G985!' => [ 'Samsung', 'Galaxy S20+' ], 'SM-G986!' => [ 'Samsung', 'Galaxy S20+' ], 'SM-G988!' => [ 'Samsung', 'Galaxy S20 Ultra' ], + 'SM-G990!' => [ 'Samsung', 'Galaxy S21 FE' ], + 'SM-G991!' => [ 'Samsung', 'Galaxy S21' ], + 'SM-G996!' => [ 'Samsung', 'Galaxy S21+' ], + 'SM-G998!' => [ 'Samsung', 'Galaxy S21 Ultra' ], ], 'SM-I9500' => [ 'Samsung', 'Galaxy S4' ], @@ -13470,6 +13546,7 @@ 'SM-M105!' => [ 'Samsung', 'Galaxy M10' ], 'SM-M205!' => [ 'Samsung', 'Galaxy M20' ], 'SM-M305!' => [ 'Samsung', 'Galaxy M30' ], + 'SM-M315!' => [ 'Samsung', 'Galaxy M31' ], ], 'SM-N[0-9]{3,4}!!' => [ @@ -13519,10 +13596,12 @@ 'SM-S780L' => [ 'Samsung', 'Galaxy Mega 6.3' ], 'SM-S820L' => [ 'Samsung', 'Galaxy Core Prime' ], 'SM-S890L' => [ 'Samsung', 'Galaxy S4 Mini' ], + 'SM-S901B' => [ 'Samsung', 'Galaxy S22' ], 'SM-S902L' => [ 'Samsung', 'Galaxy S5' ], 'SM-S903VL' => [ 'Samsung', 'Galaxy S5' ], 'SM-S906L' => [ 'Samsung', 'Galaxy S6' ], 'SM-S907VL' => [ 'Samsung', 'Galaxy S6' ], + 'SM-S908B' => [ 'Samsung', 'Galaxy S22 Ultra' ], 'SM-S920L' => [ 'Samsung', 'Galaxy Grand Prime' ], 'SM-S975L' => [ 'Samsung', 'Galaxy S4' ], 'SM-S978L' => [ 'Samsung', 'Galaxy E5' ], @@ -13549,6 +13628,7 @@ 'SM-T38[05]!' => [ 'Samsung', 'Galaxy Tab A 8.0 (2017)', DeviceType::TABLET ], 'SM-T387!' => [ 'Samsung', 'Galaxy Tab A 8.0 (2018)', DeviceType::TABLET ], 'SM-T39[05]!' => [ 'Samsung', 'Galaxy Tab Active2 8.0', DeviceType::TABLET ], + 'SM-T50[05]!' => [ 'Samsung', 'Galaxy Tab A7 10.4 (2020)', DeviceType::TABLET ], 'SM-T51[05]!' => [ 'Samsung', 'Galaxy Tab A 10.1 (2019)', DeviceType::TABLET ], 'SM-T520CC' => [ 'Samsung', 'Galaxy Tab Pro 10.1 Chef Collection', DeviceType::TABLET ], 'SM-T52[057]!' => [ 'Samsung', 'Galaxy Tab Pro 10.1', DeviceType::TABLET ], @@ -13566,6 +13646,7 @@ 'SM-T71[05]!' => [ 'Samsung', 'Galaxy Tab S2 8.0', DeviceType::TABLET ], 'SM-T71[39]!' => [ 'Samsung', 'Galaxy Tab S2 8.0 (2016)', DeviceType::TABLET ], 'SM-T72[057]!' => [ 'Samsung', 'Galaxy Tab S5e', DeviceType::TABLET ], + 'SM-T733!' => [ 'Samsung', 'Galaxy Tab S7 12.4 FE (2021)', DeviceType::TABLET ], 'SM-T80[0157]!' => [ 'Samsung', 'Galaxy Tab S 10.5', DeviceType::TABLET ], 'SM-T81[057]!' => [ 'Samsung', 'Galaxy Tab S2 9.7', DeviceType::TABLET ], 'SM-T81[39]!' => [ 'Samsung', 'Galaxy Tab S2 9.7 (2016)', DeviceType::TABLET ], @@ -13576,9 +13657,12 @@ 'SM-T87[0]!' => [ 'Samsung', 'Galaxy Tab S7 11.0', DeviceType::TABLET ], 'SM-T90[05]!' => [ 'Samsung', 'Galaxy Tab Pro 12.2', DeviceType::TABLET ], 'SM-T92[7]!' => [ 'Samsung', 'Galaxy View2 (2019)', DeviceType::TABLET ], - 'SM-T97[0]!' => [ 'Samsung', 'Galaxy Tab S7+ 12.4', DeviceType::TABLET ], + 'SM-T97[06]!' => [ 'Samsung', 'Galaxy Tab S7+ 12.4 (2020)', DeviceType::TABLET ], + ], + 'SM-X200' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], + 'SM-V700' => [ 'Samsung', 'Galaxy Gear', DeviceType::WATCH ], 'SM-W[0-9]{4,4}!!' => [ @@ -14300,6 +14384,14 @@ 'I42(13|93)!' => [ 'Sony', 'Xperia 10 Plus' ], ], + 'J[0-9]{4,4}!!' => [ + 'J82(10|70)!' => [ 'Sony', 'Xperia 5' ], + 'J92(10|60)!' => [ 'Sony', 'Xperia 5' ], + ], + + 'XQ-AS52' => [ 'Sony', 'Xperia 5 II' ], + 'XQ-AU52' => [ 'Sony', 'Xperia 10 II' ], + 'E[0-9]{2,2}[a-z]!!' => [ 'E10(a|i|iv)!' => [ 'Sony Ericsson', 'Xperia X10 Mini' ], // Robyn 'E15(a|av|i|iv|i-o)?$!' => [ 'Sony Ericsson', 'Xperia X8' ], // Shakira @@ -15307,6 +15399,7 @@ 'P11HD四核(G9X7)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], 'P19HD(E1K3)' => [ 'Teclast', 'P19HD', DeviceType::TABLET ], 'P19HD(E1K5)' => [ 'Teclast', 'P19HD', DeviceType::TABLET ], + 'P20HD EEA' => [ 'Teclast', 'P20HD', DeviceType::TABLET ], 'P70 3G八核(C2B7)' => [ 'Teclast', 'P70 3G', DeviceType::TABLET ], 'P70h(A5C2)' => [ 'Teclast', 'P70h', DeviceType::TABLET ], 'P72' => [ 'Teclast', 'P72', DeviceType::TABLET ], @@ -15827,6 +15920,7 @@ 'A6S' => [ 'TWM', 'Amazing A6S' ], 'Be Touch 2' => [ 'Ulefone', 'Be Touch 2' ], 'Ulefone Be Touch2' => [ 'Ulefone', 'Be Touch 2' ], + 'Note 9P' => [ 'Ulefone', 'Note 9P' ], 'TB100' => [ 'Unitech', 'TB100', DeviceType::TABLET ], 'M70014' => [ 'United Star Technology', 'M70014', DeviceType::TABLET ], 'QOOQ' => [ 'Unowhy', 'QOOQ', DeviceType::TABLET ], @@ -15860,6 +15954,7 @@ 'eMAX mini' => [ 'UMI', 'eMax mini' ], 'Plus E' => [ 'UMI', 'Plus E' ], + 'Jelly2' => [ 'Unihertz', 'Jelly 2' ], 'U1203' => [ 'Uniscope', 'U1203' ], 'Unusual!!' => [ @@ -16859,8 +16954,10 @@ 'MI 8 UD' => [ 'Xiaomi', 'Mi 8 UD' ], 'MI 8 Lite' => [ 'Xiaomi', 'Mi 8 Lite' ], 'MI 9' => [ 'Xiaomi', 'Mi 9' ], + 'Mi 9T' => [ 'Xiaomi', 'Mi 9T' ], 'Mi 9T Pro' => [ 'Xiaomi', 'Mi 9T Pro' ], 'Mi9 Pro 5G' => [ 'Xiaomi', 'Mi 9 Pro' ], + 'Mi Note 10 Lite' => [ 'Xiaomi', 'Mi Note 10 Lite' ], '(Xiaomi|Xiaomi Mi|MI) Note!!' => [ '(Xiaomi|Xiaomi Mi|MI) Note (LTE|4G)$!' => [ 'Xiaomi', 'Mi Note' ], @@ -16876,6 +16973,7 @@ '(Xiaomi )?(MI )?MIX$!' => [ 'Xiaomi', 'Mi MIX' ], '(Xiaomi )?(MI )?MIX 2$!' => [ 'Xiaomi', 'Mi MIX 2' ], '(Xiaomi )?(MI )?MIX 2S$!' => [ 'Xiaomi', 'Mi MIX 2S' ], + 'Mi MIX 3' => [ 'Xiaomi', 'Mi MIX 3' ], '(Xiaomi )?20!!' => [ '(Xiaomi )?20130(61)!' => [ 'Xiaomi', 'Mi 3' ], @@ -16929,6 +17027,8 @@ '(Xiaomi )?Redmi[ \-]Note 7$!' => [ 'Xiaomi', 'Redmi Note 7' ], '(Xiaomi )?Redmi[ \-]Note 7 Pro!' => [ 'Xiaomi', 'Redmi Note 7 Pro' ], '(Xiaomi )?Redmi[ \-]Note 8$!' => [ 'Xiaomi', 'Redmi Note 8' ], + '(Xiaomi )?Redmi[ \-]Note 8 Pro!' => [ 'Xiaomi', 'Redmi Note 8 Pro' ], + '(Xiaomi )?Redmi[ \-]Note 8T!' => [ 'Xiaomi', 'Redmi Note 8T' ], ], '(Xiaomi |HM)?20!!' => [ @@ -16951,7 +17051,24 @@ '(Xiaomi |HM)?20160(51)!' => [ 'Xiaomi', 'Redmi Note 4' ], ], + 'M2002J9G' => [ 'Xiaomi', 'Mi 10 Lite' ], + 'M2007J17G' => [ 'Xiaomi', 'Mi 10T Lite' ], + 'M2007J20CG' => [ 'Xiaomi', 'Poco X3' ], + 'M2010J19SY' => [ 'Xiaomi', 'Redmi 9T' ], + 'M2012K11AG' => [ 'Xiaomi', 'Poco F3' ], + 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], + 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], + 'M2101K7AG' => [ 'Xiaomi', 'Redmi Note 10' ], + 'M2101K7BNY' => [ 'Xiaomi', 'Redmi Note 10s' ], + 'M2101K9G' => [ 'Xiaomi', 'Mi 11 Lite' ], + 'M2102J20SG' => [ 'Xiaomi', 'Poco X3 Pro' ], + + '(Xiaomi |HM)?21!!' => [ + '(Xiaomi |HM)?21091(19)!' => [ 'Xiaomi', 'Mi 11 Lite' ], + ], + 'POCOPHONE F1' => [ 'Xiaomi', 'Pocophone F1' ], + 'POCO F2 Pro' => [ 'Xiaomi', 'Poco F2 Pro' ], 'Xiaomi MDT2!' => [ 'Xiaomi', 'Mi 5x' ], 'Xiaomi MCT1!' => [ 'Xiaomi', 'Mi 6' ], @@ -18867,6 +18984,10 @@ ], 'Z4 mini' => [ 'Q-Mobile', 'Noir Quatro Z4 mini' ], + + 'RMX3242' => [ 'Realme', 'Narzo 30' ], + 'RMX3363' => [ 'Realme', 'GT Master' ], + 'Soshphone 4G' => [ 'SoshPhone', '4G' ], 'AQT80' => [ 'Sprint', 'Slate 8', DeviceType::TABLET ], From 3d48054b7b84fdf7d40c9939e8955679966fc1e8 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 11 Apr 2022 23:25:20 +0200 Subject: [PATCH 517/540] Android model update --- data/indices/models-android.php | 1099 +++++++++++++++++-------------- data/models-android.php | 173 ++++- 2 files changed, 781 insertions(+), 491 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 91d8f6bc3..7fd23cb25 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -129,7 +129,9 @@ ), '@21' => array ( - 0 => '(Xiaomi |HM)?21!!', + 0 => '2107113SG', + 1 => '21081111RG', + 2 => '(Xiaomi |HM)?21!!', ), '@2P' => array ( @@ -215,49 +217,51 @@ 12 => '5024[D]!', 13 => '5025[DEGX]!', 14 => '5027[B]!', - 15 => '5033[ADJOX]!', - 16 => '5034[D]!', - 17 => '5036[D]!', - 18 => '5038[ADEX]!', - 19 => '5039[D]!', - 20 => '5041[C]!', - 21 => '5042[ADEFGTWXY]!', - 22 => '5044[ADGIOSTY]!', - 23 => '5045[ADFGJTXY]!', - 24 => '5046[DGIJUY]!', - 25 => '5047[DIUY]!', - 26 => '5049[EGSWZ]!', - 27 => '5050[ASYX]!', - 28 => '5051[ADJMX]!', - 29 => '5052[DY]!', - 30 => '5053[D]!', - 31 => '5054[ADOSTX]!', - 32 => '5054[NW]!', - 33 => '5056[ADEINUWX]!', - 34 => '5056[O]!', - 35 => '5057[M]!', - 36 => '5058[I]!', - 37 => '5059[ADJTXY]!', - 38 => '5060[D]!', - 39 => '5065[ADJNWX]!', - 40 => '5070[DJX]!', - 41 => '5080[A]!', - 42 => '5080[DFQX]!', - 43 => '5085[CDJNOYX]!', - 44 => '5086[ADY]!', - 45 => '5090[Y]!', - 46 => '5095[BIKY]!', - 47 => '5096[AI]!', - 48 => '5098[OS]!', - 49 => '5099[ADY]!', - 50 => '504Q', - 51 => '504Q+', - 52 => '504QP', - 53 => '501LV', - 54 => '(48|50|55)AX600C!', - 55 => '5080C Pro', - 56 => '50[0-9]SO!!', - 57 => '502ZT', + 15 => '5030[F]!', + 16 => '5033[ADJOX]!', + 17 => '5034[D]!', + 18 => '5036[D]!', + 19 => '5038[ADEX]!', + 20 => '5039[D]!', + 21 => '5041[C]!', + 22 => '5042[ADEFGTWXY]!', + 23 => '5044[ADGIOSTY]!', + 24 => '5045[ADFGJTXY]!', + 25 => '5046[DGIJUY]!', + 26 => '5047[DIUY]!', + 27 => '5049[EGSWZ]!', + 28 => '5050[ASYX]!', + 29 => '5051[ADJMX]!', + 30 => '5052[DY]!', + 31 => '5053[D]!', + 32 => '5054[ADOSTX]!', + 33 => '5054[NW]!', + 34 => '5056[ADEINUWX]!', + 35 => '5056[O]!', + 36 => '5057[M]!', + 37 => '5058[I]!', + 38 => '5059[ADJTXY]!', + 39 => '5060[D]!', + 40 => '5061[U]!', + 41 => '5065[ADJNWX]!', + 42 => '5070[DJX]!', + 43 => '5080[A]!', + 44 => '5080[DFQX]!', + 45 => '5085[CDJNOYX]!', + 46 => '5086[ADY]!', + 47 => '5090[Y]!', + 48 => '5095[BIKY]!', + 49 => '5096[AI]!', + 50 => '5098[OS]!', + 51 => '5099[ADY]!', + 52 => '504Q', + 53 => '504Q+', + 54 => '504QP', + 55 => '501LV', + 56 => '(48|50|55)AX600C!', + 57 => '5080C Pro', + 58 => '50[0-9]SO!!', + 59 => '502ZT', ), '@55' => array ( @@ -456,6 +460,7 @@ 30 => 'A11(M5A7)', 31 => 'A11s(M5A7)', 32 => 'A15(E6C2)', + 33 => 'A11 Pro Max', ), '@A2' => array ( @@ -697,8 +702,9 @@ 2 => 'AG Tab 7 0', 3 => 'AG Go-Tab Access', 4 => 'AG Chrome Go Tab 7.0', - 5 => 'AGS-(L09|W09)!', - 6 => '(KATBL|Kogan|Agora)!!', + 5 => 'AGS2-W09', + 6 => 'AGS-(L09|W09)!', + 7 => '(KATBL|Kogan|Agora)!!', ), '@AI' => array ( @@ -771,7 +777,7 @@ 34 => 'Allwinner A10', 35 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 36 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 37 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 37 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 38 => 'Alfa A93 POP', 39 => 'Alfa L', 40 => 'Ally', @@ -856,7 +862,7 @@ 41 => 'AN10G2-LZ', 42 => 'AN10BG3-LZ', 43 => 'AN7DG3C', - 44 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 44 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 45 => '(iBall )?Andi!!', 46 => 'AND1', 47 => 'AND1E', @@ -952,10 +958,12 @@ 25 => 'arrowsM03', 26 => 'ARIES 101', 27 => 'ARIES 785', - 28 => 'ARA YS608', - 29 => 'Arctic450', - 30 => 'Arc', - 31 => 'Arc S', + 28 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 29 => 'ARA YS608', + 30 => 'Arctic450', + 31 => 'Arc', + 32 => 'Arc S', + 33 => 'Armor 9', ), '@AS' => array ( @@ -1003,7 +1011,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1164,9 +1172,11 @@ 13 => 'BePhone UN030', 14 => 'Best ?sonny!!', 15 => 'BEAN 454', - 16 => 'beetle', - 17 => 'Be Touch 2', - 18 => 'Beeline!!', + 16 => 'BE2029', + 17 => 'BE2013', + 18 => 'beetle', + 19 => 'Be Touch 2', + 20 => 'Beeline!!', ), '@BF' => array ( @@ -1195,12 +1205,13 @@ 2 => 'Bird!!', 3 => 'BizSmartPhone', 4 => 'BIP-6000', - 5 => 'BIRDY', + 5 => 'BISON GT', + 6 => 'BIRDY', ), '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1214,7 +1225,7 @@ 7 => 'Blaze S180', 8 => 'BLADE LE 70', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 11 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 12 => '(BLF-)?lephone!!', 13 => 'Blackphone 2', @@ -1240,7 +1251,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1343,6 +1354,8 @@ '@BV' => array ( 0 => 'BV8000Pro', + 1 => 'BV9100', + 2 => 'BV9600E', ), '@C2' => array ( @@ -1395,8 +1408,8 @@ 9 => 'Casper VIA!!', 10 => 'CAT!!', 11 => 'Candy TV', - 12 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 13 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 12 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 13 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 14 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 15 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 16 => 'calgary', @@ -1430,7 +1443,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1465,7 +1478,7 @@ 4 => 'Clanga SE 097-1008', 5 => 'CLP281X', 6 => 'Click', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => '(Intex )?Cloud!!', 9 => 'CLIQ', 10 => 'CLIQ XT', @@ -1504,7 +1517,7 @@ 15 => 'Connect-2G-2.0', 16 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 17 => 'Coquettish Red', - 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 19 => 'Comet', 20 => 'Corvair', 21 => 'COOLPIX S800c', @@ -1538,32 +1551,49 @@ 22 => 'CPH1859', 23 => 'CPH1881', 24 => 'CPH1823', - 25 => 'CPH1907', - 26 => 'CPH1931', - 27 => 'CPH1969', - 28 => 'CPH2021', - 29 => 'CPH2043', - 30 => 'CPH2067', - 31 => 'CPH2089', - 32 => 'CPH2091', - 33 => 'CPH2127', - 34 => 'CPH2135', - 35 => 'CPH2145', - 36 => 'CPH2161', - 37 => 'CPH2185', - 38 => 'CPH2195', - 39 => 'CPH2197', - 40 => 'CPH2207', - 41 => 'CPH2211', - 42 => 'CPH2219', - 43 => 'CPH2251', - 44 => 'CPH2269', - 45 => 'CPH2273', - 46 => 'CPH1721', - 47 => 'CPH1611', - 48 => 'CPH1879', - 49 => 'CPH1861', - 50 => 'CPH1979', + 25 => 'CPH1837', + 26 => 'CPH1877', + 27 => 'CPH1893', + 28 => 'CPH1907', + 29 => 'CPH1911', + 30 => 'CPH1917', + 31 => 'CPH1919', + 32 => 'CPH1931', + 33 => 'CPH1951', + 34 => 'CPH1969', + 35 => 'CPH2005', + 36 => 'CPH2009', + 37 => 'CPH2021', + 38 => 'CPH2023', + 39 => 'CPH2025', + 40 => 'CPH2043', + 41 => 'CPH2065', + 42 => 'CPH2067', + 43 => 'CPH2069', + 44 => 'CPH2089', + 45 => 'CPH2091', + 46 => 'CPH2127', + 47 => 'CPH2135', + 48 => 'CPH2145', + 49 => 'CPH2161', + 50 => 'CPH2173', + 51 => 'CPH2185', + 52 => 'CPH2195', + 53 => 'CPH2197', + 54 => 'CPH2207', + 55 => 'CPH2211', + 56 => 'CPH2219', + 57 => 'CPH2247', + 58 => 'CPH2251', + 59 => 'CPH2269', + 60 => 'CPH2273', + 61 => 'CPH2307', + 62 => 'CPH2371', + 63 => 'CPH1721', + 64 => 'CPH1611', + 65 => 'CPH1879', + 66 => 'CPH1861', + 67 => 'CPH1979', ), '@CR' => array ( @@ -1572,7 +1602,7 @@ 2 => 'Cross!!', 3 => 'Crosscall!!', 4 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 5 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 5 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 6 => 'CRONO 22', 7 => 'Crescent', ), @@ -1605,7 +1635,7 @@ 0 => 'CUBOT!!', 1 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', 2 => 'CUBE!!', - 3 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', ), '@CW' => array ( @@ -1644,7 +1674,7 @@ '@D2' => array ( 0 => 'D2-[0-9]{3,3}!!', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@D5' => array ( @@ -1677,7 +1707,7 @@ 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 2 => 'Dakele A380', 3 => 'DAKELE MC001', - 4 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 5 => 'DATAM803HC', 6 => 'DATAM805HC', 7 => 'DATAM819HD!', @@ -1760,7 +1790,7 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', ), '@DM' => @@ -1847,6 +1877,7 @@ '@DS' => array ( 0 => 'Dslide!!', + 1 => 'DSB-0220', ), '@DT' => array ( @@ -1855,7 +1886,8 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', ), '@DW' => array ( @@ -1948,8 +1980,10 @@ ), '@E9' => array ( - 0 => 'E900', - 1 => 'E912', + 0 => 'E940-2795-00', + 1 => 'E940-2796-00', + 2 => 'E900', + 3 => 'E912', ), '@EA' => array ( @@ -1979,7 +2013,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -2015,7 +2049,7 @@ 4 => 'ELIFE-E3', 5 => 'Elife E5', 6 => 'ElifeE6', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => 'Elektra L', 9 => 'Elektra XL', 10 => 'Electrify', @@ -2046,7 +2080,7 @@ 0 => 'EMBT3C', 1 => 'EM63', 2 => 'EM01F', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => 'eMAX mini', 5 => 'EMR1879', ), @@ -2110,7 +2144,7 @@ 9 => 'EVO 4G', 10 => 'Evo V 4G', 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 12 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 12 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 13 => '(EV|KM)-[ES][0-9]{3,3}!!', 14 => 'Event', 15 => 'EVERY35', @@ -2189,7 +2223,7 @@ array ( 0 => 'FIH-FB0', 1 => 'FIH-!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Find 5', 4 => 'FIND7', ), @@ -2271,11 +2305,12 @@ 1 => 'FP1U', 2 => 'FP2', 3 => 'FP3', + 4 => 'FP4', ), '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2356,11 +2391,11 @@ ), '@G6' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G9' => array ( @@ -2650,7 +2685,7 @@ array ( 0 => 'Grouper', 1 => 'GR-TB!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'greenridge', 4 => 'Graphos A10', 5 => '(ZTE )?(Grand|Mimosa)!!', @@ -2659,9 +2694,11 @@ array ( 0 => 'GS01', 1 => '(Gsmart|Gigabyte|Rio)!!', - 2 => 'GS190', - 3 => 'GS02', - 4 => 'GS03', + 2 => 'GS110', + 3 => 'GS190', + 4 => 'GS270 plus', + 5 => 'GS02', + 6 => 'GS03', ), '@GT' => array ( @@ -2713,11 +2750,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2763,8 +2800,8 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 4 => 'HD190[01]!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => 'HD190[013]!', 5 => 'HD191[03]!', ), '@HE' => @@ -2801,7 +2838,7 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( @@ -2815,12 +2852,12 @@ ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2835,7 +2872,7 @@ ), '@HR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HS' => array ( @@ -2883,57 +2920,59 @@ 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 13 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 13 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', - 15 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 15 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 16 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 17 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 18 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', 19 => '(HW-|HUAWEI )?DIG-(AL00|L01|L03|L21|TL10)!', - 20 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', - 21 => '(HW-|HUAWEI )?HWI-(AL00|TL00)!', - 22 => '(HW-|HUAWEI )?PAR-(AL00|LX1|LX1M|LX9|TL00)!', - 23 => '(HW-|HUAWEI )?INE-(AL00|LX1|LX1r|LX2||LX2r|TL00)!', - 24 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', - 25 => '(HW-|HUAWEI )?MLA-(AL00|AL10)!', - 26 => '(HW-|HUAWEI )?MLA-(TL00|TL10|UL00)!', - 27 => 'Huawei P7 mini', - 28 => 'Huawei P8max', - 29 => '(Huawei|Ascend|HW-)!!', - 30 => 'HUAWEI Honor 3c w', - 31 => 'Huawei S7', - 32 => 'Hudl HT7S3', - 33 => 'Hudl 2', - 34 => 'HUAWEI U8686', - 35 => 'Huawei 858', + 20 => '(HW-|HUAWEI )?PIC-(LX9)!', + 21 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', + 22 => '(HW-|HUAWEI )?HWI-(AL00|TL00)!', + 23 => '(HW-|HUAWEI )?PAR-(AL00|LX1|LX1M|LX9|TL00)!', + 24 => '(HW-|HUAWEI )?INE-(AL00|LX1|LX1r|LX2||LX2r|TL00)!', + 25 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', + 26 => '(HW-|HUAWEI )?MLA-(AL00|AL10)!', + 27 => '(HW-|HUAWEI )?MLA-(TL00|TL10|UL00)!', + 28 => 'Huawei P7 mini', + 29 => 'Huawei P8max', + 30 => '(Huawei|Ascend|HW-)!!', + 31 => 'HUAWEI Honor 3c w', + 32 => 'Huawei S7', + 33 => 'Hudl HT7S3', + 34 => 'Hudl 2', + 35 => 'HUAWEI U8686', + 36 => 'Huawei 858', ), '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 4 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 5 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 6 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 7 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', 8 => '(HW-|HUAWEI )?DIG-(AL00|L01|L03|L21|TL10)!', - 9 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', - 10 => '(HW-|HUAWEI )?HWI-(AL00|TL00)!', - 11 => '(HW-|HUAWEI )?PAR-(AL00|LX1|LX1M|LX9|TL00)!', - 12 => '(HW-|HUAWEI )?INE-(AL00|LX1|LX1r|LX2||LX2r|TL00)!', - 13 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', - 14 => '(HW-|HUAWEI )?MLA-(AL00|AL10)!', - 15 => '(HW-|HUAWEI )?MLA-(TL00|TL10|UL00)!', - 16 => '(Huawei|Ascend|HW-)!!', - 17 => 'hwu8812D', - 18 => 'HW-01E', - 19 => 'HW-01K', - 20 => 'HW-03E', - 21 => 'HWT31', - 22 => 'HWV32', + 9 => '(HW-|HUAWEI )?PIC-(LX9)!', + 10 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', + 11 => '(HW-|HUAWEI )?HWI-(AL00|TL00)!', + 12 => '(HW-|HUAWEI )?PAR-(AL00|LX1|LX1M|LX9|TL00)!', + 13 => '(HW-|HUAWEI )?INE-(AL00|LX1|LX1r|LX2||LX2r|TL00)!', + 14 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', + 15 => '(HW-|HUAWEI )?MLA-(AL00|AL10)!', + 16 => '(HW-|HUAWEI )?MLA-(TL00|TL10|UL00)!', + 17 => '(Huawei|Ascend|HW-)!!', + 18 => 'hwu8812D', + 19 => 'HW-01E', + 20 => 'HW-01K', + 21 => 'HW-03E', + 22 => 'HWT31', + 23 => 'HWV32', ), '@HY' => array ( @@ -2955,6 +2994,11 @@ 3 => 'i-Call 504', 4 => '(i-mobile|i-style|IQ)!!', ), + '@I0' => + array ( + 0 => 'I003DD', + 1 => 'I006D', + ), '@I1' => array ( 0 => 'I110', @@ -3132,6 +3176,7 @@ '@IV' => array ( 0 => 'IVIO!!', + 1 => 'IV2201', ), '@IW' => array ( @@ -3145,8 +3190,9 @@ ), '@JA' => array ( - 0 => 'Jaguar3', - 1 => 'Jaguar7', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => 'Jaguar3', + 2 => 'Jaguar7', ), '@JC' => array ( @@ -3179,7 +3225,11 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + ), + '@JN' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@JO' => array ( @@ -3189,7 +3239,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3316,11 +3366,12 @@ '@KI' => array ( 0 => 'Kindle Fire', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 3 => 'KIOTO 793', - 4 => 'KITE', - 5 => '(ZTE )?Kis!!', + 1 => 'KINGKONG MINI2', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', + 4 => 'KIOTO 793', + 5 => 'KITE', + 6 => '(ZTE )?Kis!!', ), '@KM' => array ( @@ -3328,7 +3379,7 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( @@ -3427,7 +3478,7 @@ ), '@LD' => array ( - 0 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 1 => 'LDK-ICK v1.4', ), '@LE' => @@ -3508,52 +3559,58 @@ 73 => 'Lenovo YT3-X90L', 74 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', 75 => 'Lenovo TB-7304F', - 76 => 'Lenovo TB-J616F', - 77 => 'Lenovo TB-X606F', - 78 => 'Lenovo TB-X103F', - 79 => 'Lenovo TB2-X30F', - 80 => 'Lenovo TB2-X30L', - 81 => 'Lenovo TB3-730X', - 82 => 'Lenovo TB3-710F', - 83 => 'Lenovo TB3-710I', - 84 => 'Lenovo TB-7703X', - 85 => 'Lenovo TB3-850F', - 86 => 'Lenovo TB3-850M', - 87 => 'Lenovo TB3-X70F', - 88 => 'Lenovo TB3-X70L', - 89 => 'Lenovo TB-8504F', - 90 => 'Lenovo TB-8703F', - 91 => 'Lenovo TB-8704F', - 92 => 'Lenovo TB-X304F', - 93 => 'Lenovo TB-X704F', - 94 => 'Lenovo TB-X704L', - 95 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 96 => 'Lenovo Pad A4', - 97 => 'Lenovo', - 98 => 'lepad 001b', - 99 => 'lepad 001n', - 100 => '(Lenovo |Lephone )?3GC101!', - 101 => '(Lenovo |Lephone )?3GW100!', - 102 => '(Lenovo |Lephone )?3GW101!', - 103 => '(Lenovo )?S1[- ]37AH0!', - 104 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 105 => 'Lenovo!!', - 106 => 'LenovoTV 40S9', - 107 => 'LenovoTV 50S52', - 108 => 'Lenovo Z2', - 109 => '(BLF-)?lephone!!', - 110 => 'Le Pan Mini', - 111 => 'Le Pan TC802A', - 112 => 'Le Pan TC1010', - 113 => 'Le Pan TC1020', - 114 => 'LePanII', - 115 => 'Le Pan S', - 116 => 'LE2101', - 117 => 'LE211[135]!', - 118 => 'LE212[01357]!', - 119 => 'LENNY', - 120 => 'LENNY2', - 121 => 'LENNY3', + 76 => 'Lenovo TB-8705F', + 77 => 'Lenovo TB-J606F', + 78 => 'Lenovo TB-J616F', + 79 => 'Lenovo TB-X104F', + 80 => 'Lenovo TB-X306F', + 81 => 'Lenovo TB-X505F', + 82 => 'Lenovo TB-X605F', + 83 => 'Lenovo TB-X606F', + 84 => 'Lenovo TB-X103F', + 85 => 'Lenovo TB2-X30F', + 86 => 'Lenovo TB2-X30L', + 87 => 'Lenovo TB3-730X', + 88 => 'Lenovo TB3-710F', + 89 => 'Lenovo TB3-710I', + 90 => 'Lenovo TB-7703X', + 91 => 'Lenovo TB3-850F', + 92 => 'Lenovo TB3-850M', + 93 => 'Lenovo TB3-X70F', + 94 => 'Lenovo TB3-X70L', + 95 => 'Lenovo TB-8504F', + 96 => 'Lenovo TB-8703F', + 97 => 'Lenovo TB-8704F', + 98 => 'Lenovo TB-X304F', + 99 => 'Lenovo TB-X704F', + 100 => 'Lenovo TB-X704L', + 101 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 102 => 'Lenovo Pad A4', + 103 => 'Lenovo', + 104 => 'lepad 001b', + 105 => 'lepad 001n', + 106 => '(Lenovo |Lephone )?3GC101!', + 107 => '(Lenovo |Lephone )?3GW100!', + 108 => '(Lenovo |Lephone )?3GW101!', + 109 => '(Lenovo )?S1[- ]37AH0!', + 110 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 111 => 'Lenovo!!', + 112 => 'LenovoTV 40S9', + 113 => 'LenovoTV 50S52', + 114 => 'Lenovo Z2', + 115 => '(BLF-)?lephone!!', + 116 => 'Le Pan Mini', + 117 => 'Le Pan TC802A', + 118 => 'Le Pan TC1010', + 119 => 'Le Pan TC1020', + 120 => 'LePanII', + 121 => 'Le Pan S', + 122 => 'LE2101', + 123 => 'LE211[135]!', + 124 => 'LE212[01357]!', + 125 => 'LENNY', + 126 => 'LENNY2', + 127 => 'LENNY3', ), '@LG' => array ( @@ -3644,7 +3701,7 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => @@ -3654,32 +3711,36 @@ 2 => 'LM-G810!', 3 => 'LM-G820!', 4 => 'LM-G900!', - 5 => 'LM-Q610!', - 6 => 'LM-Q617!', - 7 => 'LM-Q710!', - 8 => 'LM-Q720!', - 9 => 'LM-Q725!', - 10 => 'LM-Q815!', - 11 => 'LM-Q850!', - 12 => 'LM-Q910!', - 13 => 'LM-Q925!', - 14 => 'LM-V350!', - 15 => 'LM-V40[59]!', - 16 => 'LM-V450!', - 17 => 'LM-V500!', - 18 => 'LM-V600!', - 19 => 'LM-X120!', - 20 => 'LM-X210!', - 21 => 'LM-X212!', - 22 => 'LM-X220!', - 23 => 'LM-X320!', - 24 => 'LM-X410!', - 25 => 'LM-X415!', - 26 => 'LM-X420!', - 27 => 'LM-X510!', - 28 => 'LM-X525!', - 29 => 'LM-X625!', - 30 => 'LM-Y110!', + 5 => 'LM-G910!', + 6 => 'LM-K200!', + 7 => 'LM-K420!', + 8 => 'LM-Q610!', + 9 => 'LM-Q617!', + 10 => 'LM-Q630!', + 11 => 'LM-Q710!', + 12 => 'LM-Q720!', + 13 => 'LM-Q725!', + 14 => 'LM-Q815!', + 15 => 'LM-Q850!', + 16 => 'LM-Q910!', + 17 => 'LM-Q925!', + 18 => 'LM-V350!', + 19 => 'LM-V40[59]!', + 20 => 'LM-V450!', + 21 => 'LM-V500!', + 22 => 'LM-V600!', + 23 => 'LM-X120!', + 24 => 'LM-X210!', + 25 => 'LM-X212!', + 26 => 'LM-X220!', + 27 => 'LM-X320!', + 28 => 'LM-X410!', + 29 => 'LM-X415!', + 30 => 'LM-X420!', + 31 => 'LM-X510!', + 32 => 'LM-X525!', + 33 => 'LM-X625!', + 34 => 'LM-Y110!', ), '@LO' => array ( @@ -3689,7 +3750,7 @@ ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -3745,7 +3806,7 @@ 1 => 'LUXURY 3', 2 => 'LUXURY 4', 3 => 'LUXURY 5', - 4 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 4 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 5 => 'Lucky Ultra Sonic U8650', 6 => 'LU2300', 7 => 'Lumia800', @@ -3762,7 +3823,7 @@ '@LY' => array ( 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 1 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 1 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 2 => 'LYF LS-4006', 3 => 'LYF LS-5009', ), @@ -3795,7 +3856,7 @@ '@M1' => array ( 0 => 'M19', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 2 => 'M1050S', 3 => 'M1', 4 => 'm1 metal', @@ -3811,16 +3872,27 @@ 3 => 'm2', 4 => 'M2mini', 5 => 'M2002J9G', - 6 => 'M2007J17G', - 7 => 'M2007J20CG', - 8 => 'M2010J19SY', - 9 => 'M2012K11AG', - 10 => 'M2012K11G', - 11 => 'M2101K6G', - 12 => 'M2101K7AG', - 13 => 'M2101K7BNY', - 14 => 'M2101K9G', - 15 => 'M2102J20SG', + 6 => 'M2003J15SC', + 7 => 'M2004J19C', + 8 => 'M2006C3LG', + 9 => 'M2006C3MG', + 10 => 'M2007J17G', + 11 => 'M2007J20CG', + 12 => 'M2007J22G', + 13 => 'M2007J3SG', + 14 => 'M2007J3SY', + 15 => 'M2010J19CG', + 16 => 'M2010J19SY', + 17 => 'M2011K2G', + 18 => 'M2012K11AG', + 19 => 'M2012K11G', + 20 => 'M2101K6G', + 21 => 'M2101K7AG', + 22 => 'M2101K7BNY', + 23 => 'M2101K9AG', + 24 => 'M2101K9G', + 25 => 'M2102J20SG', + 26 => 'M2103K19G', ), '@M3' => array ( @@ -3905,7 +3977,7 @@ 3 => '(bq|Aquaris|Edison|Maxwell)!!', 4 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 5 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 6 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 6 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 7 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', 8 => 'MAX FIND 5.0', 9 => 'Malata!!', @@ -4037,23 +4109,27 @@ 38 => 'MI 8 UD', 39 => 'MI 8 Lite', 40 => 'MI 9', - 41 => 'Mi 9T', - 42 => 'Mi 9T Pro', - 43 => 'Mi9 Pro 5G', - 44 => 'Mi Note 10 Lite', - 45 => '(Xiaomi|Xiaomi Mi|MI) Note!!', - 46 => '(Xiaomi )?(MI )?MAX$!', - 47 => '(Xiaomi )?(MI )?MAX 2$!', - 48 => '(Xiaomi )?(MI )?MAX 3$!', - 49 => '(Xiaomi )?(MI )?MIX$!', - 50 => '(Xiaomi )?(MI )?MIX 2$!', - 51 => '(Xiaomi )?(MI )?MIX 2S$!', - 52 => 'Mi MIX 3', - 53 => 'mido', - 54 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 55 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 56 => '(Xiaomi|Xiaomi Mi|MI)TV!!', - 57 => '(ZTE )?(Grand|Mimosa)!!', + 41 => 'Mi 9 Lite', + 42 => 'Mi9 Pro 5G', + 43 => 'Mi 9 SE', + 44 => 'Mi 9T', + 45 => 'Mi 9T Pro', + 46 => 'Mi 10', + 47 => 'Mi Note 10', + 48 => 'Mi Note 10 Lite', + 49 => '(Xiaomi|Xiaomi Mi|MI) Note!!', + 50 => '(Xiaomi )?(MI )?MAX$!', + 51 => '(Xiaomi )?(MI )?MAX 2$!', + 52 => '(Xiaomi )?(MI )?MAX 3$!', + 53 => '(Xiaomi )?(MI )?MIX$!', + 54 => '(Xiaomi )?(MI )?MIX 2$!', + 55 => '(Xiaomi )?(MI )?MIX 2S$!', + 56 => 'Mi MIX 3', + 57 => 'mido', + 58 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 59 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 60 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 61 => '(ZTE )?(Grand|Mimosa)!!', ), '@MK' => array ( @@ -4098,84 +4174,107 @@ 15 => 'MORAL N01', 16 => 'motorola one', 17 => 'motorola one action', - 18 => 'motorola one macro', - 19 => 'motorola one power', - 20 => 'motorola one vision', - 21 => 'motorola one zoom', - 22 => 'motorola edge 20 pro', - 23 => 'Moto Droid', - 24 => 'Motorola Pro XT610', - 25 => 'Motorola Milestone MAXX', - 26 => 'Motorola Backflip Me600', - 27 => 'Moto ME860', - 28 => 'Moto C', - 29 => 'Moto C Plus', - 30 => '(Moto)?E2$!', - 31 => '(Moto)?E2\\(4G-LTE\\)$!', - 32 => 'Motorola MotoE2!', - 33 => 'Moto E4', - 34 => 'Moto E (4)', - 35 => 'Moto E (4) Plus', - 36 => 'moto e5 cruise', - 37 => 'moto e5 play', - 38 => '(Moto)?G3$!', - 39 => '(Moto)?G3-TE$!', - 40 => 'Moto G 2015', - 41 => 'Moto G (2015)', - 42 => 'Moto G (2014', - 43 => 'MOTOROLA MOTOG', - 44 => 'Moto G Play', - 45 => 'Moto G Turbo', - 46 => 'moto g 5G', - 47 => 'moto g 5G plus', - 48 => 'Moto G4', - 49 => 'Moto G (4', - 50 => 'Moto G (4)', - 51 => 'Moto G4 Plus', - 52 => 'Moto G 5', - 53 => 'Moto G (5', - 54 => 'Moto G (5)', - 55 => 'Moto G (5) Plus', - 56 => 'Moto G (5S', - 57 => 'Moto G (5S)', - 58 => 'Moto G (5S) Plus', - 59 => 'moto g(6', - 60 => 'moto g(6)', - 61 => 'moto g(6) (XT1925DL)', - 62 => 'moto g(6) forge', - 63 => 'moto g(6) play', - 64 => 'moto g(6) plus', - 65 => 'moto g(7', - 66 => 'moto g(7)', - 67 => 'moto g(7) optimo (XT1952DL)', - 68 => 'moto g(7) play', - 69 => 'moto g(7) plus', - 70 => 'moto g(7) power', - 71 => 'moto g(7) supra', - 72 => 'moto g(8', - 73 => 'moto g(8) power', - 74 => 'moto g(9) plus', - 75 => 'moto g(9) power', - 76 => 'Moto Z (2)', - 77 => 'Moto Z2 Play', - 78 => 'Moto X Pro', - 79 => 'moto x4', - 80 => 'Moto Backflip', - 81 => 'MOTOROLA XOOM MZ606', - 82 => 'MOTOROLA RAZR', - 83 => 'MOTWX435KT', - 84 => '(PLOYER-)?MOMO!!', - 85 => 'MOB-5045', - 86 => 'Mobii 7', - 87 => 'MoFing', - 88 => 'mocha', - 89 => 'MO-01J', - 90 => 'MO-01K', - 91 => 'Movistar Express', - 92 => 'Movistar Link', - 93 => 'Movistar Motion', - 94 => 'Movistar Prime', - 95 => 'MOVE', + 18 => 'motorola one fusion+', + 19 => 'motorola one hyper', + 20 => 'motorola one macro', + 21 => 'motorola one power', + 22 => 'motorola one vision', + 23 => 'motorola one zoom', + 24 => 'motorola edge', + 25 => 'motorola edge plus', + 26 => 'motorola edge 20', + 27 => 'motorola edge 20 lite', + 28 => 'motorola edge 20 pro', + 29 => 'Moto Droid', + 30 => 'Motorola Pro XT610', + 31 => 'Motorola Milestone MAXX', + 32 => 'Motorola Backflip Me600', + 33 => 'Moto ME860', + 34 => 'Moto C', + 35 => 'Moto C Plus', + 36 => '(Moto)?E2$!', + 37 => '(Moto)?E2\\(4G-LTE\\)$!', + 38 => 'Motorola MotoE2!', + 39 => 'Moto E4', + 40 => 'Moto E (4)', + 41 => 'Moto E (4) Plus', + 42 => 'moto e5', + 43 => 'moto e5 cruise', + 44 => 'moto e5 play', + 45 => 'moto e5 plus', + 46 => 'moto e(6i)', + 47 => 'moto e6 play', + 48 => 'moto e(6) plus', + 49 => 'moto e(7i) power', + 50 => 'moto e20', + 51 => '(Moto)?G3$!', + 52 => '(Moto)?G3-TE$!', + 53 => 'Moto G 2015', + 54 => 'Moto G (2015)', + 55 => 'Moto G (2014', + 56 => 'MOTOROLA MOTOG', + 57 => 'Moto G Play', + 58 => 'Moto G Turbo', + 59 => 'moto g 5G', + 60 => 'moto g 5G plus', + 61 => 'moto g pro', + 62 => 'Moto G4', + 63 => 'Moto G (4', + 64 => 'Moto G (4)', + 65 => 'Moto G4 Plus', + 66 => 'Moto G 5', + 67 => 'Moto G (5', + 68 => 'Moto G (5)', + 69 => 'Moto G (5) Plus', + 70 => 'Moto G (5S', + 71 => 'Moto G (5S)', + 72 => 'Moto G (5S) Plus', + 73 => 'moto g(6', + 74 => 'moto g(6)', + 75 => 'moto g(6) (XT1925DL)', + 76 => 'moto g(6) forge', + 77 => 'moto g(6) play', + 78 => 'moto g(6) plus', + 79 => 'moto g(7', + 80 => 'moto g(7)', + 81 => 'moto g(7) optimo (XT1952DL)', + 82 => 'moto g(7) play', + 83 => 'moto g(7) plus', + 84 => 'moto g(7) power', + 85 => 'moto g(7) supra', + 86 => 'moto g(8', + 87 => 'moto g(8) plus', + 88 => 'moto g(8) power', + 89 => 'moto g(9) play', + 90 => 'moto g(9) plus', + 91 => 'moto g(9) power', + 92 => 'moto g(10)', + 93 => 'moto g(20)', + 94 => 'moto g(30)', + 95 => 'moto g(60)', + 96 => 'moto g(60)s', + 97 => 'moto g(100)', + 98 => 'Moto Z (2)', + 99 => 'Moto Z2 Play', + 100 => 'Moto Z3 Play', + 101 => 'Moto X Pro', + 102 => 'moto x4', + 103 => 'Moto Backflip', + 104 => 'MOTOROLA XOOM MZ606', + 105 => 'MOTOROLA RAZR', + 106 => 'MOTWX435KT', + 107 => '(PLOYER-)?MOMO!!', + 108 => 'MOB-5045', + 109 => 'Mobii 7', + 110 => 'MoFing', + 111 => 'mocha', + 112 => 'MO-01J', + 113 => 'MO-01K', + 114 => 'Movistar Express', + 115 => 'Movistar Link', + 116 => 'Movistar Motion', + 117 => 'Movistar Prime', + 118 => 'MOVE', ), '@MP' => array ( @@ -4313,7 +4412,7 @@ ), '@MY' => array ( - 0 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 1 => 'MyPhone A818g Duo', 2 => 'MyPhone A818 Slim Duo', 3 => 'MyPhone A848 Duo', @@ -4507,7 +4606,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4557,9 +4656,10 @@ 80 => 'Next9P', 81 => 'Next10P12', 82 => 'NEXT', - 83 => 'New Andromax-i', - 84 => 'Neo V', - 85 => 'NEBULA6.9', + 83 => 'NE2213', + 84 => 'New Andromax-i', + 85 => 'Neo V', + 86 => 'NEBULA6.9', ), '@NG' => array ( @@ -4598,7 +4698,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -5138,7 +5238,7 @@ ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5191,19 +5291,20 @@ 2 => 'P1m', 3 => 'P1ma40', 4 => 'P1050X', - 5 => 'P10HD??(E6NA)', - 6 => 'P11HD', - 7 => 'P11HD四核(G9X6)', - 8 => 'P11HD??(G9X6)', - 9 => 'P11HD四核(G9X7)', - 10 => 'P19HD(E1K3)', - 11 => 'P19HD(E1K5)', + 5 => 'P1060X', + 6 => 'P10HD??(E6NA)', + 7 => 'P11HD', + 8 => 'P11HD四核(G9X6)', + 9 => 'P11HD??(G9X6)', + 10 => 'P11HD四核(G9X7)', + 11 => 'P19HD(E1K3)', + 12 => 'P19HD(E1K5)', ), '@P2' => array ( 0 => 'P2A700', 1 => 'P2Lite', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'P20HD EEA', ), '@P3' => @@ -5233,11 +5334,11 @@ 2 => 'P6 Pro', 3 => 'P6 Qmax', 4 => 'P6 Quad', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@P7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'P700i', 2 => 'P701', 3 => 'P7', @@ -5380,7 +5481,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5398,7 +5499,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5497,37 +5598,40 @@ 9 => 'Pixel 3a XL', 10 => 'Pixel 4', 11 => 'Pixel 4a', - 12 => 'Pixel 4 XL', - 13 => 'Pixel 5', - 14 => 'Pixel 6', - 15 => '(Axioo[\\- ])?PICO!!', - 16 => 'picoBit-L', - 17 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', - 18 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', - 19 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', - 20 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', - 21 => 'PixelV1', - 22 => 'Pixel V2', - 23 => 'Pixel V2+', - 24 => 'PI2000', - 25 => 'PI2010', - 26 => 'PI2011', - 27 => 'PI3100', - 28 => 'PI3100-93', - 29 => 'PI3100Z3 93', - 30 => 'PI3105', - 31 => 'PI3106', - 32 => 'PI3110', - 33 => 'PI3205G', - 34 => 'PI3210G', - 35 => 'PI3900', - 36 => 'PI3900-93', - 37 => 'PI3910', - 38 => 'PI4010G', - 39 => 'PI7000', - 40 => 'PI7100 93', - 41 => '(PNR-)?Pioneer!!', - 42 => 'PIRANHA!!', + 12 => 'Pixel 4a (5G)', + 13 => 'Pixel 4 XL', + 14 => 'Pixel 5', + 15 => 'Pixel 6', + 16 => 'Pixel 6 Pro', + 17 => '(Axioo[\\- ])?PICO!!', + 18 => 'picoBit-L', + 19 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', + 20 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', + 21 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', + 22 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', + 23 => '(HW-|HUAWEI )?PIC-(LX9)!', + 24 => 'PixelV1', + 25 => 'Pixel V2', + 26 => 'Pixel V2+', + 27 => 'PI2000', + 28 => 'PI2010', + 29 => 'PI2011', + 30 => 'PI3100', + 31 => 'PI3100-93', + 32 => 'PI3100Z3 93', + 33 => 'PI3105', + 34 => 'PI3106', + 35 => 'PI3110', + 36 => 'PI3205G', + 37 => 'PI3210G', + 38 => 'PI3900', + 39 => 'PI3900-93', + 40 => 'PI3910', + 41 => 'PI4010G', + 42 => 'PI7000', + 43 => 'PI7100 93', + 44 => '(PNR-)?Pioneer!!', + 45 => 'PIRANHA!!', ), '@PJ' => array ( @@ -5538,7 +5642,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -5666,7 +5770,7 @@ array ( 0 => 'Project Tango Tablet Development Kit', 1 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Pro 10 dual core', 4 => 'Prada 3.0', 5 => 'PRO 5', @@ -6105,7 +6209,7 @@ 2 => 'Rikomagic MK802III', 3 => 'Rikomagic MK802IIIS', 4 => '(Gsmart|Gigabyte|Rio)!!', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Rise', 7 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 8 => 'RIDGE', @@ -6152,12 +6256,21 @@ 2 => 'RM-1061', 3 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 4 => 'RMD-[0-9]{2,3}G!!', - 5 => 'RMX3242', - 6 => 'RMX3363', + 5 => 'RMX1993', + 6 => 'RMX2002', + 7 => 'RMX2170', + 8 => 'RMX2202', + 9 => 'RMX3081', + 10 => 'RMX3085', + 11 => 'RMX3241', + 12 => 'RMX3242', + 13 => 'RMX3301', + 14 => 'RMX3311', + 15 => 'RMX3363', ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6209,15 +6322,17 @@ array ( 0 => 's3c6410', 1 => 'S30', - 2 => 'S308', - 3 => 'S3', + 2 => 'S31', + 3 => 'S308', + 4 => 'S3', ), '@S4' => array ( 0 => 'S40', - 1 => 'S4503Q', - 2 => 'S4505M', - 3 => 'S4', + 1 => 'S42', + 2 => 'S4503Q', + 3 => 'S4505M', + 4 => 'S4', ), '@S5' => array ( @@ -6225,9 +6340,11 @@ 1 => 'S5-F', 2 => 'S50', 3 => 'S50c', - 4 => 'S5', - 5 => 'S5 Mini!', - 6 => 'S51SE', + 4 => 'S52', + 5 => 'S5 Pro', + 6 => 'S5', + 7 => 'S5 Mini!', + 8 => 'S51SE', ), '@S6' => array ( @@ -6251,6 +6368,10 @@ 2 => 'S850', 3 => 'S880', ), + '@S9' => + array ( + 0 => 'S96Pro', + ), '@SA' => array ( 0 => 'sama5d3', @@ -6283,9 +6404,9 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 3 => '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', 5 => 'SCH-L710!', 6 => 'SCH-M828!', @@ -6347,23 +6468,25 @@ 9 => 'SHIELD Tablet X1', 10 => 'SHIELD Tablet II', 11 => 'Shine', - 12 => 'SH940C-LN', - 13 => 'SH940C-LN TV', - 14 => 'SH960C-LN', - 15 => 'Sholes', - 16 => 'SHV-E[0-9]{3,3}!!', - 17 => 'SHW-M[0-9]{3,3}!!', - 18 => 'SH01D', - 19 => 'SH-M01', - 20 => 'SH-M02', - 21 => 'SH-M02-EVA20', - 22 => 'SH-M03', - 23 => 'SH-M07', - 24 => 'SH-RM02', - 25 => 'SH-[01][0-9][A-Z]!!', - 26 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', - 27 => 'SH[FLTV][0-9]{2,2}!!', - 28 => 'SHARP-ADS1', + 12 => 'SHT-W09', + 13 => 'SH940C-LN', + 14 => 'SH940C-LN TV', + 15 => 'SH960C-LN', + 16 => 'Sholes', + 17 => 'SHV-E[0-9]{3,3}!!', + 18 => 'SHW-M[0-9]{3,3}!!', + 19 => 'SH01D', + 20 => 'SH-C02', + 21 => 'SH-M01', + 22 => 'SH-M02', + 23 => 'SH-M02-EVA20', + 24 => 'SH-M03', + 25 => 'SH-M07', + 26 => 'SH-RM02', + 27 => 'SH-[01][0-9][A-Z]!!', + 28 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', + 29 => 'SH[FLTV][0-9]{2,2}!!', + 30 => 'SHARP-ADS1', ), '@SI' => array ( @@ -6427,19 +6550,21 @@ 31 => 'SM-S[0-9]{3,3}!!', 32 => 'SM-T[0-9]{3,3}!!', 33 => 'SM-X200', - 34 => 'SM-V700', - 35 => 'SM-W[0-9]{4,4}!!', - 36 => 'Smartphone Android by SFR STARADDICT II', - 37 => '(Smartfren|Andromax)!!', - 38 => 'Smartfren Tab 7', - 39 => 'SM919', - 40 => 'SM701', - 41 => 'SM801', - 42 => 'SmartQ!!', - 43 => 'SMART Sprint', - 44 => 'SMART Start', - 45 => 'SMART Surf2 4G', - 46 => 'SmartTab!!', + 34 => 'SM-X205', + 35 => 'SM-X900', + 36 => 'SM-V700', + 37 => 'SM-W[0-9]{4,4}!!', + 38 => 'Smartphone Android by SFR STARADDICT II', + 39 => '(Smartfren|Andromax)!!', + 40 => 'Smartfren Tab 7', + 41 => 'SM919', + 42 => 'SM701', + 43 => 'SM801', + 44 => 'SmartQ!!', + 45 => 'SMART Sprint', + 46 => 'SMART Start', + 47 => 'SMART Surf2 4G', + 48 => 'SmartTab!!', ), '@SN' => array ( @@ -6461,7 +6586,7 @@ 7 => 'Softwinerf900', 8 => 'SoftwinerEvbV13', 9 => 'soho', - 10 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 10 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 11 => 'SONIC', 12 => 'Sonim!!', 13 => 'SO-0[0-9][A-Z]!!', @@ -6527,8 +6652,8 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 16 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 16 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', 19 => 'STM[0-9]{3,3}H!!', @@ -6979,7 +7104,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -7385,7 +7510,7 @@ 20 => 'Vibo-A688', 21 => 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro', 22 => 'Vivid 4G', - 23 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 23 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 24 => 'Vibe K5 Plus', 25 => 'VIBE X2 (X2)', 26 => 'VIBE X3', @@ -7426,18 +7551,19 @@ 61 => 'ViewSonic VB733', 62 => 'VINUS!!', 63 => '(BBG-|VIV-)?vivo!!', - 64 => 'Viettel i5', - 65 => 'Viettel I8', - 66 => 'VIETTEL V8404!', - 67 => 'Viettel V8410', - 68 => 'VIETTEL V8411', - 69 => 'Viettel V8502', - 70 => 'VIETTEL V8506', - 71 => 'VIETTEL V8509', + 64 => 'View2 Go', + 65 => 'Viettel i5', + 66 => 'Viettel I8', + 67 => 'VIETTEL V8404!', + 68 => 'Viettel V8410', + 69 => 'VIETTEL V8411', + 70 => 'Viettel V8502', + 71 => 'VIETTEL V8506', + 72 => 'VIETTEL V8509', ), '@VK' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VK410', 2 => 'VK700', 3 => 'VK810 4G', @@ -7455,7 +7581,7 @@ ), '@VN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@VO' => array ( @@ -7464,7 +7590,7 @@ 2 => 'Volantisg', 3 => 'VOYAGER DG300', 4 => 'VOYAGER2 DG310', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Vox', 7 => 'Vortex', 8 => 'vollo Vi86', @@ -7510,7 +7636,7 @@ ), '@VT' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VT6078', 2 => 'VT75C', 3 => 'VT77C', @@ -7605,7 +7731,7 @@ ), '@WA' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'WA-U420D', 2 => 'WALSUN S1 Pro', 3 => 'WALSUN S2', @@ -7784,19 +7910,20 @@ 12 => 'X1 mini', 13 => 'X1 Selfie', 14 => 'X1010', - 15 => 'X10(a|i|iv|i-o|s)?$!', - 16 => 'X10 ?(Mini ?Pro)$!', - 17 => 'X10 ?(Mini)$!', - 18 => 'X10H(G3C5)', - 19 => 'X10HD 3G(M6K6)', - 20 => 'X16 Plus(D3A5)', - 21 => 'X16 Power(D6F7)', - 22 => 'X16 PRO(D6F8)', - 23 => 'X16HD (K3J3)', - 24 => 'X16HD 3G(M5J4)', - 25 => 'X16HD 3G(M5J5)', - 26 => 'X16HD 3G(M5J5', - 27 => 'X16HD 3G(M5J6)', + 15 => 'X1030X', + 16 => 'X10(a|i|iv|i-o|s)?$!', + 17 => 'X10 ?(Mini ?Pro)$!', + 18 => 'X10 ?(Mini)$!', + 19 => 'X10H(G3C5)', + 20 => 'X10HD 3G(M6K6)', + 21 => 'X16 Plus(D3A5)', + 22 => 'X16 Power(D6F7)', + 23 => 'X16 PRO(D6F8)', + 24 => 'X16HD (K3J3)', + 25 => 'X16HD 3G(M5J4)', + 26 => 'X16HD 3G(M5J5)', + 27 => 'X16HD 3G(M5J5', + 28 => 'X16HD 3G(M5J6)', ), '@X2' => array ( @@ -8016,9 +8143,10 @@ 15 => 'Xiaomi MCT1!', 16 => 'Xiaomi MAT136!', 17 => 'Xiaomi MBT6A5!', - 18 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 19 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 20 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 18 => 'Xiaomi 11T Pro', + 19 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 20 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 21 => '(Xiaomi|Xiaomi Mi|MI)TV!!', ), '@XL' => array ( @@ -8077,8 +8205,13 @@ ), '@XQ' => array ( - 0 => 'XQ-AS52', - 1 => 'XQ-AU52', + 0 => 'XQ-AT51', + 1 => 'XQ-BC52', + 2 => 'XQ-AS52', + 3 => 'XQ-AU52', + 4 => 'XQ-BT52', + 5 => 'XQ-AD52', + 6 => 'XQ-BE52', ), '@XT' => array ( @@ -8132,7 +8265,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( diff --git a/data/models-android.php b/data/models-android.php index 98d66e30f..a181ee4f2 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -272,9 +272,11 @@ 'Pixel 3a XL' => [ 'Google', 'Pixel 3a XL' ], 'Pixel 4' => [ 'Google', 'Pixel 4' ], 'Pixel 4a' => [ 'Google', 'Pixel 4a' ], + 'Pixel 4a (5G)' => [ 'Google', 'Pixel 4a 5G' ], 'Pixel 4 XL' => [ 'Google', 'Pixel 4 XL' ], 'Pixel 5' => [ 'Google', 'Pixel 5' ], 'Pixel 6' => [ 'Google', 'Pixel 6' ], + 'Pixel 6 Pro' => [ 'Google', 'Pixel 6 Pro' ], /* Google Edition */ 'HTC One' => [ 'HTC', 'One (Google Edition)' ], @@ -1003,6 +1005,7 @@ '5024[D]!' => [ 'Alcatel', '1S' ], '5025[DEGX]!' => [ 'Alcatel', 'One Touch Pop 3' ], '5027[B]!' => [ 'Alcatel', 'One Touch Dawn' ], + '5030[F]!' => [ 'Alcatel', '1SE' ], '5033[ADJOX]!' => [ 'Alcatel', '1' ], '5034[D]!' => [ 'Alcatel', '3L' ], 'one ?touch 5035!' => [ 'Alcatel', 'One Touch X\'Pop' ], @@ -1033,6 +1036,7 @@ '5058[I]!' => [ 'Alcatel', '3X' ], '5059[ADJTXY]!' => [ 'Alcatel', '1X' ], '5060[D]!' => [ 'Alcatel', '5V' ], + '5061[U]!' => [ 'Alcatel', '3X' ], '5065[ADJNWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5)' ], '5070[DJX]!' => [ 'Alcatel', 'One Touch Pop Star' ], '5080[A]!' => [ 'Alcatel', 'Shine Lite' ], @@ -1777,6 +1781,8 @@ 'PadFone X' => [ 'Asus', 'PadFone X', DeviceType::TABLET ], 'PadFone X mini' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], 'ETBW11AA' => [ 'Asus', 'Tough' ], + 'I003DD' => [ 'Asus', 'ROG Phone 3' ], + 'I006D' => [ 'Asus', 'Zenfone 8 Mini' ], 'K00C' => [ 'Asus', 'Transformer Pad Infinity', DeviceType::TABLET ], 'K010' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], 'K010E' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], @@ -2245,6 +2251,8 @@ 'BBF100-[0-9]!' => [ 'BlackBerry', 'KEY2' ], 'BV8000Pro' => [ 'Blackview', 'BV8000 Pro' ], + 'BV9100' => [ 'Blackview', 'BV9100' ], + 'BV9600E' => [ 'Blackview', 'BV9600E' ], 'P2Lite' => [ 'Blackview', 'P2 Lite' ], 'Endeavour!!' => [ @@ -2588,6 +2596,7 @@ 'Aquaris U Lite' => [ 'bq', 'Aquaris U Lite' ], 'Aquaris U Plus' => [ 'bq', 'Aquaris U Plus' ], 'Aquaris X' => [ 'bq', 'Aquaris X' ], + 'Aquaris X2' => [ 'bq', 'Aquaris X2' ], 'Aquaris X5' => [ 'bq', 'Aquaris X5' ], 'Aquaris X5 Plus' => [ 'bq', 'Aquaris X5 Plus' ], 'bq Curie' => [ 'bq', 'Curie', DeviceType::TABLET ], @@ -2701,9 +2710,12 @@ 'B15' => [ 'CAT', 'B15' ], 'B15Q' => [ 'CAT', 'B15Q' ], 'S30' => [ 'CAT', 'S30' ], + 'S31' => [ 'CAT', 'S31' ], 'S40' => [ 'CAT', 'S40' ], + 'S42' => [ 'CAT', 'S42' ], 'S50' => [ 'CAT', 'S50' ], 'S50c' => [ 'CAT', 'S50c' ], + 'S52' => [ 'CAT', 'S52' ], 'S61' => [ 'CAT', 'S61' ], 'S62 Pro' => [ 'CAT', 'S62 Pro' ], @@ -3471,6 +3483,7 @@ 'S222' => [ 'Cubot', 'S222' ], 'S308' => [ 'Cubot', 'S308' ], + 'KINGKONG MINI2' => [ 'Cubot', 'King Kong Mini 2' ], '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!' => [ 'CUBE K8GT' => [ 'Cube', 'K8GT', DeviceType::TABLET ], @@ -3939,6 +3952,7 @@ 'Discovery2-DG500C' => [ 'Doogee', 'Discovery 2 DG500C' ], 'DG750 Iron Bone' => [ 'Doogee', 'Iron Bone DG750' ], 'TURBO DG2014' => [ 'Doogee', 'Turbo DG2014' ], + 'S96Pro' => [ 'Doogee', 'S96 Pro' ], 'DOOV!!' => [ 'DOOV C1' => [ 'DOOV', 'C1' ], @@ -3992,6 +4006,7 @@ 'Doro 824' => [ 'Doro', 'Liberto 824' ], '825 T-Mobile' => [ 'Doro', 'Liberto 825' ], 'Doro PhoneEasy 745' => [ 'Doro', 'PhoneEasy 745' ], + 'DSB-0220' => [ 'Doro', '8080' ], 'M975' => [ 'Double Power', 'M975', DeviceType::TABLET ], 'TD-1010' => [ 'Double Power', 'TD-1010', DeviceType::TABLET ], 'Tablet-P27' => [ 'DracoTek', 'P27 Tablet', DeviceType::TABLET ], @@ -4281,6 +4296,7 @@ 'FP1U' => [ 'Fairphone', '1' ], 'FP2' => [ 'Fairphone', '2' ], 'FP3' => [ 'Fairphone', '3' ], + 'FP4' => [ 'Fairphone', '4' ], 'FDT!!' => [ 'FDT C838' => [ 'FDT', 'C838' ], @@ -4725,7 +4741,12 @@ 'Gigaset QV1030' => [ 'Gigaset', 'QV1030', DeviceType::TABLET ], ], + 'GS110' => [ 'Gigaset', 'GS110' ], 'GS190' => [ 'Gigaset', 'GS190' ], + 'GS270 plus' => [ 'Gigaset', 'GS270 Plus' ], + 'E940-2795-00' => [ 'Gigaset', 'GS4' ], + 'E940-2796-00' => [ 'Gigaset', 'GS4' ], + '80-1' => [ 'Gigaset', 'Maxwell 10', DeviceType::DECT ], 'SL930' => [ 'Gigaset', 'SL930', DeviceType::DECT ], @@ -6132,6 +6153,9 @@ 'Huawei MediaPad T1 7.0 3G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], 'Huawei MediaPad T1 8.0 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], 'Huawei MediaPad T1 10 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], + + 'SHT-W09' => [ 'Huawei', 'MediaPad M5', DeviceType::TABLET ], + 'AGS2-W09' => [ 'Huawei', 'MediaPad T5', DeviceType::TABLET ], 'MediaPad!!' => [ 'MediaPad' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], @@ -6249,7 +6273,7 @@ '(HW-|HUAWEI )?JKM-(AL00|AL00a|AL00b|LX1|LX2|LX3|TL00)!' => [ 'Huawei', 'Enjoy 9 Plus' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6272,6 +6296,7 @@ '(HW-|HUAWEI )?BND-(AL00|AL10|L21|L24|L31|L34|TL10)!' => [ 'Huawei', 'Honor 7X' ], '(HW-|HUAWEI )?DUA-(AL00|TL00)!' => [ 'Huawei', 'Honor 7 Play' ], '(HW-|HUAWEI )?FRD-(AL00|AL10|DL00|L02|L04|L09|L14|L19)!' => [ 'Huawei', 'Honor 8' ], + '(HW-|HUAWEI )?JAT-(L41|LX1|LX3)!' => [ 'Huawei', 'Honor 8A Pro' ], '(HW-|HUAWEI )?BKK-(AL00|AL10|L21|LX2)!' => [ 'Huawei', 'Honor 8C' ], '(HW-|HUAWEI )?JSN-(AL00|AL00a|L21|L22|L23|L42|TL00)!' => [ 'Huawei', 'Honor 8X' ], '(HW-|HUAWEI )?ATH-(UL01|UL06)!' => [ 'Huawei', 'Honor ShotX' ], @@ -6291,6 +6316,7 @@ '(HW-|HUAWEI )?PCT-(AL10|L29|TL10)!' => [ 'Huawei', 'Honor V20' ], '(HW-|HUAWEI )?OXF-(AN10)!' => [ 'Huawei', 'Honor V30 Pro' ], '(HW-|HUAWEI )?TNY-(AL00)!' => [ 'Huawei', 'Honor Magic 2' ], + '(HW-|HUAWEI )?COR-(AL10|L29)!' => [ 'Huawei', 'Honor Play' ], '(HW-|HUAWEI )?HDN-(L09|W09)!' => [ 'Huawei', 'Honor WaterPlay', DeviceType::TABLET ], ], @@ -6301,7 +6327,7 @@ '(HW-|HUAWEI )?BLL-(L21|L22|L23)!' => [ 'Huawei', 'GR5 (2017)' ], ], - '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ + '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ 'HUAWEI D2' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?D2-(0082|2010|5000|6070|6114)!' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?G6-(C00|L11|L22|L33|T00|U00|U10|U34|U251)!' => [ 'Huawei', 'Ascend G6' ], @@ -6326,19 +6352,20 @@ '(HW-|HUAWEI )?WAS-?(AL00|L03T|LX1|LX1A|LX2|LX2J|LX3|TL10)!' => [ 'Huawei', 'P10 Lite' ], '(HW-|HUAWEI )?VKY-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P10 Plus' ], '(HW-|HUAWEI )?FIG-?(AL00|AL10|LA1|LX1|LX3|TL00)!' => [ 'Huawei', 'P Smart' ], - '(HW-|HUAWEI )?STK-?(L22|LX1|LX3)!' => [ 'Huawei', 'P Smart Z' ], + '(HW-|HUAWEI )?STK-?(L21|L22|LX1|LX3)!' => [ 'Huawei', 'P Smart Z' ], '(HW-|HUAWEI )?EML-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P20' ], '(HW-|HUAWEI )?ANE-?(AL00|L21|LX1|LX2|LX2J|LX3)!' => [ 'Huawei', 'P20 Lite' ], '(HW-|HUAWEI )?CLT-?(AL00|AL01|L04|L09|L29|L39|TL00|TL01)!' => [ 'Huawei', 'P20 Pro' ], '(HW-|HUAWEI )?ELE-?(AL00|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30' ], '(HW-|HUAWEI )?VOG-?(AL00|AL10|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30 Pro' ], '(HW-|HUAWEI )?MAR-?(LX1B)!' => [ 'Huawei', 'P30 Lite' ], + '(HW-|HUAWEI )?JNY-?(LX1)!' => [ 'Huawei', 'P40 Lite' ], ], 'Rock-(AL00|CL00|L01|L03)!' => [ 'Huawei', 'Ascend G7' ], 'HUAWEI A168-(AL10|DL09|L09|L29)!' => [ 'Huawei', 'P9' ], - '(HW-|HUAWEI )?(CRO|LUA|CUN|SCC|SCU|CAM|LDN|LYO|MYA)!!' => [ + '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!' => [ '(HW-|HUAWEI )?CRO-(L02|L03|L22|U00)!' => [ 'Huawei', 'Y3 (2017)' ], '(HW-|HUAWEI )?LUA-(L01|L02|L03|L13|L21|L22|L23|U02|U03|U22|U23)!' => [ 'Huawei', 'Y3 II' ], '(HW-|HUAWEI )?CUN-(AL00|L01|L02|L03|L21|L22|L23|L33|TL00|U29)!' => [ 'Huawei', 'Y5 II' ], @@ -6348,12 +6375,15 @@ '(HW-|HUAWEI )?CAM-(L01|L03|L11|L21|L23|L32|AL00|CL00|TL00|UL00)!' => [ 'Huawei', 'Y6 II' ], '(HW-|HUAWEI )?LYO-(L01|L02|L21)!' => [ 'Huawei', 'Y6 II Compact' ], '(HW-|HUAWEI )?LDN-(AL00|L01|L21|LX2|LX3|TL00)!' => [ 'Huawei', 'Y7 Prime (2018)' ], + '(HW-|HUAWEI )?DUB-(LX1|LX3)!' => [ 'Huawei', 'Y7 Prime (2019)' ], + '(HW-|HUAWEI )?ART-(L29)!' => [ 'Huawei', 'Y7p' ], ], '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!' => [ 'Huawei', 'Nova' ], '(HW-|HUAWEI )?CAN-(L01|L11|L12)!' => [ 'Huawei', 'Nova' ], '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!' => [ 'Huawei', 'Nova Plus' ], '(HW-|HUAWEI )?DIG-(AL00|L01|L03|L21|TL10)!' => [ 'Huawei', 'Nova Smart' ], + '(HW-|HUAWEI )?PIC-(LX9)!' => [ 'Huawei', 'Nova 2' ], '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!' => [ 'Huawei', 'Nova 2 Plus' ], '(HW-|HUAWEI )?HWI-(AL00|TL00)!' => [ 'Huawei', 'Nova 2S' ], '(HW-|HUAWEI )?PAR-(AL00|LX1|LX1M|LX9|TL00)!' => [ 'Huawei', 'Nova 3' ], @@ -7148,6 +7178,8 @@ 'Infinix X1000' => [ 'Infinix', 'Joypad 10 X1000', DeviceType::TABLET ], ], + 'S5 Pro' => [ 'Infinix', 'S5 Pro' ], + 'IN[0-9]{3,3}!!' => [ 'IN260' => [ 'InFocus', 'IN260' ], 'IN330' => [ 'InFocus', 'IN330' ], @@ -8462,7 +8494,13 @@ ], 'Lenovo TB-7304F' => [ 'Lenovo', 'Tab 7 Essential', DeviceType::TABLET ], + 'Lenovo TB-8705F' => [ 'Lenovo', 'Tab M8', DeviceType::TABLET ], + 'Lenovo TB-J606F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], 'Lenovo TB-J616F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], + 'Lenovo TB-X104F' => [ 'Lenovo', 'Tab E10', DeviceType::TABLET ], + 'Lenovo TB-X306F' => [ 'Lenovo', 'Tab M10 HD', DeviceType::TABLET ], + 'Lenovo TB-X505F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], + 'Lenovo TB-X605F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], 'Lenovo TB-X606F' => [ 'Lenovo', 'Tab M11 FHD Plus', DeviceType::TABLET ], 'Lenovo TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], @@ -8654,6 +8692,7 @@ 'Lenovo K50-t3s' => [ 'Lenovo', 'K3 Note' ], 'Lenovo K50-T5' => [ 'Lenovo', 'K3 Note' ], 'Lenovo K50t5' => [ 'Lenovo', 'K3 Note' ], + 'Lenovo K520' => [ 'Lenovo', 'S5' ], 'Lenovo K6' => [ 'Lenovo', 'K6' ], 'Lenovo N300' => [ 'Lenovo', 'N300', DeviceType::DESKTOP ], 'Lenovo N308' => [ 'Lenovo', 'N308', DeviceType::DESKTOP ], @@ -9443,8 +9482,12 @@ 'LM-G810!' => [ 'LG', 'G8s ThinQ' ], 'LM-G820!' => [ 'LG', 'G8 ThinQ' ], 'LM-G900!' => [ 'LG', 'Velvet' ], + 'LM-G910!' => [ 'LG', 'Velvet 4G' ], + 'LM-K200!' => [ 'LG', 'K22' ], + 'LM-K420!' => [ 'LG', 'K42' ], 'LM-Q610!' => [ 'LG', 'Q7' ], 'LM-Q617!' => [ 'LG', 'Q7 BTS Edition' ], + 'LM-Q630!' => [ 'LG', 'K61' ], 'LM-Q710!' => [ 'LG', 'Q Stylus+' ], 'LM-Q720!' => [ 'LG', 'Stylo 5' ], 'LM-Q725!' => [ 'LG', 'Q7 Plus' ], @@ -9942,6 +9985,8 @@ 'LIFETAB E10312' => [ 'Medion', 'Lifetab E10312', DeviceType::TABLET ], 'LIFETAB E10316' => [ 'Medion', 'Lifetab E10316', DeviceType::TABLET ], 'LIFETAB E10320' => [ 'Medion', 'Lifetab E10320', DeviceType::TABLET ], + 'LIFETAB E1070X' => [ 'Medion', 'Lifetab E1070X', DeviceType::TABLET ], + 'LIFETAB E1071X' => [ 'Medion', 'Lifetab E1071X', DeviceType::TABLET ], 'LIFETAB P733X' => [ 'Medion', 'Lifetab P733X', DeviceType::TABLET ], 'LIFETAB P831X' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], 'LIFETAB P831X.2' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], @@ -9972,6 +10017,8 @@ ], 'P1050X' => [ 'Medion', 'Lifetab P1050X', DeviceType::TABLET ], + 'P1060X' => [ 'Medion', 'Lifetab P1060X', DeviceType::TABLET ], + 'X1030X' => [ 'Medion', 'Lifetab X1030X', DeviceType::TABLET ], 'MEEG!!' => [ 'MEEG 101' => [ 'MEEG', '101' ], @@ -10703,11 +10750,17 @@ 'motorola one' => [ 'Motorola', 'One' ], 'motorola one action' => [ 'Motorola', 'One Action' ], + 'motorola one fusion+' => [ 'Motorola', 'One Fusion+' ], + 'motorola one hyper' => [ 'Motorola', 'One Hyper' ], 'motorola one macro' => [ 'Motorola', 'One Macro' ], 'motorola one power' => [ 'Motorola', 'One Power' ], 'motorola one vision' => [ 'Motorola', 'One Vision' ], 'motorola one zoom' => [ 'Motorola', 'One Zoom' ], + 'motorola edge' => [ 'Motorola', 'Edge' ], + 'motorola edge plus' => [ 'Motorola', 'Edge Plus' ], + 'motorola edge 20' => [ 'Motorola', 'Edge 20' ], + 'motorola edge 20 lite' => [ 'Motorola', 'Edge 20 Lite' ], 'motorola edge 20 pro' => [ 'Motorola', 'Edge 20 Pro' ], 'Atrix 2' => [ 'Motorola', 'ATRIX 2' ], @@ -10767,8 +10820,15 @@ 'Moto E4' => [ 'Motorola', 'Moto E4' ], 'Moto E (4)' => [ 'Motorola', 'Moto E4' ], 'Moto E (4) Plus' => [ 'Motorola', 'Moto E4 Plus' ], + 'moto e5' => [ 'Motorola', 'Moto E5' ], 'moto e5 cruise' => [ 'Motorola', 'Moto E5 Cruise' ], 'moto e5 play' => [ 'Motorola', 'Moto E5 Play' ], + 'moto e5 plus' => [ 'Motorola', 'Moto E5 Plus' ], + 'moto e(6i)' => [ 'Motorola', 'Moto E6i' ], + 'moto e6 play' => [ 'Motorola', 'Moto E6 Play' ], + 'moto e(6) plus' => [ 'Motorola', 'Moto E6 Plus' ], + 'moto e(7i) power' => [ 'Motorola', 'Moto E7i Power' ], + 'moto e20' => [ 'Motorola', 'Moto E20' ], '(Moto)?G3$!' => [ 'Motorola', 'Moto G (2015)' ], '(Moto)?G3-TE$!' => [ 'Motorola', 'Moto G (2015)' ], 'Moto G 2015' => [ 'Motorola', 'Moto G (2015)' ], @@ -10779,6 +10839,7 @@ 'Moto G Turbo' => [ 'Motorola', 'Moto G Turbo' ], 'moto g 5G' => [ 'Motorola', 'Moto G 5G' ], 'moto g 5G plus' => [ 'Motorola', 'Moto G 5G Plus' ], + 'moto g pro' => [ 'Motorola', 'Moto G Pro' ], 'Moto G4' => [ 'Motorola', 'Moto G4' ], 'Moto G (4' => [ 'Motorola', 'Moto G4' ], 'Moto G (4)' => [ 'Motorola', 'Moto G4' ], @@ -10804,11 +10865,20 @@ 'moto g(7) power' => [ 'Motorola', 'Moto G7 Power' ], 'moto g(7) supra' => [ 'Motorola', 'Moto G7 Supra' ], 'moto g(8' => [ 'Motorola', 'Moto G8' ], + 'moto g(8) plus' => [ 'Motorola', 'Moto G8 Plus' ], 'moto g(8) power' => [ 'Motorola', 'Moto G8 Power' ], + 'moto g(9) play' => [ 'Motorola', 'Moto G9 Play' ], 'moto g(9) plus' => [ 'Motorola', 'Moto G9 Plus' ], 'moto g(9) power' => [ 'Motorola', 'Moto G9 Power' ], + 'moto g(10)' => [ 'Motorola', 'Moto G10' ], + 'moto g(20)' => [ 'Motorola', 'Moto G20' ], + 'moto g(30)' => [ 'Motorola', 'Moto G30' ], + 'moto g(60)' => [ 'Motorola', 'Moto G60' ], + 'moto g(60)s' => [ 'Motorola', 'Moto G60s' ], + 'moto g(100)' => [ 'Motorola', 'Moto G100' ], 'Moto Z (2)' => [ 'Motorola', 'Moto Z2' ], 'Moto Z2 Play' => [ 'Motorola', 'Moto Z2 Play' ], + 'Moto Z3 Play' => [ 'Motorola', 'Moto Z3 Play' ], 'Moto X Pro' => [ 'Motorola', 'Moto X Pro' ], 'moto x4' => [ 'Motorola', 'Moto X4' ], 'roiX' => [ 'Motorola', 'Droid X' ], @@ -11371,7 +11441,7 @@ 'ONEPLUS A6003' => [ 'OnePlus', '6' ], 'ONEPLUS A6010' => [ 'OnePlus', '6T' ], 'ONEPLUS A6013' => [ 'OnePlus', '6T' ], - 'HD190[01]!' => [ 'OnePlus', '7T' ], + 'HD190[013]!' => [ 'OnePlus', '7T' ], 'HD191[03]!' => [ 'OnePlus', '7T Pro' ], 'GM190[0135]!' => [ 'OnePlus', '7' ], 'GM191[01357]!' => [ 'OnePlus', '7 Pro' ], @@ -11381,6 +11451,7 @@ 'LE2101' => [ 'OnePlus', '9T' ], 'LE211[135]!' => [ 'OnePlus', '9' ], 'LE212[01357]!' => [ 'OnePlus', '9 Pro' ], + 'NE2213' => [ 'OnePlus', '10 Pro' ], 'ONE E1000' => [ 'OnePlus', 'X' ], 'ONE E1001' => [ 'OnePlus', 'X' ], 'ONE E1003' => [ 'OnePlus', 'X' ], @@ -11388,6 +11459,9 @@ 'AC2003' => [ 'OnePlus', 'Nord' ], 'DN2103' => [ 'OnePlus', 'Nord 2' ], 'EB2103' => [ 'OnePlus', 'Nord CE' ], + 'IV2201' => [ 'OnePlus', 'Nord CE 2' ], + 'BE2029' => [ 'OnePlus', 'Nord N10' ], + 'BE2013' => [ 'OnePlus', 'Nord N100' ], 'ONDA MID' => [ 'Onda', 'MID', DeviceType::TABLET ], 'ONDA A9 Core4' => [ 'Onda', 'A9 Quad Core', DeviceType::TABLET ], 'ONDA VI10' => [ 'Onda', 'VI10', DeviceType::TABLET ], @@ -11496,27 +11570,44 @@ 'CPH1859' => [ 'Oppo', 'F7 Youth' ], 'CPH1881' => [ 'Oppo', 'F9' ], 'CPH1823' => [ 'Oppo', 'F9 Pro' ], + 'CPH1837' => [ 'Oppo', 'A3' ], + 'CPH1877' => [ 'Oppo', 'RX17 Pro' ], + 'CPH1893' => [ 'Oppo', 'RX17 Neo' ], 'CPH1907' => [ 'Oppo', 'Reno 2' ], + 'CPH1911' => [ 'Oppo', 'F11' ], + 'CPH1917' => [ 'Oppo', 'Reno' ], + 'CPH1919' => [ 'Oppo', 'Reno 10x Zoom' ], 'CPH1931' => [ 'Oppo', 'A5 (2020)' ], + 'CPH1951' => [ 'Oppo', 'Reno 2Z' ], 'CPH1969' => [ 'Oppo', 'F11 Pro' ], + 'CPH2005' => [ 'Oppo', 'Find X2 Lite' ], + 'CPH2009' => [ 'Oppo', 'Find X2 Neo' ], 'CPH2021' => [ 'Oppo', 'A91' ], + 'CPH2023' => [ 'Oppo', 'Find X2' ], + 'CPH2025' => [ 'Oppo', 'Find X2 Pro' ], 'CPH2043' => [ 'Oppo', 'Reno 3' ], + 'CPH2065' => [ 'Oppo', 'Reno 4Z' ], 'CPH2067' => [ 'Oppo', 'A72' ], + 'CPH2069' => [ 'Oppo', 'A52' ], 'CPH2089' => [ 'Oppo', 'Reno 4 Pro' ], 'CPH2091' => [ 'Oppo', 'Reno 4' ], 'CPH2127' => [ 'Oppo', 'A53' ], 'CPH2135' => [ 'Oppo', 'A53s' ], 'CPH2145' => [ 'Oppo', 'Find X3 Lite' ], 'CPH2161' => [ 'Oppo', 'A73' ], + 'CPH2173' => [ 'Oppo', 'Find X3 Pro' ], 'CPH2185' => [ 'Oppo', 'A15' ], 'CPH2195' => [ 'Oppo', 'A54' ], 'CPH2197' => [ 'Oppo', 'A74' ], 'CPH2207' => [ 'Oppo', 'Find X3 Neo' ], 'CPH2211' => [ 'Oppo', 'A94' ], 'CPH2219' => [ 'Oppo', 'A74' ], + 'CPH2247' => [ 'Oppo', 'Reno 6 Pro' ], 'CPH2251' => [ 'Oppo', 'Reno 6' ], 'CPH2269' => [ 'Oppo', 'A16' ], 'CPH2273' => [ 'Oppo', 'A54s' ], + 'CPH2307' => [ 'Oppo', 'Find X5' ], + 'CPH2371' => [ 'Oppo', 'Reno 7' ], 'Find 5' => [ 'Oppo', 'Find 5' ], 'X903' => [ 'Oppo', 'Find Me X903' ], 'X903S' => [ 'Oppo', 'Find X903S' ], @@ -13309,7 +13400,9 @@ 'SM-A[0-9]{3,3}!!' => [ 'SM-A015!' => [ 'Samsung', 'Galaxy A01' ], + 'SM-A022!' => [ 'Samsung', 'Galaxy A02' ], 'SM-A025!' => [ 'Samsung', 'Galaxy A02s' ], + 'SM-A037!' => [ 'Samsung', 'Galaxy A03s' ], 'SM-A102!' => [ 'Samsung', 'Galaxy A10e' ], 'SM-A105!' => [ 'Samsung', 'Galaxy A10' ], 'SM-A107!' => [ 'Samsung', 'Galaxy A10s' ], @@ -13322,6 +13415,8 @@ 'SM-A207!' => [ 'Samsung', 'Galaxy A20s' ], 'SM-A215!' => [ 'Samsung', 'Galaxy A21' ], 'SM-A217!' => [ 'Samsung', 'Galaxy A21s' ], + 'SM-A225!' => [ 'Samsung', 'Galaxy A22' ], + 'SM-A226!' => [ 'Samsung', 'Galaxy A22 5G' ], 'SM-A260!' => [ 'Samsung', 'Galaxy A2 Core' ], 'SM-A300!' => [ 'Samsung', 'Galaxy A3' ], 'SM-A305!' => [ 'Samsung', 'Galaxy A30' ], @@ -13348,6 +13443,7 @@ 'SM-A526!' => [ 'Samsung', 'Galaxy A52 5G' ], 'SM-A528!' => [ 'Samsung', 'Galaxy A52s 5G' ], 'SM-A530!' => [ 'Samsung', 'Galaxy A8 (2018)' ], + 'SM-A536!' => [ 'Samsung', 'Galaxy A53' ], 'SM-A600!' => [ 'Samsung', 'Galaxy A6 (2018)' ], 'SM-A6050!' => [ 'Samsung', 'Galaxy A9 Star Lite' ], 'SM-A605!' => [ 'Samsung', 'Galaxy A6+ (2018)' ], @@ -13366,6 +13462,7 @@ 'SM-A810!' => [ 'Samsung', 'Galaxy A8 (2016)' ], 'SM-A850!' => [ 'Samsung', 'Galaxy Alpha' ], 'SM-A900!' => [ 'Samsung', 'Galaxy A9 (2016)' ], + 'SM-A908!' => [ 'Samsung', 'Galaxy A90 5G' ], 'SM-A910!' => [ 'Samsung', 'Galaxy A9 Pro' ], 'SM-A920!' => [ 'Samsung', 'Galaxy A9 (2018)' ], ], @@ -13393,6 +13490,7 @@ 'SM-F900!' => [ 'Samsung', 'Galaxy Fold' ], 'SM-F910!' => [ 'Samsung', 'Galaxy Z Fold2' ], 'SM-F916!' => [ 'Samsung', 'Galaxy Z Fold2 5G' ], + 'SM-F926!' => [ 'Samsung', 'Galaxy Z Fold3 5G' ], ], 'SM-G[0-9]{3,3}!!' => [ @@ -13435,11 +13533,13 @@ 'SM-G388!' => [ 'Samsung', 'Galaxy Xcover 3' ], 'SM-G389!' => [ 'Samsung', 'Galaxy Xcover 3 VE' ], 'SM-G390!' => [ 'Samsung', 'Galaxy Xcover 4' ], + 'SM-G398!' => [ 'Samsung', 'Galaxy Xcover 4s' ], 'SM-G420!' => [ 'Samsung', 'SM-G420' ], // Unknown 'SM-G430!' => [ 'Samsung', 'SM-G430' ], // Unknown 'SM-G480!' => [ 'Samsung', 'Galaxy S8' ], 'SM-G485!' => [ 'Samsung', 'Galaxy S8+' ], 'SM-G510!' => [ 'Samsung', 'Galaxy Core Max' ], + 'SM-G525!' => [ 'Samsung', 'Galaxy Xcover 5' ], 'SM-G530!' => [ 'Samsung', 'Galaxy Grand Prime' ], 'SM-G531!' => [ 'Samsung', 'Galaxy Grand Prime VE' ], 'SM-G532!' => [ 'Samsung', 'Galaxy Grand Prime+' ], @@ -13545,13 +13645,18 @@ 'SM-M[0-9]{3,4}!!' => [ 'SM-M105!' => [ 'Samsung', 'Galaxy M10' ], 'SM-M205!' => [ 'Samsung', 'Galaxy M20' ], + 'SM-M215!' => [ 'Samsung', 'Galaxy M21' ], + 'SM-M225!' => [ 'Samsung', 'Galaxy M22' ], 'SM-M305!' => [ 'Samsung', 'Galaxy M30' ], 'SM-M315!' => [ 'Samsung', 'Galaxy M31' ], + 'SM-M515!' => [ 'Samsung', 'Galaxy M51' ], + 'SM-M526!' => [ 'Samsung', 'Galaxy M52' ], ], 'SM-N[0-9]{3,4}!!' => [ 'SM-N750[025789][QV]?!' => [ 'Samsung', 'Galaxy Note 3 Neo' ], 'SM-N750[LS]?!' => [ 'Samsung', 'Galaxy Note 3 Neo' ], + 'SM-N770!' => [ 'Samsung', 'Galaxy Note 10 Lite' ], 'SM-N8000' => [ 'Samsung', 'Galaxy Note 800', DeviceType::TABLET ], 'SM-N900[0256789]?!' => [ 'Samsung', 'Galaxy Note 3' ], 'SM-N900!' => [ 'Samsung', 'Galaxy Note 3' ], @@ -13566,6 +13671,7 @@ 'SM-N970!' => [ 'Samsung', 'Galaxy Note 10' ], 'SM-N975!' => [ 'Samsung', 'Galaxy Note 10+' ], 'SM-N976!' => [ 'Samsung', 'Galaxy Note 10+ 5G' ], + 'SM-N980!' => [ 'Samsung', 'Galaxy Note 20' ], 'SM-N981!' => [ 'Samsung', 'Galaxy Note 20 5G' ], 'SM-N986!' => [ 'Samsung', 'Galaxy Note 20 Ultra 5G' ], ], @@ -13575,7 +13681,7 @@ 'SM-P55[015]!' => [ 'Samsung', 'Galaxy Tab A Plus 9.7', DeviceType::TABLET ], 'SM-P58[058]!' => [ 'Samsung', 'Galaxy Tab A 10.1 with S Pen (2016)', DeviceType::TABLET ], 'SM-P60[01257]!' => [ 'Samsung', 'Galaxy Note 10.1 (2014)', DeviceType::TABLET ], - 'SM-P61[0]!' => [ 'Samsung', 'Galaxy Tab S6 Lite', DeviceType::TABLET ], + 'SM-P61[05]!' => [ 'Samsung', 'Galaxy Tab S6 Lite', DeviceType::TABLET ], 'SM-P90[01257]!' => [ 'Samsung', 'Galaxy Note Pro', DeviceType::TABLET ], ], @@ -13600,6 +13706,7 @@ 'SM-S902L' => [ 'Samsung', 'Galaxy S5' ], 'SM-S903VL' => [ 'Samsung', 'Galaxy S5' ], 'SM-S906L' => [ 'Samsung', 'Galaxy S6' ], + 'SM-S906B' => [ 'Samsung', 'Galaxy S22+' ], 'SM-S907VL' => [ 'Samsung', 'Galaxy S6' ], 'SM-S908B' => [ 'Samsung', 'Galaxy S22 Ultra' ], 'SM-S920L' => [ 'Samsung', 'Galaxy Grand Prime' ], @@ -13612,11 +13719,12 @@ 'SM-T11[36]!' => [ 'Samsung', 'Galaxy Tab 3V 7.0', DeviceType::TABLET ], 'SM-T2105' => [ 'Samsung', 'Galaxy Tab 3 Kids', DeviceType::TABLET ], 'SM-T21[01257]!' => [ 'Samsung', 'Galaxy Tab 3 7.0', DeviceType::TABLET ], + 'SM-T220!' => [ 'Samsung', 'Galaxy Tab A7 Lite', DeviceType::TABLET ], 'SM-T2519' => [ 'Samsung', 'Galaxy Tab Q' ], 'SM-T255[68S]!' => [ 'Samsung', 'Galaxy Tab Q' ], 'SM-T23[012579]!' => [ 'Samsung', 'Galaxy Tab 4 7.0', DeviceType::TABLET ], 'SM-T28[057]!' => [ 'Samsung', 'Galaxy Tab A 7.0', DeviceType::TABLET ], - 'SM-T29[0]!' => [ 'Samsung', 'Galaxy Tab A 8.0 (2019)', DeviceType::TABLET ], + 'SM-T29[05]!' => [ 'Samsung', 'Galaxy Tab A 8.0 (2019)', DeviceType::TABLET ], 'SM-T30[7]!' => [ 'Samsung', 'Galaxy Tab A 8.4 (2020)', DeviceType::TABLET ], 'SM-T31[0125]!' => [ 'Samsung', 'Galaxy Tab 3 8.0', DeviceType::TABLET ], 'SM-T32[0125]!' => [ 'Samsung', 'Galaxy Tab Pro 8.4', DeviceType::TABLET ], @@ -13662,6 +13770,8 @@ ], 'SM-X200' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], + 'SM-X205' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], + 'SM-X900' => [ 'Samsung', 'Galaxy Tab S8 Ultra', DeviceType::TABLET ], 'SM-V700' => [ 'Samsung', 'Galaxy Gear', DeviceType::WATCH ], @@ -14000,6 +14110,7 @@ 'DM-01H' => [ 'Sharp', 'DM-01H', 'carrier' => 'Disney Mobile' ], 'DM-01J' => [ 'Sharp', 'DM-01J', 'carrier' => 'Disney Mobile' ], + 'SH-C02' => [ 'Sharp', 'AQUOS V SH-C02' ], 'SH-M01' => [ 'Sharp', 'AQUOS SH-M01' ], 'SH-M02' => [ 'Sharp', 'AQUOS SH-M02' ], 'SH-M02-EVA20' => [ 'Sharp', 'AQUOS SH-M02' ], @@ -14375,22 +14486,33 @@ 'H83(14|24)!' => [ 'Sony', 'Xperia XZ2 Compact' ], 'H84(16)!' => [ 'Sony', 'Xperia XZ3' ], 'H84(41)!' => [ 'Sony', 'Xperia XZ1 Compact' ], + 'H94(36|93)!' => [ 'Sony', 'Xperia XZ3' ], ], 'I[0-9]{4,4}!!' => [ 'I31(13|23)!' => [ 'Sony', 'Xperia 10' ], 'I32(13|23)!' => [ 'Sony', 'Xperia 10 Plus' ], + 'I33(12)!' => [ 'Sony', 'Xperia L3' ], 'I41(13|93)!' => [ 'Sony', 'Xperia 10' ], 'I42(13|93)!' => [ 'Sony', 'Xperia 10 Plus' ], + 'I43(12|32)!' => [ 'Sony', 'Xperia L3' ], ], 'J[0-9]{4,4}!!' => [ + 'J81(10|70)!' => [ 'Sony', 'Xperia 1' ], 'J82(10|70)!' => [ 'Sony', 'Xperia 5' ], + 'J91(10)!' => [ 'Sony', 'Xperia 1' ], 'J92(10|60)!' => [ 'Sony', 'Xperia 5' ], ], + 'XQ-AT51' => [ 'Sony', 'Xperia 1 II' ], + 'XQ-BC52' => [ 'Sony', 'Xperia 1 III' ], 'XQ-AS52' => [ 'Sony', 'Xperia 5 II' ], 'XQ-AU52' => [ 'Sony', 'Xperia 10 II' ], + 'XQ-BT52' => [ 'Sony', 'Xperia 10 III' ], + 'XQ-AD52' => [ 'Sony', 'Xperia L4' ], + 'XQ-BE52' => [ 'Sony', 'Xperia Pro-I' ], + 'E[0-9]{2,2}[a-z]!!' => [ 'E10(a|i|iv)!' => [ 'Sony Ericsson', 'Xperia X10 Mini' ], // Robyn @@ -15918,6 +16040,7 @@ ], 'A6S' => [ 'TWM', 'Amazing A6S' ], + 'Armor 9' => [ 'Ulefone', 'Armor 9' ], 'Be Touch 2' => [ 'Ulefone', 'Be Touch 2' ], 'Ulefone Be Touch2' => [ 'Ulefone', 'Be Touch 2' ], 'Note 9P' => [ 'Ulefone', 'Note 9P' ], @@ -15952,6 +16075,8 @@ 'UMI ZERO' => [ 'UMI', 'Zero' ], ], + 'A11 Pro Max' => [ 'UMI', 'A11 Pro Max' ], + 'BISON GT' => [ 'UMI', 'Bison GT' ], 'eMAX mini' => [ 'UMI', 'eMax mini' ], 'Plus E' => [ 'UMI', 'Plus E' ], 'Jelly2' => [ 'Unihertz', 'Jelly 2' ], @@ -16750,6 +16875,7 @@ 'SUBLIM' => [ 'Wiko', 'Sublim' ], 'SUNSET' => [ 'Wiko', 'Sunset' ], 'SUNSET2' => [ 'Wiko', 'Sunset 2' ], + 'View2 Go' => [ 'Wiko', 'View2 Go' ], 'WAX' => [ 'Wiko', 'Wax' ], 'Wileyfox Spark' => [ 'Wileyfox', 'Spark' ], 'Wileyfox Spark +' => [ 'Wileyfox', 'Spark +' ], @@ -16954,9 +17080,13 @@ 'MI 8 UD' => [ 'Xiaomi', 'Mi 8 UD' ], 'MI 8 Lite' => [ 'Xiaomi', 'Mi 8 Lite' ], 'MI 9' => [ 'Xiaomi', 'Mi 9' ], + 'Mi 9 Lite' => [ 'Xiaomi', 'Mi 9 Lite' ], + 'Mi9 Pro 5G' => [ 'Xiaomi', 'Mi 9 Pro' ], + 'Mi 9 SE' => [ 'Xiaomi', 'Mi 9 SE' ], 'Mi 9T' => [ 'Xiaomi', 'Mi 9T' ], 'Mi 9T Pro' => [ 'Xiaomi', 'Mi 9T Pro' ], - 'Mi9 Pro 5G' => [ 'Xiaomi', 'Mi 9 Pro' ], + 'Mi 10' => [ 'Xiaomi', 'Mi 10' ], + 'Mi Note 10' => [ 'Xiaomi', 'Mi Note 10' ], 'Mi Note 10 Lite' => [ 'Xiaomi', 'Mi Note 10 Lite' ], '(Xiaomi|Xiaomi Mi|MI) Note!!' => [ @@ -17029,6 +17159,8 @@ '(Xiaomi )?Redmi[ \-]Note 8$!' => [ 'Xiaomi', 'Redmi Note 8' ], '(Xiaomi )?Redmi[ \-]Note 8 Pro!' => [ 'Xiaomi', 'Redmi Note 8 Pro' ], '(Xiaomi )?Redmi[ \-]Note 8T!' => [ 'Xiaomi', 'Redmi Note 8T' ], + '(Xiaomi )?Redmi[ \-]Note 9S!' => [ 'Xiaomi', 'Redmi Note 9S' ], + '(Xiaomi )?Redmi[ \-]Note 9 Pro!' => [ 'Xiaomi', 'Redmi Note 9 Pro' ], ], '(Xiaomi |HM)?20!!' => [ @@ -17051,17 +17183,31 @@ '(Xiaomi |HM)?20160(51)!' => [ 'Xiaomi', 'Redmi Note 4' ], ], + '2107113SG' => [ 'Xiaomi', 'Mi 11T Pro' ], + '21081111RG' => [ 'Xiaomi', 'Mi 11T' ], + 'M2002J9G' => [ 'Xiaomi', 'Mi 10 Lite' ], + 'M2003J15SC' => [ 'Xiaomi', 'Redmi Note 9' ], + 'M2004J19C' => [ 'Xiaomi', 'Redmi 9' ], + 'M2006C3LG' => [ 'Xiaomi', 'Redmi 9A' ], + 'M2006C3MG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2007J17G' => [ 'Xiaomi', 'Mi 10T Lite' ], 'M2007J20CG' => [ 'Xiaomi', 'Poco X3' ], + 'M2007J22G' => [ 'Xiaomi', 'Redmi Note 9T' ], + 'M2007J3SG' => [ 'Xiaomi', 'Mi 10T Pro' ], + 'M2007J3SY' => [ 'Xiaomi', 'Mi 10T' ], + 'M2010J19CG' => [ 'Xiaomi', 'Poco M3' ], 'M2010J19SY' => [ 'Xiaomi', 'Redmi 9T' ], + 'M2011K2G' => [ 'Xiaomi', 'Mi 11' ], 'M2012K11AG' => [ 'Xiaomi', 'Poco F3' ], 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], 'M2101K7AG' => [ 'Xiaomi', 'Redmi Note 10' ], 'M2101K7BNY' => [ 'Xiaomi', 'Redmi Note 10s' ], + 'M2101K9AG' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2101K9G' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2102J20SG' => [ 'Xiaomi', 'Poco X3 Pro' ], + 'M2103K19G' => [ 'Xiaomi', 'Redmi Note 10' ], '(Xiaomi |HM)?21!!' => [ '(Xiaomi |HM)?21091(19)!' => [ 'Xiaomi', 'Mi 11 Lite' ], @@ -17074,6 +17220,7 @@ 'Xiaomi MCT1!' => [ 'Xiaomi', 'Mi 6' ], 'Xiaomi MAT136!' => [ 'Xiaomi', 'Redmi 4X' ], 'Xiaomi MBT6A5!' => [ 'Xiaomi', 'Redmi Note 4X' ], + 'Xiaomi 11T Pro' => [ 'Xiaomi', '11T Pro' ], 'aqua' => [ 'Xiaomi', 'Mi 4s' ], 'capricorn' => [ 'Xiaomi', 'Mi 5s' ], @@ -17676,6 +17823,7 @@ 'NX569H' => [ 'ZTE', 'Nubia Z17 Mini' ], 'NX513J' => [ 'ZTE', 'Nubia My Prague' ], 'NX601J' => [ 'ZTE', 'Nubia X6' ], + 'NX669J' => [ 'ZTE', 'Nubia Red Magic 6' ], ], 'ZTE K813' => [ 'ZTE', 'K813' ], @@ -18985,7 +19133,16 @@ 'Z4 mini' => [ 'Q-Mobile', 'Noir Quatro Z4 mini' ], + 'RMX1993' => [ 'Realme', 'X2' ], + 'RMX2002' => [ 'Realme', '6i' ], + 'RMX2170' => [ 'Realme', '7 Pro' ], + 'RMX2202' => [ 'Realme', 'GT' ], + 'RMX3081' => [ 'Realme', '8 Pro' ], + 'RMX3085' => [ 'Realme', '8' ], + 'RMX3241' => [ 'Realme', '8 5G' ], 'RMX3242' => [ 'Realme', 'Narzo 30' ], + 'RMX3301' => [ 'Realme', 'GT 2 Pro' ], + 'RMX3311' => [ 'Realme', 'GT 2' ], 'RMX3363' => [ 'Realme', 'GT Master' ], 'Soshphone 4G' => [ 'SoshPhone', '4G' ], From 8cb6ffb993f9a7af5673a7e0ac6cf18c42e3e79f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Mon, 11 Apr 2022 23:25:40 +0200 Subject: [PATCH 518/540] Add new style Android user agent string --- src/Analyser/Header/Useragent/Os.php | 4 ++++ tests/data/mobile/os-android.yaml | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 0e432c917..efaf8b523 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -260,6 +260,10 @@ private function detectAndroid($ua) if (preg_match('/;\+? ?(?:\*\*)?([^;]*[^;\s]);?\s+(?:BUILD|Build|build)/u', $ua, $match)) { $candidates[] = $match[1]; } + } elseif (preg_match('/\(Linux; Android [0-9\.]+; ([^\/]+)\) AppleWebKit/u', $ua, $match)) { + /* New style minimal Android useragent string */ + + $candidates[] = $match[1]; } elseif (preg_match('/Release\//ui', $ua)) { /* WAP style useragent strings */ diff --git a/tests/data/mobile/os-android.yaml b/tests/data/mobile/os-android.yaml index df37b0b20..cdc5b9fd0 100644 --- a/tests/data/mobile/os-android.yaml +++ b/tests/data/mobile/os-android.yaml @@ -346,3 +346,23 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; U; Android 9; th; vivo 1915) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Tenta/3.1.6 Build/2162 Safari/537.36' readable: 'Tenta Browser 3.1.6 on a vivo 1915 running Android 9' result: { browser: { name: 'Tenta Browser', family: { name: Chrome, version: 64 }, version: 3.1.6, type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart, model: 'vivo 1915' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 11; moto g(60)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Mobile Safari/537.36' + readable: 'Chrome 100 on a Motorola Moto G60 running Android 11' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '11' }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: 'Moto G60' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 11; moto g(60)s) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Mobile Safari/537.36' + readable: 'Chrome 100 on a Motorola Moto G60s running Android 11' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '11' }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: 'Moto G60s' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Mobile Safari/537.36' + readable: 'Chrome 100 on a Google Pixel 4a 5G running Android 11' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '11' }, device: { type: mobile, subtype: smart, manufacturer: Google, model: 'Pixel 4a 5G' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; moto e(6i) Build/QOHS30.280-7-9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.88 Mobile Safari/537.36' + readable: 'Chrome 99 on a Motorola Moto E6i running Android 10' + result: { browser: { name: Chrome, version: '99', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: 'Moto E6i' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 11; moto g(9) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Mobile Safari/537.36' + readable: 'Chrome 100 on a Motorola Moto G9 Play running Android 11' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '11' }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: 'Moto G9 Play' } } From c6cac789b72ad939a4a545017728f8ac5ca0372a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 10:37:16 +0200 Subject: [PATCH 519/540] Another Android model database update --- data/indices/models-android.php | 1392 +++++++++++++++++-------------- data/models-android.php | 187 ++++- 2 files changed, 937 insertions(+), 642 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 7fd23cb25..312deec46 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -129,9 +129,18 @@ ), '@21' => array ( - 0 => '2107113SG', - 1 => '21081111RG', - 2 => '(Xiaomi |HM)?21!!', + 0 => '21061119DG', + 1 => '2107113SG', + 2 => '21081111RG', + 3 => '21091116AG', + 4 => '(Xiaomi |HM)?21!!', + 5 => '21051182G', + ), + '@22' => + array ( + 0 => '2201122G', + 1 => '2201123G', + 2 => '2201116PG', ), '@2P' => array ( @@ -202,66 +211,68 @@ ), '@50' => array ( - 0 => '5002[H]!', - 1 => '5010[DEGSUX]!', - 2 => '5011[A]!', - 3 => '5012[G]!', - 4 => '5015[ADEX]!', - 5 => '5016[AJ]!', - 6 => '5017[B]!', - 7 => '5017[ADEOX]!', - 8 => '5019[D]!', - 9 => '5020[A]!', - 10 => '5022[DEX]!', - 11 => '5023[F]!', - 12 => '5024[D]!', - 13 => '5025[DEGX]!', - 14 => '5027[B]!', - 15 => '5030[F]!', - 16 => '5033[ADJOX]!', - 17 => '5034[D]!', - 18 => '5036[D]!', - 19 => '5038[ADEX]!', - 20 => '5039[D]!', - 21 => '5041[C]!', - 22 => '5042[ADEFGTWXY]!', - 23 => '5044[ADGIOSTY]!', - 24 => '5045[ADFGJTXY]!', - 25 => '5046[DGIJUY]!', - 26 => '5047[DIUY]!', - 27 => '5049[EGSWZ]!', - 28 => '5050[ASYX]!', - 29 => '5051[ADJMX]!', - 30 => '5052[DY]!', - 31 => '5053[D]!', - 32 => '5054[ADOSTX]!', - 33 => '5054[NW]!', - 34 => '5056[ADEINUWX]!', - 35 => '5056[O]!', - 36 => '5057[M]!', - 37 => '5058[I]!', - 38 => '5059[ADJTXY]!', - 39 => '5060[D]!', - 40 => '5061[U]!', - 41 => '5065[ADJNWX]!', - 42 => '5070[DJX]!', - 43 => '5080[A]!', - 44 => '5080[DFQX]!', - 45 => '5085[CDJNOYX]!', - 46 => '5086[ADY]!', - 47 => '5090[Y]!', - 48 => '5095[BIKY]!', - 49 => '5096[AI]!', - 50 => '5098[OS]!', - 51 => '5099[ADY]!', - 52 => '504Q', - 53 => '504Q+', - 54 => '504QP', - 55 => '501LV', - 56 => '(48|50|55)AX600C!', - 57 => '5080C Pro', - 58 => '50[0-9]SO!!', - 59 => '502ZT', + 0 => '5002[DH]!', + 1 => '5003[D]!', + 2 => '5010[DEGSUX]!', + 3 => '5011[A]!', + 4 => '5012[G]!', + 5 => '5015[ADEX]!', + 6 => '5016[AJ]!', + 7 => '5017[B]!', + 8 => '5017[ADEOX]!', + 9 => '5019[D]!', + 10 => '5020[A]!', + 11 => '5022[DEX]!', + 12 => '5023[F]!', + 13 => '5024[DF]!', + 14 => '5025[DEGX]!', + 15 => '5027[B]!', + 16 => '5030[DF]!', + 17 => '5033[ADJOX]!', + 18 => '5034[D]!', + 19 => '5036[D]!', + 20 => '5038[ADEX]!', + 21 => '5039[D]!', + 22 => '5041[C]!', + 23 => '5042[ADEFGTWXY]!', + 24 => '5044[ADGIOSTY]!', + 25 => '5045[ADFGJTXY]!', + 26 => '5046[DGIJUY]!', + 27 => '5047[DIUY]!', + 28 => '5048[Y]!', + 29 => '5049[EGSWZ]!', + 30 => '5050[ASYX]!', + 31 => '5051[ADJMX]!', + 32 => '5052[DY]!', + 33 => '5053[DK]!', + 34 => '5054[ADOSTX]!', + 35 => '5054[NW]!', + 36 => '5056[ADEINUWX]!', + 37 => '5056[O]!', + 38 => '5057[M]!', + 39 => '5058[I]!', + 40 => '5059[ADJTXY]!', + 41 => '5060[D]!', + 42 => '5061[KU]!', + 43 => '5065[ADJNWX]!', + 44 => '5070[DJX]!', + 45 => '5080[A]!', + 46 => '5080[DFQX]!', + 47 => '5085[CDJNOYX]!', + 48 => '5086[ADY]!', + 49 => '5090[Y]!', + 50 => '5095[BIKY]!', + 51 => '5096[AI]!', + 52 => '5098[OS]!', + 53 => '5099[ADY]!', + 54 => '504Q', + 55 => '504Q+', + 56 => '504QP', + 57 => '501LV', + 58 => '(48|50|55)AX600C!', + 59 => '5080C Pro', + 60 => '50[0-9]SO!!', + 61 => '502ZT', ), '@55' => array ( @@ -296,14 +307,15 @@ 9 => '6045[BFGIKOXY]!', 10 => '6050[AFWY]!', 11 => '6055[ABDHIKPUY]!', - 12 => '6058[D]!', - 13 => '6060[S]!', - 14 => '6062[W]!', - 15 => '6070[KOY]!', - 16 => '602LV', - 17 => '60[0-9]SO!!', - 18 => '602ZT', - 19 => '6034R ORANGE Niva', + 12 => '6056[D]!', + 13 => '6058[D]!', + 14 => '6060[S]!', + 15 => '6062[W]!', + 16 => '6070[KOY]!', + 17 => '602LV', + 18 => '60[0-9]SO!!', + 19 => '602ZT', + 20 => '6034R ORANGE Niva', ), '@66' => array ( @@ -619,10 +631,11 @@ 7 => 'AC45NE', 8 => 'ACM3066-8', 9 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', - 10 => 'AC2003', - 11 => 'ACT2000', - 12 => 'ACU Volvo', - 13 => 'Acqua', + 10 => 'AC2001', + 11 => 'AC2003', + 12 => 'ACT2000', + 13 => 'ACU Volvo', + 14 => 'Acqua', ), '@AD' => array ( @@ -777,7 +790,7 @@ 34 => 'Allwinner A10', 35 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 36 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 37 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 37 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 38 => 'Alfa A93 POP', 39 => 'Alfa L', 40 => 'Ally', @@ -814,7 +827,8 @@ 25 => 'AMD120', 26 => '(Amaze|Hitech)!!', 27 => 'Amaze 4G', - 28 => '(Amazing|Fantastic)!!', + 28 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 29 => '(Amazing|Fantastic)!!', ), '@AN' => array ( @@ -862,7 +876,7 @@ 41 => 'AN10G2-LZ', 42 => 'AN10BG3-LZ', 43 => 'AN7DG3C', - 44 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 44 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 45 => '(iBall )?Andi!!', 46 => 'AND1', 47 => 'AND1E', @@ -958,12 +972,18 @@ 25 => 'arrowsM03', 26 => 'ARIES 101', 27 => 'ARIES 785', - 28 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 28 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 29 => 'ARA YS608', 30 => 'Arctic450', 31 => 'Arc', 32 => 'Arc S', - 33 => 'Armor 9', + 33 => 'Armor 7', + 34 => 'Armor 8', + 35 => 'Armor 9', + 36 => 'Armor 9E', + 37 => 'Armor 11T 5G', + 38 => 'Armor X5', + 39 => 'Armor X8', ), '@AS' => array ( @@ -1011,7 +1031,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1211,7 +1231,7 @@ '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1225,7 +1245,7 @@ 7 => 'Blaze S180', 8 => 'BLADE LE 70', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 11 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 12 => '(BLF-)?lephone!!', 13 => 'Blackphone 2', @@ -1251,7 +1271,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1353,13 +1373,19 @@ ), '@BV' => array ( - 0 => 'BV8000Pro', - 1 => 'BV9100', - 2 => 'BV9600E', + 0 => 'BV4900Pro', + 1 => 'BV5900', + 2 => 'BV6300Pro', + 3 => 'BV8000Pro', + 4 => 'BV9100', + 5 => 'BV9500', + 6 => 'BV9600E', + 7 => 'BV9900Pro', ), '@C2' => array ( - 0 => 'C2', + 0 => 'C21 Pro', + 1 => 'C2', ), '@C5' => array ( @@ -1398,23 +1424,24 @@ array ( 0 => 'Cardhu', 1 => 'CA907AAC0G', - 2 => 'Camangi-Mangrove7', - 3 => 'CAPTIVA!!', - 4 => 'Carpad T5', - 5 => 'Carpad T61 2g', - 6 => 'CAL21', - 7 => 'CA201SP', - 8 => 'CA-201L', - 9 => 'Casper VIA!!', - 10 => 'CAT!!', - 11 => 'Candy TV', - 12 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 13 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', - 14 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', - 15 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', - 16 => 'calgary', - 17 => 'Captivate-I897', - 18 => 'capricorn', + 2 => 'Carbon 1 Mark II', + 3 => 'Camangi-Mangrove7', + 4 => 'CAPTIVA!!', + 5 => 'Carpad T5', + 6 => 'Carpad T61 2g', + 7 => 'CAL21', + 8 => 'CA201SP', + 9 => 'CA-201L', + 10 => 'Casper VIA!!', + 11 => 'CAT!!', + 12 => 'Candy TV', + 13 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 15 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', + 16 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', + 17 => 'calgary', + 18 => 'Captivate-I897', + 19 => 'capricorn', ), '@CC' => array ( @@ -1443,7 +1470,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1478,7 +1505,7 @@ 4 => 'Clanga SE 097-1008', 5 => 'CLP281X', 6 => 'Click', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => '(Intex )?Cloud!!', 9 => 'CLIQ', 10 => 'CLIQ XT', @@ -1517,7 +1544,7 @@ 15 => 'Connect-2G-2.0', 16 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 17 => 'Coquettish Red', - 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 19 => 'Comet', 20 => 'Corvair', 21 => 'COOLPIX S800c', @@ -1551,49 +1578,57 @@ 22 => 'CPH1859', 23 => 'CPH1881', 24 => 'CPH1823', - 25 => 'CPH1837', - 26 => 'CPH1877', - 27 => 'CPH1893', - 28 => 'CPH1907', - 29 => 'CPH1911', - 30 => 'CPH1917', - 31 => 'CPH1919', - 32 => 'CPH1931', - 33 => 'CPH1951', - 34 => 'CPH1969', - 35 => 'CPH2005', - 36 => 'CPH2009', - 37 => 'CPH2021', - 38 => 'CPH2023', - 39 => 'CPH2025', - 40 => 'CPH2043', - 41 => 'CPH2065', - 42 => 'CPH2067', - 43 => 'CPH2069', - 44 => 'CPH2089', - 45 => 'CPH2091', - 46 => 'CPH2127', - 47 => 'CPH2135', - 48 => 'CPH2145', - 49 => 'CPH2161', - 50 => 'CPH2173', - 51 => 'CPH2185', - 52 => 'CPH2195', - 53 => 'CPH2197', - 54 => 'CPH2207', - 55 => 'CPH2211', - 56 => 'CPH2219', - 57 => 'CPH2247', - 58 => 'CPH2251', - 59 => 'CPH2269', - 60 => 'CPH2273', - 61 => 'CPH2307', - 62 => 'CPH2371', - 63 => 'CPH1721', - 64 => 'CPH1611', - 65 => 'CPH1879', - 66 => 'CPH1861', - 67 => 'CPH1979', + 25 => 'CPH1831', + 26 => 'CPH1837', + 27 => 'CPH1871', + 28 => 'CPH1875', + 29 => 'CPH1877', + 30 => 'CPH1893', + 31 => 'CPH1903', + 32 => 'CPH1907', + 33 => 'CPH1911', + 34 => 'CPH1917', + 35 => 'CPH1919', + 36 => 'CPH1931', + 37 => 'CPH1951', + 38 => 'CPH1969', + 39 => 'CPH2005', + 40 => 'CPH2009', + 41 => 'CPH2021', + 42 => 'CPH2023', + 43 => 'CPH2025', + 44 => 'CPH2043', + 45 => 'CPH2065', + 46 => 'CPH2067', + 47 => 'CPH2069', + 48 => 'CPH2083', + 49 => 'CPH2089', + 50 => 'CPH2091', + 51 => 'CPH2127', + 52 => 'CPH2135', + 53 => 'CPH2145', + 54 => 'CPH2161', + 55 => 'CPH2173', + 56 => 'CPH2185', + 57 => 'CPH2195', + 58 => 'CPH2197', + 59 => 'CPH2205', + 60 => 'CPH2207', + 61 => 'CPH2211', + 62 => 'CPH2219', + 63 => 'CPH2247', + 64 => 'CPH2251', + 65 => 'CPH2269', + 66 => 'CPH2271', + 67 => 'CPH2273', + 68 => 'CPH2305', + 69 => 'CPH2307', + 70 => 'CPH2371', + 71 => 'CPH1721', + 72 => 'CPH1611', + 73 => 'CPH1879', + 74 => 'CPH1861', + 75 => 'CPH1979', ), '@CR' => array ( @@ -1602,7 +1637,7 @@ 2 => 'Cross!!', 3 => 'Crosscall!!', 4 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 5 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 5 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 6 => 'CRONO 22', 7 => 'Crescent', ), @@ -1635,7 +1670,7 @@ 0 => 'CUBOT!!', 1 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', 2 => 'CUBE!!', - 3 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', ), '@CW' => array ( @@ -1674,7 +1709,7 @@ '@D2' => array ( 0 => 'D2-[0-9]{3,3}!!', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@D5' => array ( @@ -1707,7 +1742,7 @@ 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 2 => 'Dakele A380', 3 => 'DAKELE MC001', - 4 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 5 => 'DATAM803HC', 6 => 'DATAM805HC', 7 => 'DATAM819HD!', @@ -1790,7 +1825,7 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', ), '@DM' => @@ -1813,7 +1848,8 @@ 2 => 'DNS S!!', 3 => 'DNSS4003', 4 => 'DNS4502M', - 5 => 'DN2103', + 5 => 'DN2101', + 6 => 'DN2103', ), '@DO' => array ( @@ -1886,8 +1922,8 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 1 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', ), '@DW' => array ( @@ -1925,8 +1961,10 @@ 0 => 'E1 v360', 1 => 'E170BS', 2 => 'E1031', - 3 => 'e1808 v75!', - 4 => 'e1109 v73!', + 3 => 'E1050X', + 4 => 'E1060X', + 5 => 'e1808 v75!', + 6 => 'e1109 v73!', ), '@E2' => array ( @@ -2013,7 +2051,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -2049,7 +2087,7 @@ 4 => 'ELIFE-E3', 5 => 'Elife E5', 6 => 'ElifeE6', - 7 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => 'Elektra L', 9 => 'Elektra XL', 10 => 'Electrify', @@ -2080,7 +2118,7 @@ 0 => 'EMBT3C', 1 => 'EM63', 2 => 'EM01F', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => 'eMAX mini', 5 => 'EMR1879', ), @@ -2144,7 +2182,7 @@ 9 => 'EVO 4G', 10 => 'Evo V 4G', 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 12 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 12 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 13 => '(EV|KM)-[ES][0-9]{3,3}!!', 14 => 'Event', 15 => 'EVERY35', @@ -2223,7 +2261,7 @@ array ( 0 => 'FIH-FB0', 1 => 'FIH-!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Find 5', 4 => 'FIND7', ), @@ -2310,7 +2348,7 @@ '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2391,11 +2429,11 @@ ), '@G6' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G9' => array ( @@ -2576,7 +2614,8 @@ 11 => 'GM 6', 12 => 'GM 6 d', 13 => 'GM 8 d', - 14 => 'GM Discovery tab 8', + 14 => 'GM8 go', + 15 => 'GM Discovery tab 8', ), '@GN' => array ( @@ -2685,7 +2724,7 @@ array ( 0 => 'Grouper', 1 => 'GR-TB!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'greenridge', 4 => 'Graphos A10', 5 => '(ZTE )?(Grand|Mimosa)!!', @@ -2696,9 +2735,10 @@ 1 => '(Gsmart|Gigabyte|Rio)!!', 2 => 'GS110', 3 => 'GS190', - 4 => 'GS270 plus', - 5 => 'GS02', - 6 => 'GS03', + 4 => 'GS270', + 5 => 'GS270 plus', + 6 => 'GS02', + 7 => 'GS03', ), '@GT' => array ( @@ -2750,11 +2790,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2781,13 +2821,16 @@ 1 => '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!', 2 => 'Haier-W700', 3 => 'Haier-SY0880', - 4 => 'Hasee E50 S1', - 5 => 'Hasee H45 T2', - 6 => 'Hasee W50 T2', - 7 => 'Hasee-X50TS', - 8 => 'HannsComb', - 9 => 'Hannspadd', - 10 => 'Hayabusa', + 4 => 'Hammer Blade 3', + 5 => 'Hammer Energy 2', + 6 => 'Hammer Explorer', + 7 => 'Hasee E50 S1', + 8 => 'Hasee H45 T2', + 9 => 'Hasee W50 T2', + 10 => 'Hasee-X50TS', + 11 => 'HannsComb', + 12 => 'Hannspadd', + 13 => 'Hayabusa', ), '@HB' => array ( @@ -2800,7 +2843,7 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 4 => 'HD190[013]!', 5 => 'HD191[03]!', ), @@ -2838,7 +2881,7 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( @@ -2852,12 +2895,12 @@ ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2872,7 +2915,7 @@ ), '@HR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HS' => array ( @@ -2920,11 +2963,11 @@ 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 13 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', - 15 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 15 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 16 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 17 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 18 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', @@ -2950,10 +2993,10 @@ '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 3 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 4 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 5 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 6 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 7 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', @@ -2996,8 +3039,14 @@ ), '@I0' => array ( - 0 => 'I003DD', - 1 => 'I006D', + 0 => 'I01WDX', + 1 => 'I001DE', + 2 => 'I002D', + 3 => 'I003D', + 4 => 'I003DD', + 5 => 'I005D', + 6 => 'I005DA', + 7 => 'I006D', ), '@I1' => array ( @@ -3146,21 +3195,22 @@ 0 => 'IS11CA', 1 => 'ISW?[0-9]{2,2}F!!', 2 => 'ISW[0-9]{2,2}HT!!', - 3 => 'ISW11K', - 4 => 'IS11LG', - 5 => 'ISW11M', - 6 => 'IS12M', - 7 => 'IS11N', - 8 => 'IS06', - 9 => 'IS11PT', - 10 => 'IS703C', - 11 => 'IS801C', - 12 => 'ISW11SC', - 13 => 'IS0[0-9]!!', - 14 => 'ISW?1[0-9]SH!!', - 15 => 'IS[0-9]{2,2}S!!', - 16 => 'IS04', - 17 => 'IS11T', + 3 => 'IS530', + 4 => 'ISW11K', + 5 => 'IS11LG', + 6 => 'ISW11M', + 7 => 'IS12M', + 8 => 'IS11N', + 9 => 'IS06', + 10 => 'IS11PT', + 11 => 'IS703C', + 12 => 'IS801C', + 13 => 'ISW11SC', + 14 => 'IS0[0-9]!!', + 15 => 'ISW?1[0-9]SH!!', + 16 => 'IS[0-9]{2,2}S!!', + 17 => 'IS04', + 18 => 'IS11T', ), '@IT' => array ( @@ -3190,7 +3240,7 @@ ), '@JA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'Jaguar3', 2 => 'Jaguar7', ), @@ -3225,11 +3275,11 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@JO' => array ( @@ -3239,7 +3289,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3367,7 +3417,7 @@ array ( 0 => 'Kindle Fire', 1 => 'KINGKONG MINI2', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 4 => 'KIOTO 793', 5 => 'KITE', @@ -3379,7 +3429,7 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( @@ -3438,35 +3488,36 @@ '@LA' => array ( 0 => 'LA-!!', - 1 => '(Lanix )?(Ilium|llium)!!', - 2 => 'Lark!!', - 3 => 'LAVA iris 351', - 4 => 'LAVA iRIS 504q', - 5 => 'LAVA A1', - 6 => 'Lava A89', - 7 => 'LAVA R1', - 8 => 'LAVA R1s', - 9 => 'LAVA S12', - 10 => 'LAVA V5', - 11 => 'LAP250U', - 12 => 'LAP255U', - 13 => 'LaVieTab!!', - 14 => 'land', - 15 => 'LA-I Dual core', - 16 => 'LA-M3', - 17 => 'LA1-L', - 18 => 'LA2-E', - 19 => 'LA2-E1', - 20 => 'LA2-L', - 21 => 'LA2-T', - 22 => 'LA2-T1', - 23 => 'LA2-S', - 24 => 'LA2-SN', - 25 => 'LA2-W', - 26 => 'LA2-W1', - 27 => 'LA3-W', - 28 => 'LA3S', - 29 => 'LA5-W', + 1 => 'Land Rover Explore', + 2 => '(Lanix )?(Ilium|llium)!!', + 3 => 'Lark!!', + 4 => 'LAVA iris 351', + 5 => 'LAVA iRIS 504q', + 6 => 'LAVA A1', + 7 => 'Lava A89', + 8 => 'LAVA R1', + 9 => 'LAVA R1s', + 10 => 'LAVA S12', + 11 => 'LAVA V5', + 12 => 'LAP250U', + 13 => 'LAP255U', + 14 => 'LaVieTab!!', + 15 => 'land', + 16 => 'LA-I Dual core', + 17 => 'LA-M3', + 18 => 'LA1-L', + 19 => 'LA2-E', + 20 => 'LA2-E1', + 21 => 'LA2-L', + 22 => 'LA2-T', + 23 => 'LA2-T1', + 24 => 'LA2-S', + 25 => 'LA2-SN', + 26 => 'LA2-W', + 27 => 'LA2-W1', + 28 => 'LA3-W', + 29 => 'LA3S', + 30 => 'LA5-W', ), '@LC' => array ( @@ -3478,7 +3529,7 @@ ), '@LD' => array ( - 0 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 1 => 'LDK-ICK v1.4', ), '@LE' => @@ -3554,63 +3605,72 @@ 68 => 'Lenovo YT3-X50F', 69 => 'Lenovo YT3-X50L', 70 => 'Lenovo YT3-850F', - 71 => 'Lenovo YT-X703F', - 72 => 'Lenovo YT3-X90F', - 73 => 'Lenovo YT3-X90L', - 74 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', - 75 => 'Lenovo TB-7304F', - 76 => 'Lenovo TB-8705F', - 77 => 'Lenovo TB-J606F', - 78 => 'Lenovo TB-J616F', - 79 => 'Lenovo TB-X104F', - 80 => 'Lenovo TB-X306F', - 81 => 'Lenovo TB-X505F', - 82 => 'Lenovo TB-X605F', - 83 => 'Lenovo TB-X606F', - 84 => 'Lenovo TB-X103F', - 85 => 'Lenovo TB2-X30F', - 86 => 'Lenovo TB2-X30L', - 87 => 'Lenovo TB3-730X', - 88 => 'Lenovo TB3-710F', - 89 => 'Lenovo TB3-710I', - 90 => 'Lenovo TB-7703X', - 91 => 'Lenovo TB3-850F', - 92 => 'Lenovo TB3-850M', - 93 => 'Lenovo TB3-X70F', - 94 => 'Lenovo TB3-X70L', - 95 => 'Lenovo TB-8504F', - 96 => 'Lenovo TB-8703F', - 97 => 'Lenovo TB-8704F', - 98 => 'Lenovo TB-X304F', - 99 => 'Lenovo TB-X704F', - 100 => 'Lenovo TB-X704L', - 101 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 102 => 'Lenovo Pad A4', - 103 => 'Lenovo', - 104 => 'lepad 001b', - 105 => 'lepad 001n', - 106 => '(Lenovo |Lephone )?3GC101!', - 107 => '(Lenovo |Lephone )?3GW100!', - 108 => '(Lenovo |Lephone )?3GW101!', - 109 => '(Lenovo )?S1[- ]37AH0!', - 110 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 111 => 'Lenovo!!', - 112 => 'LenovoTV 40S9', - 113 => 'LenovoTV 50S52', - 114 => 'Lenovo Z2', - 115 => '(BLF-)?lephone!!', - 116 => 'Le Pan Mini', - 117 => 'Le Pan TC802A', - 118 => 'Le Pan TC1010', - 119 => 'Le Pan TC1020', - 120 => 'LePanII', - 121 => 'Le Pan S', - 122 => 'LE2101', - 123 => 'LE211[135]!', - 124 => 'LE212[01357]!', - 125 => 'LENNY', - 126 => 'LENNY2', - 127 => 'LENNY3', + 71 => 'Lenovo YT-J706F', + 72 => 'Lenovo YT-X703F', + 73 => 'Lenovo YT-X705F', + 74 => 'Lenovo YT3-X90F', + 75 => 'Lenovo YT3-X90L', + 76 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', + 77 => 'Lenovo TB-7304F', + 78 => 'Lenovo TB-8705F', + 79 => 'Lenovo TB-J606F', + 80 => 'Lenovo TB-J616F', + 81 => 'Lenovo TB-J706F', + 82 => 'Lenovo TB-J716F', + 83 => 'Lenovo TB-X104F', + 84 => 'Lenovo TB-X304L', + 85 => 'Lenovo TB-X306F', + 86 => 'Lenovo TB-X306X', + 87 => 'Lenovo TB-X505F', + 88 => 'Lenovo TB-X605F', + 89 => 'Lenovo TB-X606F', + 90 => 'Lenovo TB-X606X', + 91 => 'Lenovo TB-X103F', + 92 => 'Lenovo TB2-X30F', + 93 => 'Lenovo TB2-X30L', + 94 => 'Lenovo TB3-730X', + 95 => 'Lenovo TB3-710F', + 96 => 'Lenovo TB3-710I', + 97 => 'Lenovo TB-7703X', + 98 => 'Lenovo TB3-850F', + 99 => 'Lenovo TB3-850M', + 100 => 'Lenovo TB3-X70F', + 101 => 'Lenovo TB3-X70L', + 102 => 'Lenovo TB-8504F', + 103 => 'Lenovo TB-8505F', + 104 => 'Lenovo TB-8703F', + 105 => 'Lenovo TB-8704F', + 106 => 'Lenovo TB-X304F', + 107 => 'Lenovo TB-X704F', + 108 => 'Lenovo TB-X704L', + 109 => 'Lenovo TB-X705F', + 110 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 111 => 'Lenovo Pad A4', + 112 => 'Lenovo', + 113 => 'lepad 001b', + 114 => 'lepad 001n', + 115 => '(Lenovo |Lephone )?3GC101!', + 116 => '(Lenovo |Lephone )?3GW100!', + 117 => '(Lenovo |Lephone )?3GW101!', + 118 => '(Lenovo )?S1[- ]37AH0!', + 119 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 120 => 'Lenovo!!', + 121 => 'LenovoTV 40S9', + 122 => 'LenovoTV 50S52', + 123 => 'Lenovo Z2', + 124 => '(BLF-)?lephone!!', + 125 => 'Le Pan Mini', + 126 => 'Le Pan TC802A', + 127 => 'Le Pan TC1010', + 128 => 'Le Pan TC1020', + 129 => 'LePanII', + 130 => 'Le Pan S', + 131 => 'LE2101', + 132 => 'LE211[135]!', + 133 => 'LE212[01357]!', + 134 => 'LENNY', + 135 => 'LENNY2', + 136 => 'LENNY3', ), '@LG' => array ( @@ -3701,46 +3761,49 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => array ( - 0 => 'LM-G710!', - 1 => 'LM-G715!', - 2 => 'LM-G810!', - 3 => 'LM-G820!', - 4 => 'LM-G900!', - 5 => 'LM-G910!', - 6 => 'LM-K200!', - 7 => 'LM-K420!', - 8 => 'LM-Q610!', - 9 => 'LM-Q617!', - 10 => 'LM-Q630!', - 11 => 'LM-Q710!', - 12 => 'LM-Q720!', - 13 => 'LM-Q725!', - 14 => 'LM-Q815!', - 15 => 'LM-Q850!', - 16 => 'LM-Q910!', - 17 => 'LM-Q925!', - 18 => 'LM-V350!', - 19 => 'LM-V40[59]!', - 20 => 'LM-V450!', - 21 => 'LM-V500!', - 22 => 'LM-V600!', - 23 => 'LM-X120!', - 24 => 'LM-X210!', - 25 => 'LM-X212!', - 26 => 'LM-X220!', - 27 => 'LM-X320!', - 28 => 'LM-X410!', - 29 => 'LM-X415!', - 30 => 'LM-X420!', - 31 => 'LM-X510!', - 32 => 'LM-X525!', - 33 => 'LM-X625!', - 34 => 'LM-Y110!', + 0 => 'LM-F100!', + 1 => 'LM-G710!', + 2 => 'LM-G715!', + 3 => 'LM-G810!', + 4 => 'LM-G820!', + 5 => 'LM-G850!', + 6 => 'LM-G900!', + 7 => 'LM-G910!', + 8 => 'LM-K200!', + 9 => 'LM-K420!', + 10 => 'LM-Q610!', + 11 => 'LM-Q617!', + 12 => 'LM-Q630!', + 13 => 'LM-Q710!', + 14 => 'LM-Q720!', + 15 => 'LM-Q725!', + 16 => 'LM-Q815!', + 17 => 'LM-Q850!', + 18 => 'LM-Q910!', + 19 => 'LM-Q925!', + 20 => 'LM-V350!', + 21 => 'LM-V40[59]!', + 22 => 'LM-V450!', + 23 => 'LM-V500!', + 24 => 'LM-V600!', + 25 => 'LM-X120!', + 26 => 'LM-X210!', + 27 => 'LM-X212!', + 28 => 'LM-X220!', + 29 => 'LM-X320!', + 30 => 'LM-X410!', + 31 => 'LM-X415!', + 32 => 'LM-X420!', + 33 => 'LM-X510!', + 34 => 'LM-X525!', + 35 => 'LM-X540!', + 36 => 'LM-X625!', + 37 => 'LM-Y110!', ), '@LO' => array ( @@ -3750,7 +3813,7 @@ ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -3806,7 +3869,7 @@ 1 => 'LUXURY 3', 2 => 'LUXURY 4', 3 => 'LUXURY 5', - 4 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 4 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 5 => 'Lucky Ultra Sonic U8650', 6 => 'LU2300', 7 => 'Lumia800', @@ -3823,7 +3886,7 @@ '@LY' => array ( 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 1 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 1 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 2 => 'LYF LS-4006', 3 => 'LYF LS-5009', ), @@ -3856,13 +3919,14 @@ '@M1' => array ( 0 => 'M19', - 1 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 2 => 'M1050S', 3 => 'M1', 4 => 'm1 metal', 5 => 'm1 note', 6 => 'M1001', 7 => 'M12', + 8 => 'M1908C3JGG', ), '@M2' => array ( @@ -3876,23 +3940,29 @@ 7 => 'M2004J19C', 8 => 'M2006C3LG', 9 => 'M2006C3MG', - 10 => 'M2007J17G', - 11 => 'M2007J20CG', - 12 => 'M2007J22G', - 13 => 'M2007J3SG', - 14 => 'M2007J3SY', - 15 => 'M2010J19CG', - 16 => 'M2010J19SY', - 17 => 'M2011K2G', - 18 => 'M2012K11AG', - 19 => 'M2012K11G', - 20 => 'M2101K6G', - 21 => 'M2101K7AG', - 22 => 'M2101K7BNY', - 23 => 'M2101K9AG', - 24 => 'M2101K9G', - 25 => 'M2102J20SG', - 26 => 'M2103K19G', + 10 => 'M2006C3MNG', + 11 => 'M2007J17G', + 12 => 'M2007J20CG', + 13 => 'M2007J22G', + 14 => 'M2007J3SG', + 15 => 'M2007J3SY', + 16 => 'M2010J19CG', + 17 => 'M2010J19SY', + 18 => 'M2011K2G', + 19 => 'M2012K11AG', + 20 => 'M2012K11G', + 21 => 'M2101K6G', + 22 => 'M2101K7AG', + 23 => 'M2101K7BG', + 24 => 'M2101K7BNY', + 25 => 'M2101K9AG', + 26 => 'M2101K9G', + 27 => 'M2102J20SG', + 28 => 'M2102J20SI', + 29 => 'M2102K1C', + 30 => 'M2102K1G', + 31 => 'M2103K19G', + 32 => 'M2103K19PG', ), '@M3' => array ( @@ -3977,7 +4047,7 @@ 3 => '(bq|Aquaris|Edison|Maxwell)!!', 4 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 5 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 6 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 6 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 7 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', 8 => 'MAX FIND 5.0', 9 => 'Malata!!', @@ -4108,28 +4178,35 @@ 37 => 'MI 8 SE', 38 => 'MI 8 UD', 39 => 'MI 8 Lite', - 40 => 'MI 9', - 41 => 'Mi 9 Lite', - 42 => 'Mi9 Pro 5G', - 43 => 'Mi 9 SE', - 44 => 'Mi 9T', - 45 => 'Mi 9T Pro', - 46 => 'Mi 10', - 47 => 'Mi Note 10', - 48 => 'Mi Note 10 Lite', - 49 => '(Xiaomi|Xiaomi Mi|MI) Note!!', - 50 => '(Xiaomi )?(MI )?MAX$!', - 51 => '(Xiaomi )?(MI )?MAX 2$!', - 52 => '(Xiaomi )?(MI )?MAX 3$!', - 53 => '(Xiaomi )?(MI )?MIX$!', - 54 => '(Xiaomi )?(MI )?MIX 2$!', - 55 => '(Xiaomi )?(MI )?MIX 2S$!', - 56 => 'Mi MIX 3', - 57 => 'mido', - 58 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 59 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 60 => '(Xiaomi|Xiaomi Mi|MI)TV!!', - 61 => '(ZTE )?(Grand|Mimosa)!!', + 40 => 'MI 8 Pro', + 41 => 'MI 9', + 42 => 'Mi 9 Lite', + 43 => 'Mi9 Pro 5G', + 44 => 'Mi 9 SE', + 45 => 'Mi 9T', + 46 => 'Mi 9T Pro', + 47 => 'Mi 10', + 48 => 'Mi 10 Pro', + 49 => 'Mi 10 Lite 5G', + 50 => 'Mi 10T Lite', + 51 => 'Mi 11 Lite 5G', + 52 => 'Mi Note 10', + 53 => 'Mi Note 10 Lite', + 54 => 'Mi Note 10 Pro', + 55 => '(Xiaomi|Xiaomi Mi|MI) Note!!', + 56 => '(Xiaomi )?(MI )?MAX$!', + 57 => '(Xiaomi )?(MI )?MAX 2$!', + 58 => '(Xiaomi )?(MI )?MAX 3$!', + 59 => '(Xiaomi )?(MI )?MIX$!', + 60 => '(Xiaomi )?(MI )?MIX 2$!', + 61 => '(Xiaomi )?(MI )?MIX 2S$!', + 62 => 'Mi MIX 3', + 63 => 'Mi MIX 3 5G', + 64 => 'mido', + 65 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 66 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 67 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 68 => '(ZTE )?(Grand|Mimosa)!!', ), '@MK' => array ( @@ -4185,96 +4262,107 @@ 26 => 'motorola edge 20', 27 => 'motorola edge 20 lite', 28 => 'motorola edge 20 pro', - 29 => 'Moto Droid', - 30 => 'Motorola Pro XT610', - 31 => 'Motorola Milestone MAXX', - 32 => 'Motorola Backflip Me600', - 33 => 'Moto ME860', - 34 => 'Moto C', - 35 => 'Moto C Plus', - 36 => '(Moto)?E2$!', - 37 => '(Moto)?E2\\(4G-LTE\\)$!', - 38 => 'Motorola MotoE2!', - 39 => 'Moto E4', - 40 => 'Moto E (4)', - 41 => 'Moto E (4) Plus', - 42 => 'moto e5', - 43 => 'moto e5 cruise', - 44 => 'moto e5 play', - 45 => 'moto e5 plus', - 46 => 'moto e(6i)', - 47 => 'moto e6 play', - 48 => 'moto e(6) plus', - 49 => 'moto e(7i) power', - 50 => 'moto e20', - 51 => '(Moto)?G3$!', - 52 => '(Moto)?G3-TE$!', - 53 => 'Moto G 2015', - 54 => 'Moto G (2015)', - 55 => 'Moto G (2014', - 56 => 'MOTOROLA MOTOG', - 57 => 'Moto G Play', - 58 => 'Moto G Turbo', - 59 => 'moto g 5G', - 60 => 'moto g 5G plus', - 61 => 'moto g pro', - 62 => 'Moto G4', - 63 => 'Moto G (4', - 64 => 'Moto G (4)', - 65 => 'Moto G4 Plus', - 66 => 'Moto G 5', - 67 => 'Moto G (5', - 68 => 'Moto G (5)', - 69 => 'Moto G (5) Plus', - 70 => 'Moto G (5S', - 71 => 'Moto G (5S)', - 72 => 'Moto G (5S) Plus', - 73 => 'moto g(6', - 74 => 'moto g(6)', - 75 => 'moto g(6) (XT1925DL)', - 76 => 'moto g(6) forge', - 77 => 'moto g(6) play', - 78 => 'moto g(6) plus', - 79 => 'moto g(7', - 80 => 'moto g(7)', - 81 => 'moto g(7) optimo (XT1952DL)', - 82 => 'moto g(7) play', - 83 => 'moto g(7) plus', - 84 => 'moto g(7) power', - 85 => 'moto g(7) supra', - 86 => 'moto g(8', - 87 => 'moto g(8) plus', - 88 => 'moto g(8) power', - 89 => 'moto g(9) play', - 90 => 'moto g(9) plus', - 91 => 'moto g(9) power', - 92 => 'moto g(10)', - 93 => 'moto g(20)', - 94 => 'moto g(30)', - 95 => 'moto g(60)', - 96 => 'moto g(60)s', - 97 => 'moto g(100)', - 98 => 'Moto Z (2)', - 99 => 'Moto Z2 Play', - 100 => 'Moto Z3 Play', - 101 => 'Moto X Pro', - 102 => 'moto x4', - 103 => 'Moto Backflip', - 104 => 'MOTOROLA XOOM MZ606', - 105 => 'MOTOROLA RAZR', - 106 => 'MOTWX435KT', - 107 => '(PLOYER-)?MOMO!!', - 108 => 'MOB-5045', - 109 => 'Mobii 7', - 110 => 'MoFing', - 111 => 'mocha', - 112 => 'MO-01J', - 113 => 'MO-01K', - 114 => 'Movistar Express', - 115 => 'Movistar Link', - 116 => 'Movistar Motion', - 117 => 'Movistar Prime', - 118 => 'MOVE', + 29 => 'motorola edge 30 pro', + 30 => 'Moto Droid', + 31 => 'Motorola Pro XT610', + 32 => 'Motorola Milestone MAXX', + 33 => 'Motorola Backflip Me600', + 34 => 'Moto ME860', + 35 => 'Moto C', + 36 => 'Moto C Plus', + 37 => '(Moto)?E2$!', + 38 => '(Moto)?E2\\(4G-LTE\\)$!', + 39 => 'Motorola MotoE2!', + 40 => 'Moto E4', + 41 => 'Moto E (4)', + 42 => 'Moto E (4) Plus', + 43 => 'moto e5', + 44 => 'moto e5 cruise', + 45 => 'moto e5 play', + 46 => 'moto e5 plus', + 47 => 'moto e(6i)', + 48 => 'moto e6s', + 49 => 'moto e6 play', + 50 => 'moto e(6) plus', + 51 => 'moto e(7) plus', + 52 => 'moto e(7) power', + 53 => 'moto e(7i) power', + 54 => 'moto e20', + 55 => 'moto e40', + 56 => '(Moto)?G3$!', + 57 => '(Moto)?G3-TE$!', + 58 => 'Moto G 2015', + 59 => 'Moto G (2015)', + 60 => 'Moto G (2014', + 61 => 'MOTOROLA MOTOG', + 62 => 'Moto G Play', + 63 => 'Moto G Turbo', + 64 => 'moto g 5G', + 65 => 'moto g 5G plus', + 66 => 'moto g pro', + 67 => 'Moto G4', + 68 => 'Moto G (4', + 69 => 'Moto G (4)', + 70 => 'Moto G4 Plus', + 71 => 'Moto G 5', + 72 => 'Moto G (5', + 73 => 'Moto G (5)', + 74 => 'Moto G (5) Plus', + 75 => 'Moto G (5S', + 76 => 'Moto G (5S)', + 77 => 'Moto G (5S) Plus', + 78 => 'moto g(6', + 79 => 'moto g(6)', + 80 => 'moto g(6) (XT1925DL)', + 81 => 'moto g(6) forge', + 82 => 'moto g(6) play', + 83 => 'moto g(6) plus', + 84 => 'moto g(7', + 85 => 'moto g(7)', + 86 => 'moto g(7) optimo (XT1952DL)', + 87 => 'moto g(7) play', + 88 => 'moto g(7) plus', + 89 => 'moto g(7) power', + 90 => 'moto g(7) supra', + 91 => 'moto g(8', + 92 => 'moto g(8)', + 93 => 'moto g(8) plus', + 94 => 'moto g(8) power', + 95 => 'moto g(8) power lite', + 96 => 'moto g(9) play', + 97 => 'moto g(9) plus', + 98 => 'moto g(9) power', + 99 => 'moto g(10)', + 100 => 'moto g(20)', + 101 => 'moto g(30)', + 102 => 'moto g31(w)', + 103 => 'moto g(50)', + 104 => 'moto g51 5G', + 105 => 'moto g(60)', + 106 => 'moto g(60)s', + 107 => 'moto g(100)', + 108 => 'Moto Z (2)', + 109 => 'Moto Z2 Play', + 110 => 'Moto Z3 Play', + 111 => 'Moto X Pro', + 112 => 'moto x4', + 113 => 'Moto Backflip', + 114 => 'motorola razr 5G', + 115 => 'MOTOROLA XOOM MZ606', + 116 => 'MOTOROLA RAZR', + 117 => 'MOTWX435KT', + 118 => '(PLOYER-)?MOMO!!', + 119 => 'MOB-5045', + 120 => 'Mobii 7', + 121 => 'MoFing', + 122 => 'mocha', + 123 => 'MO-01J', + 124 => 'MO-01K', + 125 => 'Movistar Express', + 126 => 'Movistar Link', + 127 => 'Movistar Motion', + 128 => 'Movistar Prime', + 129 => 'MOVE', ), '@MP' => array ( @@ -4412,7 +4500,7 @@ ), '@MY' => array ( - 0 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 1 => 'MyPhone A818g Duo', 2 => 'MyPhone A818 Slim Duo', 3 => 'MyPhone A848 Duo', @@ -4606,7 +4694,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4698,7 +4786,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -4810,7 +4898,8 @@ ), '@NT' => array ( - 0 => '(NetTab|NT-)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(NetTab|NT-)!!', ), '@NU' => array ( @@ -5067,13 +5156,14 @@ 145 => 'ONE E1001', 146 => 'ONE E1003', 147 => 'ONE E1005', - 148 => 'ONDA MID', - 149 => 'ONDA A9 Core4', - 150 => 'ONDA VI10', - 151 => 'Onda V812', - 152 => 'ONDA v975m', - 153 => 'ONDA V989', - 154 => 'ONDA V989 Core8', + 148 => 'oneplus Nord 2 5G', + 149 => 'ONDA MID', + 150 => 'ONDA A9 Core4', + 151 => 'ONDA VI10', + 152 => 'Onda V812', + 153 => 'ONDA v975m', + 154 => 'ONDA V989', + 155 => 'ONDA V989 Core8', ), '@OP' => array ( @@ -5238,7 +5328,7 @@ ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5292,19 +5382,20 @@ 3 => 'P1ma40', 4 => 'P1050X', 5 => 'P1060X', - 6 => 'P10HD??(E6NA)', - 7 => 'P11HD', - 8 => 'P11HD四核(G9X6)', - 9 => 'P11HD??(G9X6)', - 10 => 'P11HD四核(G9X7)', - 11 => 'P19HD(E1K3)', - 12 => 'P19HD(E1K5)', + 6 => 'P1061X', + 7 => 'P10HD??(E6NA)', + 8 => 'P11HD', + 9 => 'P11HD四核(G9X6)', + 10 => 'P11HD??(G9X6)', + 11 => 'P11HD四核(G9X7)', + 12 => 'P19HD(E1K3)', + 13 => 'P19HD(E1K5)', ), '@P2' => array ( 0 => 'P2A700', 1 => 'P2Lite', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'P20HD EEA', ), '@P3' => @@ -5334,11 +5425,11 @@ 2 => 'P6 Pro', 3 => 'P6 Qmax', 4 => 'P6 Quad', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@P7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'P700i', 2 => 'P701', 3 => 'P7', @@ -5481,7 +5572,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5499,7 +5590,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5601,37 +5692,38 @@ 12 => 'Pixel 4a (5G)', 13 => 'Pixel 4 XL', 14 => 'Pixel 5', - 15 => 'Pixel 6', - 16 => 'Pixel 6 Pro', - 17 => '(Axioo[\\- ])?PICO!!', - 18 => 'picoBit-L', - 19 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', - 20 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', - 21 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', - 22 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', - 23 => '(HW-|HUAWEI )?PIC-(LX9)!', - 24 => 'PixelV1', - 25 => 'Pixel V2', - 26 => 'Pixel V2+', - 27 => 'PI2000', - 28 => 'PI2010', - 29 => 'PI2011', - 30 => 'PI3100', - 31 => 'PI3100-93', - 32 => 'PI3100Z3 93', - 33 => 'PI3105', - 34 => 'PI3106', - 35 => 'PI3110', - 36 => 'PI3205G', - 37 => 'PI3210G', - 38 => 'PI3900', - 39 => 'PI3900-93', - 40 => 'PI3910', - 41 => 'PI4010G', - 42 => 'PI7000', - 43 => 'PI7100 93', - 44 => '(PNR-)?Pioneer!!', - 45 => 'PIRANHA!!', + 15 => 'Pixel 5a', + 16 => 'Pixel 6', + 17 => 'Pixel 6 Pro', + 18 => '(Axioo[\\- ])?PICO!!', + 19 => 'picoBit-L', + 20 => '(GIO-)?(GiONEE[- ])?Pioneer P1!', + 21 => '(GIO-)?(GiONEE[- ])?Pioneer P2!', + 22 => '(GIO-)?(GiONEE[- ])?Pioneer P3!', + 23 => '(GIO-)?(GiONEE[- ])?Pioneer P4!', + 24 => '(HW-|HUAWEI )?PIC-(LX9)!', + 25 => 'PixelV1', + 26 => 'Pixel V2', + 27 => 'Pixel V2+', + 28 => 'PI2000', + 29 => 'PI2010', + 30 => 'PI2011', + 31 => 'PI3100', + 32 => 'PI3100-93', + 33 => 'PI3100Z3 93', + 34 => 'PI3105', + 35 => 'PI3106', + 36 => 'PI3110', + 37 => 'PI3205G', + 38 => 'PI3210G', + 39 => 'PI3900', + 40 => 'PI3900-93', + 41 => 'PI3910', + 42 => 'PI4010G', + 43 => 'PI7000', + 44 => 'PI7100 93', + 45 => '(PNR-)?Pioneer!!', + 46 => 'PIRANHA!!', ), '@PJ' => array ( @@ -5642,7 +5734,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -5758,8 +5850,10 @@ 81 => 'Positivo S550', 82 => 'Positivo X400', 83 => 'Positivo X800', - 84 => 'POCOPHONE F1', - 85 => 'POCO F2 Pro', + 84 => 'Power Armor 13', + 85 => 'POCOPHONE F1', + 86 => 'POCO F1', + 87 => 'POCO F2 Pro', ), '@PP' => array ( @@ -5770,7 +5864,7 @@ array ( 0 => 'Project Tango Tablet Development Kit', 1 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Pro 10 dual core', 4 => 'Prada 3.0', 5 => 'PRO 5', @@ -6209,7 +6303,7 @@ 2 => 'Rikomagic MK802III', 3 => 'Rikomagic MK802IIIS', 4 => '(Gsmart|Gigabyte|Rio)!!', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Rise', 7 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 8 => 'RIDGE', @@ -6256,21 +6350,30 @@ 2 => 'RM-1061', 3 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 4 => 'RMD-[0-9]{2,3}G!!', - 5 => 'RMX1993', - 6 => 'RMX2002', - 7 => 'RMX2170', - 8 => 'RMX2202', - 9 => 'RMX3081', - 10 => 'RMX3085', - 11 => 'RMX3241', - 12 => 'RMX3242', - 13 => 'RMX3301', - 14 => 'RMX3311', - 15 => 'RMX3363', + 5 => 'RMX1931', + 6 => 'RMX1971', + 7 => 'RMX1993', + 8 => 'RMX2001', + 9 => 'RMX2002', + 10 => 'RMX2063', + 11 => 'RMX2075', + 12 => 'RMX2086', + 13 => 'RMX2144', + 14 => 'RMX2155', + 15 => 'RMX2170', + 16 => 'RMX2202', + 17 => 'RMX3081', + 18 => 'RMX3085', + 19 => 'RMX3241', + 20 => 'RMX3242', + 21 => 'RMX3301', + 22 => 'RMX3311', + 23 => 'RMX3363', + 24 => 'RMX3370', ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6329,10 +6432,11 @@ '@S4' => array ( 0 => 'S40', - 1 => 'S42', - 2 => 'S4503Q', - 3 => 'S4505M', - 4 => 'S4', + 1 => 'S41', + 2 => 'S42', + 3 => 'S4503Q', + 4 => 'S4505M', + 5 => 'S4', ), '@S5' => array ( @@ -6363,10 +6467,11 @@ ), '@S8' => array ( - 0 => 'S8600', - 1 => 'S88 DISCOVERY', - 2 => 'S850', - 3 => 'S880', + 0 => 'S88Pro', + 1 => 'S8600', + 2 => 'S88 DISCOVERY', + 3 => 'S850', + 4 => 'S880', ), '@S9' => array ( @@ -6404,9 +6509,9 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 3 => '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', 5 => 'SCH-L710!', 6 => 'SCH-M828!', @@ -6487,6 +6592,8 @@ 28 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', 29 => 'SH[FLTV][0-9]{2,2}!!', 30 => 'SHARP-ADS1', + 31 => 'SHIFT6m', + 32 => 'SHARK PRS-H0', ), '@SI' => array ( @@ -6551,20 +6658,22 @@ 32 => 'SM-T[0-9]{3,3}!!', 33 => 'SM-X200', 34 => 'SM-X205', - 35 => 'SM-X900', - 36 => 'SM-V700', - 37 => 'SM-W[0-9]{4,4}!!', - 38 => 'Smartphone Android by SFR STARADDICT II', - 39 => '(Smartfren|Andromax)!!', - 40 => 'Smartfren Tab 7', - 41 => 'SM919', - 42 => 'SM701', - 43 => 'SM801', - 44 => 'SmartQ!!', - 45 => 'SMART Sprint', - 46 => 'SMART Start', - 47 => 'SMART Surf2 4G', - 48 => 'SmartTab!!', + 35 => 'SM-X700', + 36 => 'SM-X900', + 37 => 'SM-X906!', + 38 => 'SM-V700', + 39 => 'SM-W[0-9]{4,4}!!', + 40 => 'Smartphone Android by SFR STARADDICT II', + 41 => '(Smartfren|Andromax)!!', + 42 => 'Smartfren Tab 7', + 43 => 'SM919', + 44 => 'SM701', + 45 => 'SM801', + 46 => 'SmartQ!!', + 47 => 'SMART Sprint', + 48 => 'SMART Start', + 49 => 'SMART Surf2 4G', + 50 => 'SmartTab!!', ), '@SN' => array ( @@ -6586,7 +6695,7 @@ 7 => 'Softwinerf900', 8 => 'SoftwinerEvbV13', 9 => 'soho', - 10 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 10 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 11 => 'SONIC', 12 => 'Sonim!!', 13 => 'SO-0[0-9][A-Z]!!', @@ -6652,8 +6761,8 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 16 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 16 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', 19 => 'STM[0-9]{3,3}H!!', @@ -6717,12 +6826,14 @@ 1 => 'Surfing Tab C 3G', 2 => '(E-Boda|Eruption|Essential|Supreme|Storm|Revo)!!', 3 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', - 4 => 'surnia', - 5 => 'SUGAR ([A-Z][0-9]?(?: Pro)?)!', - 6 => 'SUPRA (M[0-9]{2,3}[A-Z]{0,2})!', - 7 => 'SUBLIM', - 8 => 'SUNSET', - 9 => 'SUNSET2', + 4 => 'Surface Duo', + 5 => 'Surface Duo 2', + 6 => 'surnia', + 7 => 'SUGAR ([A-Z][0-9]?(?: Pro)?)!', + 8 => 'SUPRA (M[0-9]{2,3}[A-Z]{0,2})!', + 9 => 'SUBLIM', + 10 => 'SUNSET', + 11 => 'SUNSET2', ), '@SV' => array ( @@ -6825,12 +6936,14 @@ '@T6' => array ( 0 => 'T6', + 1 => 'T671H', ), '@T7' => array ( 0 => '(OPPO-?)?T703!', - 1 => 'T720 SE', - 2 => 'T760 from moage.com', + 1 => 'T774H', + 2 => 'T720 SE', + 3 => 'T760 from moage.com', ), '@T8' => array ( @@ -7006,7 +7119,8 @@ 27 => 'teXet X-medium plus', 28 => 'teXet X-maxi qHD', 29 => 'TeamDRH ICS for GTablet', - 30 => 'Telenor!!', + 30 => 'TERRA PAD 1004', + 31 => 'Telenor!!', ), '@TF' => array ( @@ -7037,12 +7151,13 @@ array ( 0 => 'Tilapia', 1 => 'Titan TV S320', - 2 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 3 => '(Karbonn|Titanium)!!', - 4 => 'TI320-DU', - 5 => 'TI320-DU TV', - 6 => 'TizzBird!!', - 7 => 'tiffany', + 2 => 'TIQ-1049', + 3 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 4 => '(Karbonn|Titanium)!!', + 5 => 'TI320-DU', + 6 => 'TI320-DU TV', + 7 => 'TizzBird!!', + 8 => 'tiffany', ), '@TL' => array ( @@ -7104,7 +7219,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -7342,6 +7457,7 @@ 16 => '(GIO-)?(GiONEE[- ])?V188!', 17 => 'V1', 18 => 'V1277', + 19 => 'V1916A', ), '@V2' => array ( @@ -7510,7 +7626,7 @@ 20 => 'Vibo-A688', 21 => 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro', 22 => 'Vivid 4G', - 23 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 23 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 24 => 'Vibe K5 Plus', 25 => 'VIBE X2 (X2)', 26 => 'VIBE X3', @@ -7563,7 +7679,7 @@ ), '@VK' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VK410', 2 => 'VK700', 3 => 'VK810 4G', @@ -7581,7 +7697,7 @@ ), '@VN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@VO' => array ( @@ -7590,7 +7706,7 @@ 2 => 'Volantisg', 3 => 'VOYAGER DG300', 4 => 'VOYAGER2 DG310', - 5 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Vox', 7 => 'Vortex', 8 => 'vollo Vi86', @@ -7636,7 +7752,7 @@ ), '@VT' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VT6078', 2 => 'VT75C', 3 => 'VT77C', @@ -7656,6 +7772,15 @@ 2 => 'VX580W', 3 => 'VX610A', ), + '@W ' => + array ( + 0 => 'W P200', + ), + '@W-' => + array ( + 0 => 'W-P311-EEA', + 1 => 'W-V730-EEA', + ), '@W1' => array ( 0 => 'W10', @@ -7731,7 +7856,7 @@ ), '@WA' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'WA-U420D', 2 => 'WALSUN S1 Pro', 3 => 'WALSUN S2', @@ -7882,16 +8007,21 @@ 15 => 'X00DDB', 16 => 'X00HD', 17 => 'X00GD', - 18 => 'X013D', - 19 => 'X013DA', - 20 => 'X013DB', - 21 => 'X013DC', - 22 => 'X015D', - 23 => 'X014D', - 24 => 'X002', - 25 => 'X003', - 26 => 'X005', - 27 => 'X008', + 18 => 'X00LD', + 19 => 'X00T', + 20 => 'X00TD', + 21 => 'X00DE', + 22 => 'X01AD', + 23 => 'X013D', + 24 => 'X013DA', + 25 => 'X013DB', + 26 => 'X013DC', + 27 => 'X015D', + 28 => 'X014D', + 29 => 'X002', + 30 => 'X003', + 31 => 'X005', + 32 => 'X008', ), '@X1' => array ( @@ -7911,19 +8041,20 @@ 13 => 'X1 Selfie', 14 => 'X1010', 15 => 'X1030X', - 16 => 'X10(a|i|iv|i-o|s)?$!', - 17 => 'X10 ?(Mini ?Pro)$!', - 18 => 'X10 ?(Mini)$!', - 19 => 'X10H(G3C5)', - 20 => 'X10HD 3G(M6K6)', - 21 => 'X16 Plus(D3A5)', - 22 => 'X16 Power(D6F7)', - 23 => 'X16 PRO(D6F8)', - 24 => 'X16HD (K3J3)', - 25 => 'X16HD 3G(M5J4)', - 26 => 'X16HD 3G(M5J5)', - 27 => 'X16HD 3G(M5J5', - 28 => 'X16HD 3G(M5J6)', + 16 => 'X1060X', + 17 => 'X10(a|i|iv|i-o|s)?$!', + 18 => 'X10 ?(Mini ?Pro)$!', + 19 => 'X10 ?(Mini)$!', + 20 => 'X10H(G3C5)', + 21 => 'X10HD 3G(M6K6)', + 22 => 'X16 Plus(D3A5)', + 23 => 'X16 Power(D6F7)', + 24 => 'X16 PRO(D6F8)', + 25 => 'X16HD (K3J3)', + 26 => 'X16HD 3G(M5J4)', + 27 => 'X16HD 3G(M5J5)', + 28 => 'X16HD 3G(M5J5', + 29 => 'X16HD 3G(M5J6)', ), '@X2' => array ( @@ -8199,19 +8330,22 @@ array ( 0 => 'Xperia Z Ultra', 1 => 'XPRESS PRO', - 2 => 'Xperia!!', - 3 => '(Symphony|Xplorer)!!', - 4 => 'xPAD-70', + 2 => 'XP8800', + 3 => 'Xperia!!', + 4 => '(Symphony|Xplorer)!!', + 5 => 'xPAD-70', ), '@XQ' => array ( 0 => 'XQ-AT51', - 1 => 'XQ-BC52', - 2 => 'XQ-AS52', - 3 => 'XQ-AU52', - 4 => 'XQ-BT52', - 5 => 'XQ-AD52', - 6 => 'XQ-BE52', + 1 => 'XQ-AT52', + 2 => 'XQ-BC52', + 3 => 'XQ-AS52', + 4 => 'XQ-BQ52', + 5 => 'XQ-AU52', + 6 => 'XQ-BT52', + 7 => 'XQ-AD52', + 8 => 'XQ-BE52', ), '@XT' => array ( @@ -8265,7 +8399,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( diff --git a/data/models-android.php b/data/models-android.php index a181ee4f2..f9411e43b 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -275,6 +275,7 @@ 'Pixel 4a (5G)' => [ 'Google', 'Pixel 4a 5G' ], 'Pixel 4 XL' => [ 'Google', 'Pixel 4 XL' ], 'Pixel 5' => [ 'Google', 'Pixel 5' ], + 'Pixel 5a' => [ 'Google', 'Pixel 5a' ], 'Pixel 6' => [ 'Google', 'Pixel 6' ], 'Pixel 6 Pro' => [ 'Google', 'Pixel 6 Pro' ], @@ -985,7 +986,8 @@ '4055[JU]!' => [ 'Alcatel', 'One Touch Pixi 5 (4)' ], '4060[A]!' => [ 'Alcatel', 'IDEAL' ], '4060[SW]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], - '5002[H]!' => [ 'Alcatel', '1B (2020)' ], + '5002[DH]!' => [ 'Alcatel', '1B (2020)' ], + '5003[D]!' => [ 'Alcatel', '1C (2019)' ], '5010[DEGSUX]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], '5011[A]!' => [ 'Alcatel', 'A3 Plus' ], '5012[G]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.5)' ], @@ -1002,10 +1004,10 @@ 'one ?touch 5021!' => [ 'Alcatel', 'One Touch Soleil' ], '5022[DEX]!' => [ 'Alcatel', 'One Touch Pop Star' ], '5023[F]!' => [ 'Alcatel', 'One Touch Pixi 4 Plus Power' ], - '5024[D]!' => [ 'Alcatel', '1S' ], + '5024[DF]!' => [ 'Alcatel', '1S' ], '5025[DEGX]!' => [ 'Alcatel', 'One Touch Pop 3' ], '5027[B]!' => [ 'Alcatel', 'One Touch Dawn' ], - '5030[F]!' => [ 'Alcatel', '1SE' ], + '5030[DF]!' => [ 'Alcatel', '1SE' ], '5033[ADJOX]!' => [ 'Alcatel', '1' ], '5034[D]!' => [ 'Alcatel', '3L' ], 'one ?touch 5035!' => [ 'Alcatel', 'One Touch X\'Pop' ], @@ -1022,12 +1024,13 @@ '5045[ADFGJTXY]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.0)' ], '5046[DGIJUY]!' => [ 'Alcatel', 'A3' ], '5047[DIUY]!' => [ 'Alcatel', 'U5 HD' ], + '5048[Y]!' => [ 'Alcatel', '3X (2019)' ], '5049[EGSWZ]!' => [ 'Alcatel', 'A30 Fierce' ], 'one ?touch 5050!' => [ 'Alcatel', 'One Touch Pop S3' ], '5050[ASYX]!' => [ 'Alcatel', 'One Touch Pop S3' ], '5051[ADJMX]!' => [ 'Alcatel', 'One Touch Pop 4 (5.0)' ], '5052[DY]!' => [ 'Alcatel', '3' ], - '5053[D]!' => [ 'Alcatel', '3 (2019)' ], + '5053[DK]!' => [ 'Alcatel', '3 (2019)' ], '5054[ADOSTX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5.5)' ], '5054[NW]!' => [ 'Alcatel', 'One Touch Fierce XL' ], '5056[ADEINUWX]!' => [ 'Alcatel', 'One Touch Pop 4+' ], @@ -1036,7 +1039,7 @@ '5058[I]!' => [ 'Alcatel', '3X' ], '5059[ADJTXY]!' => [ 'Alcatel', '1X' ], '5060[D]!' => [ 'Alcatel', '5V' ], - '5061[U]!' => [ 'Alcatel', '3X' ], + '5061[KU]!' => [ 'Alcatel', '3X' ], '5065[ADJNWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (5)' ], '5070[DJX]!' => [ 'Alcatel', 'One Touch Pop Star' ], '5080[A]!' => [ 'Alcatel', 'Shine Lite' ], @@ -1077,6 +1080,7 @@ 'one ?touch 6050!' => [ 'Alcatel', 'One Touch Idol 2S' ], '6050[AFWY]!' => [ 'Alcatel', 'One Touch Idol 2S' ], '6055[ABDHIKPUY]!' => [ 'Alcatel', 'One Touch Idol 4' ], + '6056[D]!' => [ 'Alcatel', '3L' ], '6058[D]!' => [ 'Alcatel', 'One Touch Idol 5' ], '6060[S]!' => [ 'Alcatel', 'One Touch Idol 5s' ], '6062[W]!' => [ 'Alcatel', '7' ], @@ -1781,7 +1785,13 @@ 'PadFone X' => [ 'Asus', 'PadFone X', DeviceType::TABLET ], 'PadFone X mini' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], 'ETBW11AA' => [ 'Asus', 'Tough' ], + 'I01WDX' => [ 'Asus', 'Zenfone 8' ], + 'I001DE' => [ 'Asus', 'ROG Phone 2' ], + 'I002D' => [ 'Asus', 'Zenfone 7' ], + 'I003D' => [ 'Asus', 'ROG Phone 3' ], 'I003DD' => [ 'Asus', 'ROG Phone 3' ], + 'I005D' => [ 'Asus', 'ROG Phone 5 Pro' ], + 'I005DA' => [ 'Asus', 'ROG Phone 5 Pro' ], 'I006D' => [ 'Asus', 'Zenfone 8 Mini' ], 'K00C' => [ 'Asus', 'Transformer Pad Infinity', DeviceType::TABLET ], 'K010' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], @@ -1874,6 +1884,11 @@ 'X00DDB' => [ 'Asus', 'ZenFone 3 Max (ZC553KL)' ], 'X00HD' => [ 'Asus', 'ZenFone 4 Max (ZC520KL)' ], 'X00GD' => [ 'Asus', 'ZenFone 3S Max (ZC521TL)' ], + 'X00LD' => [ 'Asus', 'ZenFone 4 Selfie (ZD553KL)' ], + 'X00T' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], + 'X00TD' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], + 'X00DE' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], + 'X01AD' => [ 'Asus', 'ZenFone Max M2 (ZB633KL)' ], 'X013D' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X013DA' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X013DB' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], @@ -2250,9 +2265,14 @@ 'BBE100-[0-9]!' => [ 'BlackBerry', '"BBE100"' ], 'BBF100-[0-9]!' => [ 'BlackBerry', 'KEY2' ], + 'BV4900Pro' => [ 'Blackview', 'BV4900 Pro' ], + 'BV5900' => [ 'Blackview', 'BV5900' ], + 'BV6300Pro' => [ 'Blackview', 'BV6300 Pro' ], 'BV8000Pro' => [ 'Blackview', 'BV8000 Pro' ], 'BV9100' => [ 'Blackview', 'BV9100' ], + 'BV9500' => [ 'Blackview', 'BV9500' ], 'BV9600E' => [ 'Blackview', 'BV9600E' ], + 'BV9900Pro' => [ 'Blackview', 'BV9900 Pro' ], 'P2Lite' => [ 'Blackview', 'P2 Lite' ], 'Endeavour!!' => [ @@ -2649,6 +2669,8 @@ 'Bush Mytablet 2' => [ 'Bush', 'MyTablet 2', DeviceType::TABLET ], ], + 'Carbon 1 Mark II' => [ 'Carbon', '1 MK II' ], + 'CT[0-9]{3,4}!!' => [ 'CT700' => [ 'Carrefour', 'Touch Tablet CT700', DeviceType::TABLET ], 'CT701' => [ 'Carrefour', 'Touch Tablet CT701', DeviceType::TABLET ], @@ -2712,6 +2734,7 @@ 'S30' => [ 'CAT', 'S30' ], 'S31' => [ 'CAT', 'S31' ], 'S40' => [ 'CAT', 'S40' ], + 'S41' => [ 'CAT', 'S41' ], 'S42' => [ 'CAT', 'S42' ], 'S50' => [ 'CAT', 'S50' ], 'S50c' => [ 'CAT', 'S50c' ], @@ -3731,6 +3754,7 @@ 'Dell XCD35' => [ 'Dell', 'XCD35' ], 'XCD35' => [ 'Dell', 'XCD35' ], 'DEM752HCF' => [ 'Denver', 'TAC-7018', DeviceType::TABLET ], + 'TIQ-1049' => [ 'Denver', 'TIQ-1049', DeviceType::TABLET ], '(DENVER-)?TA[CD]-[0-9]{4,5}!!' => [ 'TAC-7028' => [ 'Denver', 'TAC-7028', DeviceType::TABLET ], @@ -3952,6 +3976,7 @@ 'Discovery2-DG500C' => [ 'Doogee', 'Discovery 2 DG500C' ], 'DG750 Iron Bone' => [ 'Doogee', 'Iron Bone DG750' ], 'TURBO DG2014' => [ 'Doogee', 'Turbo DG2014' ], + 'S88Pro' => [ 'Doogee', 'S88 Pro' ], 'S96Pro' => [ 'Doogee', 'S96 Pro' ], 'DOOV!!' => [ @@ -4743,6 +4768,7 @@ 'GS110' => [ 'Gigaset', 'GS110' ], 'GS190' => [ 'Gigaset', 'GS190' ], + 'GS270' => [ 'Gigaset', 'GS270' ], 'GS270 plus' => [ 'Gigaset', 'GS270 Plus' ], 'E940-2795-00' => [ 'Gigaset', 'GS4' ], 'E940-2796-00' => [ 'Gigaset', 'GS4' ], @@ -5002,6 +5028,10 @@ 'X710d' => [ 'Haipai', 'X710D' ], 'X720D' => [ 'Haipai', 'X720D' ], + 'Hammer Blade 3' => [ 'Hammer', 'Blade 3' ], + 'Hammer Energy 2' => [ 'Hammer', 'Energy 2' ], + 'Hammer Explorer' => [ 'Hammer', 'Explorer' ], + 'SN[0-9]!!' => [ 'SN10T1' => [ 'HANNspree', 'HANNSpad SN10T1', DeviceType::TABLET ], 'SN10T2' => [ 'HANNspree', 'HANNSpad SN10T2', DeviceType::TABLET ], @@ -5915,10 +5945,13 @@ 'HTC U-3w' => [ 'HTC', 'U11'], 'HTC U-3u' => [ 'HTC', 'U11'], 'HTC 2PZC100' => [ 'HTC', 'U11'], + 'HTC U11 life' => [ 'HTC', 'U11 Life'], + 'HTC U11 plus' => [ 'HTC', 'U11 Plus'], 'HTC 2Q4D200' => [ 'HTC', 'U11 Plus'], 'HTC 2Q3F2' => [ 'HTC', 'U11 Plus'], 'HTC 2Q3F3' => [ 'HTC', 'U11 Plus'], 'HTC U12+' => [ 'HTC', 'U12+'], + 'HTC U12 life' => [ 'HTC', 'U12 Life'], 'HTC Velocity!' => [ 'HTC', 'Velocity 4G'], 'HTCVelocity 4G' => [ 'HTC', 'Velocity 4G'], 'HTC Vivid' => [ 'HTC', 'Vivid'], @@ -6273,7 +6306,7 @@ '(HW-|HUAWEI )?JKM-(AL00|AL00a|AL00b|LX1|LX2|LX3|TL00)!' => [ 'Huawei', 'Enjoy 9 Plus' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6296,7 +6329,7 @@ '(HW-|HUAWEI )?BND-(AL00|AL10|L21|L24|L31|L34|TL10)!' => [ 'Huawei', 'Honor 7X' ], '(HW-|HUAWEI )?DUA-(AL00|TL00)!' => [ 'Huawei', 'Honor 7 Play' ], '(HW-|HUAWEI )?FRD-(AL00|AL10|DL00|L02|L04|L09|L14|L19)!' => [ 'Huawei', 'Honor 8' ], - '(HW-|HUAWEI )?JAT-(L41|LX1|LX3)!' => [ 'Huawei', 'Honor 8A Pro' ], + '(HW-|HUAWEI )?JAT-(L29|L41|LX1|LX3)!' => [ 'Huawei', 'Honor 8A Pro' ], '(HW-|HUAWEI )?BKK-(AL00|AL10|L21|LX2)!' => [ 'Huawei', 'Honor 8C' ], '(HW-|HUAWEI )?JSN-(AL00|AL00a|L21|L22|L23|L42|TL00)!' => [ 'Huawei', 'Honor 8X' ], '(HW-|HUAWEI )?ATH-(UL01|UL06)!' => [ 'Huawei', 'Honor ShotX' ], @@ -6310,6 +6343,7 @@ '(HW-|HUAWEI )?HRY-(LX1)!' => [ 'Huawei', 'Honor 10 Lite' ], '(HW-|HUAWEI )?YAL-(AL00|AL10|L21|L41)!' => [ 'Huawei', 'Honor 20' ], '(HW-|HUAWEI )?LRA-(AL00)!' => [ 'Huawei', 'Honor 20 Lite' ], + '(HW-|HUAWEI )?NTH-(NX9)!' => [ 'Huawei', 'Honor 50' ], '(HW-|HUAWEI )?DUK-(AL20|L09|TL30)!' => [ 'Huawei', 'Honor V9' ], '(HW-|HUAWEI )?JMM-(AL00|AL10|L22|L22HN|TL00)!' => [ 'Huawei', 'Honor V9 Play' ], '(HW-|HUAWEI )?BKL-(AL00|AL20|L04|L09)!' => [ 'Huawei', 'Honor V10' ], @@ -6327,7 +6361,7 @@ '(HW-|HUAWEI )?BLL-(L21|L22|L23)!' => [ 'Huawei', 'GR5 (2017)' ], ], - '(HW-|HUAWEI )?(ALE|ANE|CLT|D2|DAV|ELE|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ + '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ 'HUAWEI D2' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?D2-(0082|2010|5000|6070|6114)!' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?G6-(C00|L11|L22|L33|T00|U00|U10|U34|U251)!' => [ 'Huawei', 'Ascend G6' ], @@ -6359,23 +6393,26 @@ '(HW-|HUAWEI )?ELE-?(AL00|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30' ], '(HW-|HUAWEI )?VOG-?(AL00|AL10|L04|L09|L29|TL00)!' => [ 'Huawei', 'P30 Pro' ], '(HW-|HUAWEI )?MAR-?(LX1B)!' => [ 'Huawei', 'P30 Lite' ], + '(HW-|HUAWEI )?ANA-?(NX9)!' => [ 'Huawei', 'P40' ], '(HW-|HUAWEI )?JNY-?(LX1)!' => [ 'Huawei', 'P40 Lite' ], + '(HW-|HUAWEI )?ELS-?(NX9)!' => [ 'Huawei', 'P40 Pro' ], ], 'Rock-(AL00|CL00|L01|L03)!' => [ 'Huawei', 'Ascend G7' ], 'HUAWEI A168-(AL10|DL09|L09|L29)!' => [ 'Huawei', 'P9' ], - '(HW-|HUAWEI )?(ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!' => [ + '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!' => [ '(HW-|HUAWEI )?CRO-(L02|L03|L22|U00)!' => [ 'Huawei', 'Y3 (2017)' ], '(HW-|HUAWEI )?LUA-(L01|L02|L03|L13|L21|L22|L23|U02|U03|U22|U23)!' => [ 'Huawei', 'Y3 II' ], '(HW-|HUAWEI )?CUN-(AL00|L01|L02|L03|L21|L22|L23|L33|TL00|U29)!' => [ 'Huawei', 'Y5 II' ], '(HW-|HUAWEI )?MYA-(AL10|L02|L03|L11|L13|L22|L23|L41|TL10)!' => [ 'Huawei', 'Y5 (2017)' ], + '(HW-|HUAWEI )?AMN-(LX9)!' => [ 'Huawei', 'Y5 (2019)' ], '(HW-|HUAWEI )?SCC-(U21)!' => [ 'Huawei', 'Y6' ], '(HW-|HUAWEI )?SCU-(U31)!' => [ 'Huawei', 'Y6C' ], '(HW-|HUAWEI )?CAM-(L01|L03|L11|L21|L23|L32|AL00|CL00|TL00|UL00)!' => [ 'Huawei', 'Y6 II' ], '(HW-|HUAWEI )?LYO-(L01|L02|L21)!' => [ 'Huawei', 'Y6 II Compact' ], '(HW-|HUAWEI )?LDN-(AL00|L01|L21|LX2|LX3|TL00)!' => [ 'Huawei', 'Y7 Prime (2018)' ], - '(HW-|HUAWEI )?DUB-(LX1|LX3)!' => [ 'Huawei', 'Y7 Prime (2019)' ], + '(HW-|HUAWEI )?DUB-(AL20|LX1|LX3)!' => [ 'Huawei', 'Y7 Prime (2019)' ], '(HW-|HUAWEI )?ART-(L29)!' => [ 'Huawei', 'Y7p' ], ], @@ -6815,6 +6852,7 @@ 'Ultra Wave' => [ 'Hyundai', 'Ultra Wave' ], 'A7 HD' => [ 'Hyundai', 'A7 HD', DeviceType::TABLET ], 'MW1031' => [ 'Hyundai', 'MW1031', DeviceType::TABLET ], + 'IS530' => [ 'I.safe', 'IS530.0' ], 'Elektra L' => [ 'i-Joy', 'Elektra L' ], 'Elektra XL' => [ 'i-Joy', 'Elektra XL' ], 'i-Joy i-Call' => [ 'i-Joy', 'i-Call' ], @@ -8131,6 +8169,8 @@ 'W810' => [ 'K-Touch', 'W810' ], 'W880' => [ 'K-Touch', 'W880' ], + 'Land Rover Explore' => [ 'Land Rover', 'Explore' ], + '(Lanix )?(Ilium|llium)!!' => [ 'ILIUM L400' => [ 'Lanix', 'Ilium L400' ], 'Ilium L820' => [ 'Lanix', 'Ilium L820' ], @@ -8475,7 +8515,9 @@ 'Lenovo YT3-X50F' => [ 'Lenovo', 'Yoga Tablet 3', DeviceType::TABLET ], 'Lenovo YT3-X50L' => [ 'Lenovo', 'Yoga Tablet 3', DeviceType::TABLET ], 'Lenovo YT3-850F' => [ 'Lenovo', 'Yoga Tablet 3', DeviceType::TABLET ], + 'Lenovo YT-J706F' => [ 'Lenovo', 'Yoga Tab 11', DeviceType::TABLET ], 'Lenovo YT-X703F' => [ 'Lenovo', 'Yoga Tablet 3 Plus', DeviceType::TABLET ], + 'Lenovo YT-X705F' => [ 'Lenovo', 'Yoga Smart Tab', DeviceType::TABLET ], 'Lenovo YT3-X90F' => [ 'Lenovo', 'Yoga Tablet 3 Pro', DeviceType::TABLET ], 'Lenovo YT3-X90L' => [ 'Lenovo', 'Yoga Tablet 3 Pro', DeviceType::TABLET ], @@ -8497,11 +8539,16 @@ 'Lenovo TB-8705F' => [ 'Lenovo', 'Tab M8', DeviceType::TABLET ], 'Lenovo TB-J606F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], 'Lenovo TB-J616F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], + 'Lenovo TB-J706F' => [ 'Lenovo', 'Tab P11 Pro', DeviceType::TABLET ], + 'Lenovo TB-J716F' => [ 'Lenovo', 'XiaoXin Pad Pro 2021', DeviceType::TABLET ], 'Lenovo TB-X104F' => [ 'Lenovo', 'Tab E10', DeviceType::TABLET ], + 'Lenovo TB-X304L' => [ 'Lenovo', 'Tab 4 10', DeviceType::TABLET ], 'Lenovo TB-X306F' => [ 'Lenovo', 'Tab M10 HD', DeviceType::TABLET ], + 'Lenovo TB-X306X' => [ 'Lenovo', 'Tab M10 HD', DeviceType::TABLET ], 'Lenovo TB-X505F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], 'Lenovo TB-X605F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], 'Lenovo TB-X606F' => [ 'Lenovo', 'Tab M11 FHD Plus', DeviceType::TABLET ], + 'Lenovo TB-X606X' => [ 'Lenovo', 'Tab M10 FHD Plus', DeviceType::TABLET ], 'Lenovo TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'Lenovo TB2-X30F' => [ 'Lenovo', 'Tab 2 A10', DeviceType::TABLET ], @@ -8515,11 +8562,13 @@ 'Lenovo TB3-X70F' => [ 'Lenovo', 'Tab 3 10 Business', DeviceType::TABLET ], 'Lenovo TB3-X70L' => [ 'Lenovo', 'Tab 3 10 Business', DeviceType::TABLET ], 'Lenovo TB-8504F' => [ 'Lenovo', 'Tab 4 8', DeviceType::TABLET ], + 'Lenovo TB-8505F' => [ 'Lenovo', 'Tab M8 HD', DeviceType::TABLET ], 'Lenovo TB-8703F' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], 'Lenovo TB-8704F' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], 'Lenovo TB-X304F' => [ 'Lenovo', 'Tab 4 10', DeviceType::TABLET ], 'Lenovo TB-X704F' => [ 'Lenovo', 'Tab 4 10 Plus', DeviceType::TABLET ], 'Lenovo TB-X704L' => [ 'Lenovo', 'Tab 4 10 Plus', DeviceType::TABLET ], + 'Lenovo TB-X705F' => [ 'Lenovo', 'Tab P10', DeviceType::TABLET ], '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!' => [ 'IdeaTab ?K2110A-(F)!' => [ 'Lenovo', 'IdeaTab K2110', DeviceType::TABLET ], @@ -8694,6 +8743,7 @@ 'Lenovo K50t5' => [ 'Lenovo', 'K3 Note' ], 'Lenovo K520' => [ 'Lenovo', 'S5' ], 'Lenovo K6' => [ 'Lenovo', 'K6' ], + 'Lenovo L79031' => [ 'Lenovo', 'Legion Pro' ], 'Lenovo N300' => [ 'Lenovo', 'N300', DeviceType::DESKTOP ], 'Lenovo N308' => [ 'Lenovo', 'N308', DeviceType::DESKTOP ], 'Lenovo N908' => [ 'Lenovo', 'N908' ], @@ -9477,10 +9527,12 @@ 'LGM-X800[KLS]!' => [ 'LG', 'Q8' ], ], + 'LM-F100!' => [ 'LG', 'Wing' ], 'LM-G710!' => [ 'LG', 'G7 ThinQ' ], 'LM-G715!' => [ 'LG', 'G7 ThinQ' ], 'LM-G810!' => [ 'LG', 'G8s ThinQ' ], 'LM-G820!' => [ 'LG', 'G8 ThinQ' ], + 'LM-G850!' => [ 'LG', 'G8 ThinQ' ], 'LM-G900!' => [ 'LG', 'Velvet' ], 'LM-G910!' => [ 'LG', 'Velvet 4G' ], 'LM-K200!' => [ 'LG', 'K22' ], @@ -9510,6 +9562,7 @@ 'LM-X420!' => [ 'LG', 'X4 (2019)' ], 'LM-X510!' => [ 'LG', 'X5' ], 'LM-X525!' => [ 'LG', 'K12 Prime' ], + 'LM-X540!' => [ 'LG', 'K50S' ], 'LM-X625!' => [ 'LG', 'X6 (2019)' ], 'LM-Y110!' => [ 'LG', 'Folder' ], @@ -9985,6 +10038,8 @@ 'LIFETAB E10312' => [ 'Medion', 'Lifetab E10312', DeviceType::TABLET ], 'LIFETAB E10316' => [ 'Medion', 'Lifetab E10316', DeviceType::TABLET ], 'LIFETAB E10320' => [ 'Medion', 'Lifetab E10320', DeviceType::TABLET ], + 'LIFETAB E1041X' => [ 'Medion', 'Lifetab E1041X', DeviceType::TABLET ], + 'LIFETAB E1042X' => [ 'Medion', 'Lifetab E1042X', DeviceType::TABLET ], 'LIFETAB E1070X' => [ 'Medion', 'Lifetab E1070X', DeviceType::TABLET ], 'LIFETAB E1071X' => [ 'Medion', 'Lifetab E1071X', DeviceType::TABLET ], 'LIFETAB P733X' => [ 'Medion', 'Lifetab P733X', DeviceType::TABLET ], @@ -10016,9 +10071,13 @@ 'MD LIFETAB P9516' => [ 'Medion', 'Lifetab P9516', DeviceType::TABLET ], ], + 'E1050X' => [ 'Medion', 'Lifetab E1050X', DeviceType::TABLET ], + 'E1060X' => [ 'Medion', 'Lifetab E1060X', DeviceType::TABLET ], 'P1050X' => [ 'Medion', 'Lifetab P1050X', DeviceType::TABLET ], 'P1060X' => [ 'Medion', 'Lifetab P1060X', DeviceType::TABLET ], + 'P1061X' => [ 'Medion', 'Lifetab P1061X', DeviceType::TABLET ], 'X1030X' => [ 'Medion', 'Lifetab X1030X', DeviceType::TABLET ], + 'X1060X' => [ 'Medion', 'Lifetab X1060X', DeviceType::TABLET ], 'MEEG!!' => [ 'MEEG 101' => [ 'MEEG', '101' ], @@ -10353,6 +10412,9 @@ 'P300(Funbook)' => [ 'Micromax', 'Funbook P300', DeviceType::TABLET ], 'P701' => [ 'Micromax', 'Canvas Tab P701', DeviceType::TABLET ], + 'Surface Duo' => [ 'Microsoft', 'Surface Duo' ], + 'Surface Duo 2' => [ 'Microsoft', 'Surface Duo 2' ], + 'MLLED!!' => [ 'MLLED M1B' => [ 'MLLED', 'M1B' ], 'MLLED M2+' => [ 'MLLED', 'M2+' ], @@ -10762,6 +10824,7 @@ 'motorola edge 20' => [ 'Motorola', 'Edge 20' ], 'motorola edge 20 lite' => [ 'Motorola', 'Edge 20 Lite' ], 'motorola edge 20 pro' => [ 'Motorola', 'Edge 20 Pro' ], + 'motorola edge 30 pro' => [ 'Motorola', 'Edge 30 Pro' ], 'Atrix 2' => [ 'Motorola', 'ATRIX 2' ], 'Atrix 2 WeifanZ' => [ 'Motorola', 'ATRIX 2' ], @@ -10825,10 +10888,14 @@ 'moto e5 play' => [ 'Motorola', 'Moto E5 Play' ], 'moto e5 plus' => [ 'Motorola', 'Moto E5 Plus' ], 'moto e(6i)' => [ 'Motorola', 'Moto E6i' ], + 'moto e6s' => [ 'Motorola', 'Moto E6s' ], 'moto e6 play' => [ 'Motorola', 'Moto E6 Play' ], 'moto e(6) plus' => [ 'Motorola', 'Moto E6 Plus' ], + 'moto e(7) plus' => [ 'Motorola', 'Moto E7 Plus' ], + 'moto e(7) power' => [ 'Motorola', 'Moto E7 Power' ], 'moto e(7i) power' => [ 'Motorola', 'Moto E7i Power' ], 'moto e20' => [ 'Motorola', 'Moto E20' ], + 'moto e40' => [ 'Motorola', 'Moto E40' ], '(Moto)?G3$!' => [ 'Motorola', 'Moto G (2015)' ], '(Moto)?G3-TE$!' => [ 'Motorola', 'Moto G (2015)' ], 'Moto G 2015' => [ 'Motorola', 'Moto G (2015)' ], @@ -10865,14 +10932,19 @@ 'moto g(7) power' => [ 'Motorola', 'Moto G7 Power' ], 'moto g(7) supra' => [ 'Motorola', 'Moto G7 Supra' ], 'moto g(8' => [ 'Motorola', 'Moto G8' ], + 'moto g(8)' => [ 'Motorola', 'Moto G8' ], 'moto g(8) plus' => [ 'Motorola', 'Moto G8 Plus' ], 'moto g(8) power' => [ 'Motorola', 'Moto G8 Power' ], + 'moto g(8) power lite' => [ 'Motorola', 'Moto G8 Power Lite' ], 'moto g(9) play' => [ 'Motorola', 'Moto G9 Play' ], 'moto g(9) plus' => [ 'Motorola', 'Moto G9 Plus' ], 'moto g(9) power' => [ 'Motorola', 'Moto G9 Power' ], 'moto g(10)' => [ 'Motorola', 'Moto G10' ], 'moto g(20)' => [ 'Motorola', 'Moto G20' ], 'moto g(30)' => [ 'Motorola', 'Moto G30' ], + 'moto g31(w)' => [ 'Motorola', 'Moto G31w' ], + 'moto g(50)' => [ 'Motorola', 'Moto G50' ], + 'moto g51 5G' => [ 'Motorola', 'Moto G51' ], 'moto g(60)' => [ 'Motorola', 'Moto G60' ], 'moto g(60)s' => [ 'Motorola', 'Moto G60s' ], 'moto g(100)' => [ 'Motorola', 'Moto G100' ], @@ -10887,6 +10959,7 @@ 'RAZR HD' => [ 'Motorola', 'RAZR HD' ], 'RAZR M' => [ 'Motorola', 'RAZR M' ], 'RAZR MAXX' => [ 'Motorola', 'RAZR MAXX' ], + 'motorola razr 5G' => [ 'Motorola', 'RAZR 5G' ], 'Triumph' => [ 'Motorola', 'TRIUMPH' ], 'Opus One' => [ 'Motorola', 'i1' ], 'Photon' => [ 'Motorola', 'PHOTON' ], @@ -11456,8 +11529,11 @@ 'ONE E1001' => [ 'OnePlus', 'X' ], 'ONE E1003' => [ 'OnePlus', 'X' ], 'ONE E1005' => [ 'OnePlus', 'X' ], + 'AC2001' => [ 'OnePlus', 'Nord' ], 'AC2003' => [ 'OnePlus', 'Nord' ], + 'DN2101' => [ 'OnePlus', 'Nord 2' ], 'DN2103' => [ 'OnePlus', 'Nord 2' ], + 'oneplus Nord 2 5G' => [ 'OnePlus', 'Nord 2' ], 'EB2103' => [ 'OnePlus', 'Nord CE' ], 'IV2201' => [ 'OnePlus', 'Nord CE 2' ], 'BE2029' => [ 'OnePlus', 'Nord N10' ], @@ -11570,9 +11646,13 @@ 'CPH1859' => [ 'Oppo', 'F7 Youth' ], 'CPH1881' => [ 'Oppo', 'F9' ], 'CPH1823' => [ 'Oppo', 'F9 Pro' ], + 'CPH1831' => [ 'Oppo', 'R15 Pro' ], 'CPH1837' => [ 'Oppo', 'A3' ], + 'CPH1871' => [ 'Oppo', 'Find X' ], + 'CPH1875' => [ 'Oppo', 'Find X' ], 'CPH1877' => [ 'Oppo', 'RX17 Pro' ], 'CPH1893' => [ 'Oppo', 'RX17 Neo' ], + 'CPH1903' => [ 'Oppo', 'A7' ], 'CPH1907' => [ 'Oppo', 'Reno 2' ], 'CPH1911' => [ 'Oppo', 'F11' ], 'CPH1917' => [ 'Oppo', 'Reno' ], @@ -11589,6 +11669,7 @@ 'CPH2065' => [ 'Oppo', 'Reno 4Z' ], 'CPH2067' => [ 'Oppo', 'A72' ], 'CPH2069' => [ 'Oppo', 'A52' ], + 'CPH2083' => [ 'Oppo', 'A12' ], 'CPH2089' => [ 'Oppo', 'Reno 4 Pro' ], 'CPH2091' => [ 'Oppo', 'Reno 4' ], 'CPH2127' => [ 'Oppo', 'A53' ], @@ -11599,13 +11680,16 @@ 'CPH2185' => [ 'Oppo', 'A15' ], 'CPH2195' => [ 'Oppo', 'A54' ], 'CPH2197' => [ 'Oppo', 'A74' ], + 'CPH2205' => [ 'Oppo', 'Reno 5 Lite' ], 'CPH2207' => [ 'Oppo', 'Find X3 Neo' ], 'CPH2211' => [ 'Oppo', 'A94' ], 'CPH2219' => [ 'Oppo', 'A74' ], 'CPH2247' => [ 'Oppo', 'Reno 6 Pro' ], 'CPH2251' => [ 'Oppo', 'Reno 6' ], 'CPH2269' => [ 'Oppo', 'A16' ], + 'CPH2271' => [ 'Oppo', 'A16s' ], 'CPH2273' => [ 'Oppo', 'A54s' ], + 'CPH2305' => [ 'Oppo', 'Find X5 Pro' ], 'CPH2307' => [ 'Oppo', 'Find X5' ], 'CPH2371' => [ 'Oppo', 'Reno 7' ], 'Find 5' => [ 'Oppo', 'Find 5' ], @@ -11831,6 +11915,7 @@ 'Bucare Y330-U05' => [ 'Orinoquia', 'Bucare Y330' ], 'Kavak Y625-U03' => [ 'Orinoquia', 'Kavak Y625' ], + 'C21 Pro' => [ 'Oukitel', 'C21 Pro' ], 'K10000 Pro' => [ 'Oukitel', 'K10000 Pro' ], '(OV-|Overmax|Vertis)!!' => [ @@ -13399,9 +13484,12 @@ 'SMT-i9100' => [ 'Samsung', 'Galaxy Tab 7.0', DeviceType::TABLET ], 'SM-A[0-9]{3,3}!!' => [ + 'SM-A013!' => [ 'Samsung', 'Galaxy A01 Core' ], 'SM-A015!' => [ 'Samsung', 'Galaxy A01' ], 'SM-A022!' => [ 'Samsung', 'Galaxy A02' ], 'SM-A025!' => [ 'Samsung', 'Galaxy A02s' ], + 'SM-A032!' => [ 'Samsung', 'Galaxy A03 Core' ], + 'SM-A035!' => [ 'Samsung', 'Galaxy A03' ], 'SM-A037!' => [ 'Samsung', 'Galaxy A03s' ], 'SM-A102!' => [ 'Samsung', 'Galaxy A10e' ], 'SM-A105!' => [ 'Samsung', 'Galaxy A10' ], @@ -13568,6 +13656,7 @@ 'SM-G885[FSY]!' => [ 'Samsung', 'Galaxy A8 Star' ], 'SM-G8850!' => [ 'Samsung', 'Galaxy A9 Star' ], 'SM-G887!' => [ 'Samsung', 'Galaxy A9 Pro (2019)' ], + 'SM-G889!' => [ 'Samsung', 'Galaxy Xcover FieldPro' ], 'SM-G890!' => [ 'Samsung', 'Galaxy S6 Active' ], 'SM-G891!' => [ 'Samsung', 'Galaxy S7 Active' ], 'SM-G892!' => [ 'Samsung', 'Galaxy S8 Active' ], @@ -13644,11 +13733,15 @@ 'SM-M[0-9]{3,4}!!' => [ 'SM-M105!' => [ 'Samsung', 'Galaxy M10' ], + 'SM-M115!' => [ 'Samsung', 'Galaxy M11' ], + 'SM-M127!' => [ 'Samsung', 'Galaxy M12' ], 'SM-M205!' => [ 'Samsung', 'Galaxy M20' ], 'SM-M215!' => [ 'Samsung', 'Galaxy M21' ], 'SM-M225!' => [ 'Samsung', 'Galaxy M22' ], 'SM-M305!' => [ 'Samsung', 'Galaxy M30' ], + 'SM-M307!' => [ 'Samsung', 'Galaxy M30s' ], 'SM-M315!' => [ 'Samsung', 'Galaxy M31' ], + 'SM-M317!' => [ 'Samsung', 'Galaxy M31s' ], 'SM-M515!' => [ 'Samsung', 'Galaxy M51' ], 'SM-M526!' => [ 'Samsung', 'Galaxy M52' ], ], @@ -13719,7 +13812,7 @@ 'SM-T11[36]!' => [ 'Samsung', 'Galaxy Tab 3V 7.0', DeviceType::TABLET ], 'SM-T2105' => [ 'Samsung', 'Galaxy Tab 3 Kids', DeviceType::TABLET ], 'SM-T21[01257]!' => [ 'Samsung', 'Galaxy Tab 3 7.0', DeviceType::TABLET ], - 'SM-T220!' => [ 'Samsung', 'Galaxy Tab A7 Lite', DeviceType::TABLET ], + 'SM-T22[05]!' => [ 'Samsung', 'Galaxy Tab A7 Lite', DeviceType::TABLET ], 'SM-T2519' => [ 'Samsung', 'Galaxy Tab Q' ], 'SM-T255[68S]!' => [ 'Samsung', 'Galaxy Tab Q' ], 'SM-T23[012579]!' => [ 'Samsung', 'Galaxy Tab 4 7.0', DeviceType::TABLET ], @@ -13745,6 +13838,7 @@ 'SM-T53[6]!' => [ 'Samsung', 'Galaxy Tab 4 10.1 Advanced', DeviceType::TABLET ], 'SM-T53[157]!' => [ 'Samsung', 'Galaxy Tab 4 10.0', DeviceType::TABLET ], 'SM-T55[015]!' => [ 'Samsung', 'Galaxy Tab A 9.7', DeviceType::TABLET ], + 'SM-T57[5]!' => [ 'Samsung', 'Galaxy Tab Active3', DeviceType::TABLET ], 'SM-T58[057]!' => [ 'Samsung', 'Galaxy Tab A 10.1 (2016)', DeviceType::TABLET ], 'SM-T583!' => [ 'Samsung', 'Galaxy Tab Advanced2', DeviceType::TABLET ], 'SM-T56[0127]!' => [ 'Samsung', 'Galaxy Tab E 9.6', DeviceType::TABLET ], @@ -13754,7 +13848,7 @@ 'SM-T71[05]!' => [ 'Samsung', 'Galaxy Tab S2 8.0', DeviceType::TABLET ], 'SM-T71[39]!' => [ 'Samsung', 'Galaxy Tab S2 8.0 (2016)', DeviceType::TABLET ], 'SM-T72[057]!' => [ 'Samsung', 'Galaxy Tab S5e', DeviceType::TABLET ], - 'SM-T733!' => [ 'Samsung', 'Galaxy Tab S7 12.4 FE (2021)', DeviceType::TABLET ], + 'SM-T73[36]!' => [ 'Samsung', 'Galaxy Tab S7 12.4 FE (2021)', DeviceType::TABLET ], 'SM-T80[0157]!' => [ 'Samsung', 'Galaxy Tab S 10.5', DeviceType::TABLET ], 'SM-T81[057]!' => [ 'Samsung', 'Galaxy Tab S2 9.7', DeviceType::TABLET ], 'SM-T81[39]!' => [ 'Samsung', 'Galaxy Tab S2 9.7 (2016)', DeviceType::TABLET ], @@ -13762,7 +13856,7 @@ 'SM-T82[057]!' => [ 'Samsung', 'Galaxy Tab S3 9.7', DeviceType::TABLET ], 'SM-T83[057]!' => [ 'Samsung', 'Galaxy Tab S4 10.5', DeviceType::TABLET ], 'SM-T86[057]!' => [ 'Samsung', 'Galaxy Tab S6 10.5', DeviceType::TABLET ], - 'SM-T87[0]!' => [ 'Samsung', 'Galaxy Tab S7 11.0', DeviceType::TABLET ], + 'SM-T87[05]!' => [ 'Samsung', 'Galaxy Tab S7 11.0', DeviceType::TABLET ], 'SM-T90[05]!' => [ 'Samsung', 'Galaxy Tab Pro 12.2', DeviceType::TABLET ], 'SM-T92[7]!' => [ 'Samsung', 'Galaxy View2 (2019)', DeviceType::TABLET ], 'SM-T97[06]!' => [ 'Samsung', 'Galaxy Tab S7+ 12.4 (2020)', DeviceType::TABLET ], @@ -13771,7 +13865,9 @@ 'SM-X200' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], 'SM-X205' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], + 'SM-X700' => [ 'Samsung', 'Galaxy Tab S8', DeviceType::TABLET ], 'SM-X900' => [ 'Samsung', 'Galaxy Tab S8 Ultra', DeviceType::TABLET ], + 'SM-X906!' => [ 'Samsung', 'Galaxy Tab S8 Ultra', DeviceType::TABLET ], 'SM-V700' => [ 'Samsung', 'Galaxy Gear', DeviceType::WATCH ], @@ -14248,6 +14344,8 @@ 'LC-((A|S|LX)[0-9]{1,3}[A-Z])!' => [ 'Sharp', 'Aquos $1', DeviceType::TELEVISION ], 'LCD-((S|V|LX|UF)[0-9]{1,3}[A-Z])!' => [ 'Sharp', 'Aquos $1', DeviceType::TELEVISION ], + 'SHIFT6m' => [ 'Shift', 'SHIFT6m' ], + 'X-treme PQ11' => [ 'Sigma Mobile', 'X-treme PQ11' ], 'X-treme PQ15' => [ 'Sigma Mobile', 'X-treme PQ15' ], 'X-tremePQ22' => [ 'Sigma Mobile', 'X-treme PQ22' ], @@ -14386,6 +14484,8 @@ 'sonim/XP7700' => [ 'Sonim', 'XP7700' ], ], + 'XP8800' => [ 'Sonim', 'XP8800' ], + 'OMS1 6' => [ 'Sony Ericsson', 'A8i' ], 'C[0-9]{4,4}!!' => [ @@ -14506,8 +14606,10 @@ ], 'XQ-AT51' => [ 'Sony', 'Xperia 1 II' ], + 'XQ-AT52' => [ 'Sony', 'Xperia 1 II' ], 'XQ-BC52' => [ 'Sony', 'Xperia 1 III' ], 'XQ-AS52' => [ 'Sony', 'Xperia 5 II' ], + 'XQ-BQ52' => [ 'Sony', 'Xperia 5 III' ], 'XQ-AU52' => [ 'Sony', 'Xperia 10 II' ], 'XQ-BT52' => [ 'Sony', 'Xperia 10 III' ], 'XQ-AD52' => [ 'Sony', 'Xperia L4' ], @@ -15213,6 +15315,9 @@ 'Tabra QAV801' => [ 'Tabra', 'QAV801', DeviceType::TABLET ], + 'T671H' => [ 'TCL', '20 SE' ], + 'T774H' => [ 'TCL', '20L' ], + 'TCL!!' => [ 'TCL-309T' => [ 'TCL', '309T' ], 'TCL-550' => [ 'TCL', '550' ], @@ -16040,7 +16145,14 @@ ], 'A6S' => [ 'TWM', 'Amazing A6S' ], + 'Armor 7' => [ 'Ulefone', 'Armor 7' ], + 'Armor 8' => [ 'Ulefone', 'Armor 8' ], 'Armor 9' => [ 'Ulefone', 'Armor 9' ], + 'Armor 9E' => [ 'Ulefone', 'Armor 9E' ], + 'Armor 11T 5G' => [ 'Ulefone', 'Armor 11T' ], + 'Armor X5' => [ 'Ulefone', 'Armor X5' ], + 'Armor X8' => [ 'Ulefone', 'Armor X8' ], + 'Power Armor 13' => [ 'Ulefone', 'Power Armor 13' ], 'Be Touch 2' => [ 'Ulefone', 'Be Touch 2' ], 'Ulefone Be Touch2' => [ 'Ulefone', 'Be Touch 2' ], 'Note 9P' => [ 'Ulefone', 'Note 9P' ], @@ -16388,6 +16500,7 @@ 'vivo E1t' => [ 'Vivo', 'E1t' ], 'vivo E3' => [ 'Vivo', 'E3' ], 'vivo E5' => [ 'Vivo', 'E5' ], + 'vivo NEX S' => [ 'Vivo', 'NEX S' ], 'vivo S1' => [ 'Vivo', 'S1' ], 'vivo S3' => [ 'Vivo', 'S3' ], 'vivo S3+' => [ 'Vivo', 'S3+' ], @@ -16589,6 +16702,8 @@ 'vivo Y937' => [ 'Vivo', 'Y937' ], ], + 'V1916A' => [ 'Vivo', 'iQOO Pro' ], + 'VTAB1008' => [ 'Vizio', 'VTAB1008', DeviceType::TABLET ], 'VTAB3010' => [ 'Vizio', 'VTAB3010', DeviceType::TABLET ], 'VAP430' => [ 'Vizio', 'Co-Star', DeviceType::TELEVISION, Flag::GOOGLETV ], @@ -16875,7 +16990,10 @@ 'SUBLIM' => [ 'Wiko', 'Sublim' ], 'SUNSET' => [ 'Wiko', 'Sunset' ], 'SUNSET2' => [ 'Wiko', 'Sunset 2' ], + 'W P200' => [ 'Wiko', 'View Max' ], 'View2 Go' => [ 'Wiko', 'View2 Go' ], + 'W-P311-EEA' => [ 'Wiko', 'View3' ], + 'W-V730-EEA' => [ 'Wiko', 'View4 Lite' ], 'WAX' => [ 'Wiko', 'Wax' ], 'Wileyfox Spark' => [ 'Wileyfox', 'Spark' ], 'Wileyfox Spark +' => [ 'Wileyfox', 'Spark +' ], @@ -16975,6 +17093,7 @@ 'wm8710-tvbox' => [ 'WonderMedia', 'WM8710', DeviceType::TELEVISION ], 'WM8850-mid' => [ 'WonderMedia', 'WM8850', DeviceType::TABLET ], 'PAD1001' => [ 'Wortmann', 'TERRA MOBILE PAD 1001', DeviceType::TABLET ], + 'TERRA PAD 1004' => [ 'Wortmann', 'TERRA PAD 1004', DeviceType::TABLET ], 'Woxter!!' => [ 'Woxter android box 500' => [ 'Woxter', 'Android TV 500', DeviceType::TELEVISION ], @@ -17079,6 +17198,7 @@ 'MI 8 SE' => [ 'Xiaomi', 'Mi 8 SE' ], 'MI 8 UD' => [ 'Xiaomi', 'Mi 8 UD' ], 'MI 8 Lite' => [ 'Xiaomi', 'Mi 8 Lite' ], + 'MI 8 Pro' => [ 'Xiaomi', 'Mi 8 Pro' ], 'MI 9' => [ 'Xiaomi', 'Mi 9' ], 'Mi 9 Lite' => [ 'Xiaomi', 'Mi 9 Lite' ], 'Mi9 Pro 5G' => [ 'Xiaomi', 'Mi 9 Pro' ], @@ -17086,8 +17206,13 @@ 'Mi 9T' => [ 'Xiaomi', 'Mi 9T' ], 'Mi 9T Pro' => [ 'Xiaomi', 'Mi 9T Pro' ], 'Mi 10' => [ 'Xiaomi', 'Mi 10' ], + 'Mi 10 Pro' => [ 'Xiaomi', 'Mi 10 Pro' ], + 'Mi 10 Lite 5G' => [ 'Xiaomi', 'Mi 10 Lite' ], + 'Mi 10T Lite' => [ 'Xiaomi', 'Mi 10T Lite' ], + 'Mi 11 Lite 5G' => [ 'Xiaomi', 'Mi 11 Lite' ], 'Mi Note 10' => [ 'Xiaomi', 'Mi Note 10' ], 'Mi Note 10 Lite' => [ 'Xiaomi', 'Mi Note 10 Lite' ], + 'Mi Note 10 Pro' => [ 'Xiaomi', 'Mi Note 10 Pro' ], '(Xiaomi|Xiaomi Mi|MI) Note!!' => [ '(Xiaomi|Xiaomi Mi|MI) Note (LTE|4G)$!' => [ 'Xiaomi', 'Mi Note' ], @@ -17104,6 +17229,7 @@ '(Xiaomi )?(MI )?MIX 2$!' => [ 'Xiaomi', 'Mi MIX 2' ], '(Xiaomi )?(MI )?MIX 2S$!' => [ 'Xiaomi', 'Mi MIX 2S' ], 'Mi MIX 3' => [ 'Xiaomi', 'Mi MIX 3' ], + 'Mi MIX 3 5G' => [ 'Xiaomi', 'Mi MIX 3' ], '(Xiaomi )?20!!' => [ '(Xiaomi )?20130(61)!' => [ 'Xiaomi', 'Mi 3' ], @@ -17132,12 +17258,16 @@ '(Xiaomi )?(Redmi|HM) ?5$!' => [ 'Xiaomi', 'Redmi 5' ], '(Xiaomi )?(Redmi|HM) ?5 Plus!' => [ 'Xiaomi', 'Redmi 5 Plus' ], '(Xiaomi )?(Redmi|HM) ?5A!' => [ 'Xiaomi', 'Redmi 5A' ], + '(Xiaomi )?(Redmi|HM) ?6$!' => [ 'Xiaomi', 'Redmi 6' ], '(Xiaomi )?(Redmi|HM) ?6A!' => [ 'Xiaomi', 'Redmi 6A' ], '(Xiaomi )?(Redmi|HM) ?6 Pro!' => [ 'Xiaomi', 'Redmi 6 Pro' ], '(Xiaomi )?(Redmi|HM) ?7$!' => [ 'Xiaomi', 'Redmi 7' ], '(Xiaomi )?(Redmi|HM) ?7A!' => [ 'Xiaomi', 'Redmi 7A' ], '(Xiaomi )?(Redmi|HM) ?8$!' => [ 'Xiaomi', 'Redmi 8' ], + '(Xiaomi )?(Redmi|HM) ?8A!' => [ 'Xiaomi', 'Redmi 8A' ], + '(Xiaomi )?Redmi[ \-]K20$!' => [ 'Xiaomi', 'Redmi K20' ], '(Xiaomi )?Redmi[ \-]K20 Pro!' => [ 'Xiaomi', 'Redmi K20 Pro' ], + '(Xiaomi )?Redmi[ \-]K30 Pro!' => [ 'Xiaomi', 'Redmi K30 Pro' ], '(Xiaomi )?Redmi[ \-]S2$!' => [ 'Xiaomi', 'Redmi S2' ], '(Xiaomi )?Redmi[ \-]Y1$!' => [ 'Xiaomi', 'Redmi Y1' ], '(Xiaomi )?Redmi[ \-]Y1 Lite!' => [ 'Xiaomi', 'Redmi Y1 Lite' ], @@ -17154,6 +17284,7 @@ '(Xiaomi )?Redmi[ \-]Note ?5$!' => [ 'Xiaomi', 'Redmi Note 5' ], '(Xiaomi )?Redmi[ \-]Note ?5A!' => [ 'Xiaomi', 'Redmi Note 5A' ], '(Xiaomi )?Redmi[ \-]Note 5 Pro!' => [ 'Xiaomi', 'Redmi Note 5 Pro' ], + '(Xiaomi )?Redmi[ \-]Note 6 Pro!' => [ 'Xiaomi', 'Redmi Note 6 Pro' ], '(Xiaomi )?Redmi[ \-]Note 7$!' => [ 'Xiaomi', 'Redmi Note 7' ], '(Xiaomi )?Redmi[ \-]Note 7 Pro!' => [ 'Xiaomi', 'Redmi Note 7 Pro' ], '(Xiaomi )?Redmi[ \-]Note 8$!' => [ 'Xiaomi', 'Redmi Note 8' ], @@ -17183,14 +17314,22 @@ '(Xiaomi |HM)?20160(51)!' => [ 'Xiaomi', 'Redmi Note 4' ], ], + '21061119DG' => [ 'Xiaomi', 'Redmi 10' ], '2107113SG' => [ 'Xiaomi', 'Mi 11T Pro' ], '21081111RG' => [ 'Xiaomi', 'Mi 11T' ], + '2201122G' => [ 'Xiaomi', 'Mi 12 Pro' ], + '2201123G' => [ 'Xiaomi', 'Mi 12' ], + + '21091116AG' => [ 'Xiaomi', 'Poco M4 Pro' ], + '2201116PG' => [ 'Xiaomi', 'Poco X4 Pro' ], + 'M1908C3JGG' => [ 'Xiaomi', 'Redmi Note 8 (2021)' ], 'M2002J9G' => [ 'Xiaomi', 'Mi 10 Lite' ], 'M2003J15SC' => [ 'Xiaomi', 'Redmi Note 9' ], 'M2004J19C' => [ 'Xiaomi', 'Redmi 9' ], 'M2006C3LG' => [ 'Xiaomi', 'Redmi 9A' ], 'M2006C3MG' => [ 'Xiaomi', 'Redmi 9C' ], + 'M2006C3MNG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2007J17G' => [ 'Xiaomi', 'Mi 10T Lite' ], 'M2007J20CG' => [ 'Xiaomi', 'Poco X3' ], 'M2007J22G' => [ 'Xiaomi', 'Redmi Note 9T' ], @@ -17203,19 +17342,27 @@ 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], 'M2101K7AG' => [ 'Xiaomi', 'Redmi Note 10' ], + 'M2101K7BG' => [ 'Xiaomi', 'Redmi Note 10s' ], 'M2101K7BNY' => [ 'Xiaomi', 'Redmi Note 10s' ], 'M2101K9AG' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2101K9G' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2102J20SG' => [ 'Xiaomi', 'Poco X3 Pro' ], + 'M2102J20SI' => [ 'Xiaomi', 'Poco X3 Pro' ], + 'M2102K1C' => [ 'Xiaomi', 'Mi 11 Ultra' ], + 'M2102K1G' => [ 'Xiaomi', 'Mi 11 Ultra' ], 'M2103K19G' => [ 'Xiaomi', 'Redmi Note 10' ], + 'M2103K19PG' => [ 'Xiaomi', 'Poco M3 Pro' ], '(Xiaomi |HM)?21!!' => [ '(Xiaomi |HM)?21091(19)!' => [ 'Xiaomi', 'Mi 11 Lite' ], ], 'POCOPHONE F1' => [ 'Xiaomi', 'Pocophone F1' ], + 'POCO F1' => [ 'Xiaomi', 'Pocophone F1' ], 'POCO F2 Pro' => [ 'Xiaomi', 'Poco F2 Pro' ], + 'SHARK PRS-H0' => [ 'Xiaomi', 'Black Shark 4' ], + 'Xiaomi MDT2!' => [ 'Xiaomi', 'Mi 5x' ], 'Xiaomi MCT1!' => [ 'Xiaomi', 'Mi 6' ], 'Xiaomi MAT136!' => [ 'Xiaomi', 'Redmi 4X' ], @@ -17252,8 +17399,12 @@ '(Xiaomi|Xiaomi Mi|MI) Pad$!' => [ 'Xiaomi', 'Mi Pad', DeviceType::TABLET ], '(Xiaomi|Xiaomi Mi|MI) Pad 2!' => [ 'Xiaomi', 'Mi Pad 2', DeviceType::TABLET ], '(Xiaomi|Xiaomi Mi|MI) Pad 3!' => [ 'Xiaomi', 'Mi Pad 3', DeviceType::TABLET ], + '(Xiaomi|Xiaomi Mi|MI) Pad 4$!' => [ 'Xiaomi', 'Mi Pad 4', DeviceType::TABLET ], + '(Xiaomi|Xiaomi Mi|MI) Pad 4 Plus!' => [ 'Xiaomi', 'Mi Pad 4 Plus', DeviceType::TABLET ], ], + '21051182G' => [ 'Xiaomi', 'Mi Pad 5', DeviceType::TABLET ], + '(Xiaomi|Xiaomi Mi|MI)Box!!' => [ 'MiBOX iCNTV' => [ 'Xiaomi', 'Mi Box 1', DeviceType::TELEVISION ], '(Xiaomi|Xiaomi Mi|MI)Box1S!' => [ 'Xiaomi', 'Mi Box 1S', DeviceType::TELEVISION ], @@ -18729,6 +18880,7 @@ 'GM 6' => [ 'General Mobile', 'GM6' ], 'GM 6 d' => [ 'General Mobile', 'GM6' ], 'GM 8 d' => [ 'General Mobile', 'GM8' ], + 'GM8 go' => [ 'General Mobile', 'GM8 Go' ], 'GM Discovery tab 8' => [ 'General Mobile', 'tab 8', DeviceType::TABLET ], 'etab5' => [ 'General Mobile', 'Etab 5', DeviceType::TABLET ], @@ -19133,8 +19285,16 @@ 'Z4 mini' => [ 'Q-Mobile', 'Noir Quatro Z4 mini' ], + 'RMX1931' => [ 'Realme', 'X2 Pro' ], + 'RMX1971' => [ 'Realme', '5 Pro' ], 'RMX1993' => [ 'Realme', 'X2' ], + 'RMX2001' => [ 'Realme', '6' ], 'RMX2002' => [ 'Realme', '6i' ], + 'RMX2063' => [ 'Realme', '6 Pro' ], + 'RMX2075' => [ 'Realme', 'X50 Pro' ], + 'RMX2086' => [ 'Realme', 'X3 SuperZoom' ], + 'RMX2144' => [ 'Realme', 'X50' ], + 'RMX2155' => [ 'Realme', '7' ], 'RMX2170' => [ 'Realme', '7 Pro' ], 'RMX2202' => [ 'Realme', 'GT' ], 'RMX3081' => [ 'Realme', '8 Pro' ], @@ -19144,6 +19304,7 @@ 'RMX3301' => [ 'Realme', 'GT 2 Pro' ], 'RMX3311' => [ 'Realme', 'GT 2' ], 'RMX3363' => [ 'Realme', 'GT Master' ], + 'RMX3370' => [ 'Realme', 'GT Neo2' ], 'Soshphone 4G' => [ 'SoshPhone', '4G' ], From b43c9ef661445ab147801c6ffb477ea15081cfe2 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 10:41:47 +0200 Subject: [PATCH 520/540] Add Huawei Browser --- src/Analyser/Header/Useragent/Browser.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index b79317df8..555961f90 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -1984,10 +1984,18 @@ private function detectDesktopBrowsers($ua) private function detectMobileBrowsers($ua) { - if (!preg_match('/(Ninesky|Skyfire|Dolphin|QQ|360|QHBrowser|Mercury|iBrowser|Puffin|MiniB|MxNitro|Sogou|Xiino|Palmscape|WebPro|Vision|MiuiBrowser)/ui', $ua)) { + if (!preg_match('/(Huawei|Ninesky|Skyfire|Dolphin|QQ|360|QHBrowser|Mercury|iBrowser|Puffin|MiniB|MxNitro|Sogou|Xiino|Palmscape|WebPro|Vision|MiuiBrowser)/ui', $ua)) { return; } + /* Huawei Browser */ + + if (preg_match('/HuaweiBrowser\/([0-9.]*)/u', $ua, $match)) { + $this->data->browser->name = 'Huawei Browser'; + $this->data->browser->version = new Version([ 'value' => $match[1], 'details' => 2 ]); + $this->data->browser->type = Constants\BrowserType::BROWSER; + } + /* Xiaomi MIUI Browser */ if (preg_match('/MiuiBrowser\/([0-9.]*)/u', $ua, $match)) { From f481df6513d4b586ace5cf3736d7a86ffb9ca28b Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 10:44:05 +0200 Subject: [PATCH 521/540] Filter out Huawei HMSCore from model name --- src/Analyser/Header/Useragent/Os.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index efaf8b523..0931ff57b 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -310,6 +310,7 @@ private function detectAndroid($ua) $candidates[$c] = preg_replace('/^[a-zA-Z][a-zA-Z][-_][a-zA-Z][a-zA-Z]\s+/u', '', $candidates[$c]); $candidates[$c] = preg_replace('/(.*) - [0-9\.]+ - (?:with Google Apps - )?API [0-9]+ - [0-9]+x[0-9]+/', '\\1', $candidates[$c]); $candidates[$c] = preg_replace('/^sprd-/u', '', $candidates[$c]); + $candidates[$c] = preg_replace('/; HMSCore.*/u', '', $candidates[$c]); } $candidates = array_unique($candidates); From b79d5d7e59465e1174669ea6166874a47c73576d Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 11:58:29 +0200 Subject: [PATCH 522/540] Add detection of HarmonyOS --- data/indices/models-android.php | 32 ++++++++++++++++------------ data/models-android.php | 3 ++- src/Analyser/Header/Useragent/Os.php | 19 +++++++++++++++++ tests/data/mobile/os-android.yaml | 4 ++++ tests/data/mobile/os-harmony.yaml | 8 +++++++ 5 files changed, 51 insertions(+), 15 deletions(-) create mode 100644 tests/data/mobile/os-harmony.yaml diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 312deec46..3b026cf9f 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -15,7 +15,7 @@ 7 => '(Hisense )?(LED[0-9]{2,2}(G|K|L|EC|XT)[0-9]{2,3})!', 8 => '[SX06][0-9]{2,2}HT!!', 9 => '(Huawei )?[MSTX](1|2|7|8|10)\\-[A-Z0-9][0-9]{2,2}!!', - 10 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 10 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 11 => 'G[0-9]{3,3}!!', 12 => 'Y[0-9]{3,3}!!', 13 => '[0-9AS][0-9]{2,2}HW!!', @@ -1030,7 +1030,7 @@ 13 => 'AT1G*', 14 => 'AT7E', 15 => 'ATP515CKIT', - 16 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 16 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', @@ -1877,7 +1877,7 @@ 0 => 'Dream', 1 => '(GIO-)?(GiONEE[- ])?Dream D1!', 2 => 'Droid Incredible', - 3 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 3 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 4 => 'DroniX-0.5', 5 => 'Droid', 6 => 'DROID', @@ -1925,6 +1925,10 @@ 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', ), + '@DV' => + array ( + 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + ), '@DW' => array ( 0 => 'DW-PS3G5', @@ -2300,7 +2304,7 @@ 25 => 'Flylife!!', 26 => 'Fly Flylife Web 7.85 Slim', 27 => 'Flyer', - 28 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 28 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 29 => 'Flair E1', 30 => 'Flair E2', 31 => 'FlairE3', @@ -2962,7 +2966,7 @@ 7 => '(Huawei )?[MSTX](1|2|7|8|10)\\-[A-Z0-9][0-9]{2,2}!!', 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 10 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 10 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', @@ -2992,7 +2996,7 @@ ), '@HW' => array ( - 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', @@ -3271,7 +3275,7 @@ ), '@JK' => array ( - 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', ), '@JM' => array ( @@ -4388,7 +4392,7 @@ ), '@MR' => array ( - 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', ), '@MS' => array ( @@ -4657,7 +4661,7 @@ ), '@NC' => array ( - 0 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', ), '@NE' => array ( @@ -5767,7 +5771,7 @@ '@PO' => array ( 0 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 1 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 1 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 2 => 'PocketBook A7', 3 => 'PocketBook A10', 4 => 'PocketBook A10 3G', @@ -6617,7 +6621,7 @@ 0 => 'Slider SL101', 1 => 'SL930', 2 => '(HP|Slate)!!', - 3 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 3 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 4 => 'Slidepad!!', 5 => 'SLIDE', ), @@ -6969,7 +6973,7 @@ 6 => 'TA10CA3', 7 => '(tablet )?fnac!!', 8 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 9 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 9 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 10 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 11 => 'TA-FONE!!', 12 => 'TAB1011', @@ -7152,7 +7156,7 @@ 0 => 'Tilapia', 1 => 'Titan TV S320', 2 => 'TIQ-1049', - 3 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 3 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 4 => '(Karbonn|Titanium)!!', 5 => 'TI320-DU', 6 => 'TI320-DU TV', @@ -7275,7 +7279,7 @@ 15 => 'Trekker-X4', 16 => 'TR10CS1', 17 => 'TripNiCE Pyramid', - 18 => '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 18 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 19 => 'TR10RS1', 20 => '(KAZAM|Thunder|Tornado|Trooper)!!', 21 => 'Triumph', diff --git a/data/models-android.php b/data/models-android.php index f9411e43b..1fec04213 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -6292,7 +6292,7 @@ '(HW-|HUAWEI )?CRR-(L09|CL00|CL20|TL00|UL00|UL20)!' => [ 'Huawei', 'Mate S' ], ], - '(HW-|HUAWEI )?(ATU|DRA|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!' => [ + '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!' => [ '(HW-|HUAWEI )?TIT-(AL00|CL00|CL10|L01|TL00|U02)!' => [ 'Huawei', 'Enjoy 5' ], '(HW-|HUAWEI )?TAG-(AL00|CL00|L13|TL00)!' => [ 'Huawei', 'Enjoy 5S' ], '(HW-|HUAWEI )?NCE-(AL00|AL10|TL10)!' => [ 'Huawei', 'Enjoy 6' ], @@ -6304,6 +6304,7 @@ '(HW-|HUAWEI )?POT-(AL00a|LX1|LX1AF|LX1T|LX2J|LX3)!' => [ 'Huawei', 'Enjoy 9S' ], '(HW-|HUAWEI )?MRD-(AL00|LX1|LX1F|LX1N|LX2|LX3)!' => [ 'Huawei', 'Enjoy 9e' ], '(HW-|HUAWEI )?JKM-(AL00|AL00a|AL00b|LX1|LX2|LX3|TL00)!' => [ 'Huawei', 'Enjoy 9 Plus' ], + '(HW-|HUAWEI )?DVC-(AN20)!' => [ 'Huawei', 'Enjoy 20 Pro' ], ], '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 0931ff57b..7240de78f 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -310,6 +310,8 @@ private function detectAndroid($ua) $candidates[$c] = preg_replace('/^[a-zA-Z][a-zA-Z][-_][a-zA-Z][a-zA-Z]\s+/u', '', $candidates[$c]); $candidates[$c] = preg_replace('/(.*) - [0-9\.]+ - (?:with Google Apps - )?API [0-9]+ - [0-9]+x[0-9]+/', '\\1', $candidates[$c]); $candidates[$c] = preg_replace('/^sprd-/u', '', $candidates[$c]); + $candidates[$c] = preg_replace('/^HarmonyOS; /u', '', $candidates[$c]); + $candidates[$c] = preg_replace('/; GMSCore.*/u', '', $candidates[$c]); $candidates[$c] = preg_replace('/; HMSCore.*/u', '', $candidates[$c]); } @@ -391,6 +393,23 @@ private function detectAndroid($ua) } } + + /* Harmony OS */ + + if (preg_match('/HarmonyOS/u', $ua)) { + $this->data->os->name = 'Harmony OS'; + $this->data->os->version = new Version(); + + + if (preg_match('/; Android ([0-9\.]+);/u', $ua, $match)) { + $this->data->os->family = new Family([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[1], 'details' => 3 ]) + ]); + } + } + + /* Aliyun OS */ if (preg_match('/Aliyun/u', $ua) || preg_match('/YunOs/ui', $ua)) { diff --git a/tests/data/mobile/os-android.yaml b/tests/data/mobile/os-android.yaml index cdc5b9fd0..e35b78309 100644 --- a/tests/data/mobile/os-android.yaml +++ b/tests/data/mobile/os-android.yaml @@ -366,3 +366,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 11; moto g(9) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Mobile Safari/537.36' readable: 'Chrome 100 on a Motorola Moto G9 Play running Android 11' result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '11' }, device: { type: mobile, subtype: smart, manufacturer: Motorola, model: 'Moto G9 Play' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; ELS-NX9; HMSCore 6.4.0.312) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.1.302 Mobile Safari/537.36' + readable: 'Huawei Browser 12.0 on a Huawei P40 Pro running Android 10' + result: { browser: { name: 'Huawei Browser', family: { name: Chrome, version: 92 }, version: '12.0', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: 'P40 Pro' } } diff --git a/tests/data/mobile/os-harmony.yaml b/tests/data/mobile/os-harmony.yaml new file mode 100644 index 000000000..2ab8818b0 --- /dev/null +++ b/tests/data/mobile/os-harmony.yaml @@ -0,0 +1,8 @@ +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; HarmonyOS; DVC-AN20; HMSCore 6.4.0.312) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.1.302 Mobile Safari/537.36' + readable: 'Huawei Browser 12.0 on a Huawei Enjoy 20 Pro running Harmony OS' + result: { browser: { name: 'Huawei Browser', family: { name: Chrome, version: 92 }, version: '12.0', type: browser }, engine: { name: Blink }, os: { name: 'Harmony OS', family: { name: Android, version: '10' } }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: 'Enjoy 20 Pro' } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; HarmonyOS; HLK-AL00; HMSCore 6.3.0.327; GMSCore 21.33.14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.0.303 Mobile Safari/537.36' + readable: 'Huawei Browser 12.0 on a Huawei Honor 9X running Harmony OS' + result: { browser: { name: 'Huawei Browser', family: { name: Chrome, version: 92 }, version: '12.0', type: browser }, engine: { name: Blink }, os: { name: 'Harmony OS', family: { name: Android, version: '10' } }, device: { type: mobile, subtype: smart, manufacturer: Huawei, model: 'Honor 9X' } } From 9aef4e4cfacc091b7f3732e03e38fade40b8435a Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 12:03:13 +0200 Subject: [PATCH 523/540] Work around deprecated null parameters in PHP 8.1 --- src/Data/Applications.php | 4 ++++ src/Model/Version.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Data/Applications.php b/src/Data/Applications.php index 0ee86076d..1b57af56c 100644 --- a/src/Data/Applications.php +++ b/src/Data/Applications.php @@ -78,6 +78,10 @@ public static function identifyOther($ua) } public static function identifyBot($ua) { + if (is_null($ua)) { + return; + } + require_once __DIR__ . '/../../data/regexes/applications-bots.php'; if (preg_match(self::$BOTS_REGEX, $ua)) { diff --git a/src/Model/Version.php b/src/Model/Version.php index 3c7079d66..101091b8d 100644 --- a/src/Model/Version.php +++ b/src/Model/Version.php @@ -91,7 +91,7 @@ public function is() public function getParts() { - $parts = explode('.', $this->value); + $parts = !is_null($this->value) ? explode('.', $this->value) : []; return (object) [ 'major' => !empty($parts[0]) ? intval($parts[0]) : 0, From 89ef9fbb264c09eca25c39ca92d796933187fd01 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 12:07:14 +0200 Subject: [PATCH 524/540] Fix code formatting errors --- src/Analyser/Header/Useragent/Os.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 7240de78f..b99b7fde6 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -269,9 +269,9 @@ private function detectAndroid($ua) if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Linux\/[0-9.+]+ Android\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { $candidates[] = $match[1]; - } else if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Android(_OS)?\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { + } elseif (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Android(_OS)?\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { $candidates[] = $match[1]; - } else if (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Release\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { + } elseif (preg_match('/^(?U)([^\/]+)(?U)(?:(?:_CMCC_TD|_CMCC|_TD|_TDLTE|_LTE)?\/[^\/]*)? Release\/[0-9.]+/u', $this->removeKnownPrefixes($ua), $match)) { $candidates[] = $match[1]; } } elseif (preg_match('/Mozilla\//ui', $ua)) { @@ -402,9 +402,9 @@ private function detectAndroid($ua) if (preg_match('/; Android ([0-9\.]+);/u', $ua, $match)) { - $this->data->os->family = new Family([ - 'name' => 'Android', - 'version' => new Version([ 'value' => $match[1], 'details' => 3 ]) + $this->data->os->family = new Family([ + 'name' => 'Android', + 'version' => new Version([ 'value' => $match[1], 'details' => 3 ]) ]); } } @@ -1885,7 +1885,7 @@ private function detectUnix($ua) if (preg_match('/SunOS 5\.([123456](?:\.[0-9\.]*)?) /u', $ua, $match)) { $this->data->os->version = new Version([ 'value' => '2.' . $match[1] ]); - } else if (preg_match('/SunOS 5\.([0-9\.]*)/u', $ua, $match)) { + } elseif (preg_match('/SunOS 5\.([0-9\.]*)/u', $ua, $match)) { $this->data->os->version = new Version([ 'value' => $match[1] ]); } From 7dc6f9e966d2b9e783554abf75484e5cfcbe95f4 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 14:50:46 +0200 Subject: [PATCH 525/540] Prevent the minimized Chrome useragent string from being flagged as camouflaged --- src/Analyser/Camouflage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Camouflage.php b/src/Analyser/Camouflage.php index 7740277a3..2dfc61d8e 100644 --- a/src/Analyser/Camouflage.php +++ b/src/Analyser/Camouflage.php @@ -122,7 +122,7 @@ private function &detectCamouflagedAsChrome($ua) { if ($this->data->isBrowser('Chrome')) { if (preg_match('/(?:Chrome|CrMo|CriOS)\//u', $ua) - && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,3}\.[0-9]\.[0-9]{3,4}\.[0-9]+)/u', $ua) + && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,3}\.[0-9]\.[0-9]+\.[0-9]+)/u', $ua) ) { $this->data->features[] = 'wrongVersion'; $this->data->camouflage = true; From 8780e67d9492f68a3406b2353017d576c67fbe44 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 15:08:34 +0200 Subject: [PATCH 526/540] Add support for Chrome reduced UA --- src/Analyser/Camouflage.php | 2 +- src/Analyser/Header/Useragent/Browser.php | 45 +++++++++++++++-------- src/Analyser/Header/Useragent/Os.php | 7 ++++ tests/data/mobile/browser-chrome.yaml | 12 ++++++ 4 files changed, 50 insertions(+), 16 deletions(-) diff --git a/src/Analyser/Camouflage.php b/src/Analyser/Camouflage.php index 2dfc61d8e..90b14f214 100644 --- a/src/Analyser/Camouflage.php +++ b/src/Analyser/Camouflage.php @@ -122,7 +122,7 @@ private function &detectCamouflagedAsChrome($ua) { if ($this->data->isBrowser('Chrome')) { if (preg_match('/(?:Chrome|CrMo|CriOS)\//u', $ua) - && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,3}\.[0-9]\.[0-9]+\.[0-9]+)/u', $ua) + && !preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9]{1,3}\.[0-9]\.(0\.0|[0-9]{3,4}\.[0-9]+))/u', $ua) ) { $this->data->features[] = 'wrongVersion'; $this->data->camouflage = true; diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index 4d560e560..5cc73c275 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -132,24 +132,35 @@ private function detectChrome($ua) $this->data->browser->type = Constants\BrowserType::BROWSER; $this->data->browser->stock = false; + $reduced = false; $version = ''; + if (preg_match('/(?:Chrome|CrMo|CriOS)\/([0-9.]*)/u', $ua, $match)) { $version = $match[1]; } if (preg_match('/Browser\/Chrome([0-9.]*)/u', $ua, $match)) { $version = $match[1]; } + + if (preg_match('/Chrome\/(95|96|97|98|99|[1-9][0-9][0-9])\.0\.0\.0 /u', $ua)) { + $reduced = true; + } + $this->data->browser->version = new Version([ 'value' => $version ]); if (isset($this->data->os->name) && $this->data->os->name == 'Android') { - $channel = Data\Chrome::getChannel('mobile', $this->data->browser->version->value); - - if ($channel == 'stable') { + if ($reduced) { $this->data->browser->version->details = 1; - } elseif ($channel == 'beta') { - $this->data->browser->channel = 'Beta'; } else { - $this->data->browser->channel = 'Dev'; + $channel = Data\Chrome::getChannel('mobile', $this->data->browser->version->value); + + if ($channel == 'stable') { + $this->data->browser->version->details = 1; + } elseif ($channel == 'beta') { + $this->data->browser->channel = 'Beta'; + } else { + $this->data->browser->channel = 'Dev'; + } } @@ -274,18 +285,22 @@ private function detectChrome($ua) $this->data->device->identified |= Constants\Id::PATTERN; $this->data->device->type = Constants\DeviceType::DESKTOP; } else { - $channel = Data\Chrome::getChannel('desktop', $version); + if ($reduced) { + $this->data->browser->version->details = 1; + } else { + $channel = Data\Chrome::getChannel('desktop', $version); - if ($channel == 'stable') { - if (explode('.', $version)[1] == '0') { - $this->data->browser->version->details = 1; + if ($channel == 'stable') { + if (explode('.', $version)[1] == '0') { + $this->data->browser->version->details = 1; + } else { + $this->data->browser->version->details = 2; + } + } elseif ($channel == 'beta') { + $this->data->browser->channel = 'Beta'; } else { - $this->data->browser->version->details = 2; + $this->data->browser->channel = 'Dev'; } - } elseif ($channel == 'beta') { - $this->data->browser->channel = 'Beta'; - } else { - $this->data->browser->channel = 'Dev'; } } diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index b18ab9923..3cc3ec30b 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -307,6 +307,13 @@ private function detectAndroid($ua) continue; } + /* Ignore "K" as a device, as it is a dummy value used by Chrome UA reduction */ + + if ($candidates[$c] == 'K') { + unset($candidates[$c]); + continue; + } + $candidates[$c] = preg_replace('/^[a-zA-Z][a-zA-Z][-_][a-zA-Z][a-zA-Z]\s+/u', '', $candidates[$c]); $candidates[$c] = preg_replace('/(.*) - [0-9\.]+ - (?:with Google Apps - )?API [0-9]+ - [0-9]+x[0-9]+/', '\\1', $candidates[$c]); $candidates[$c] = preg_replace('/^sprd-/u', '', $candidates[$c]); diff --git a/tests/data/mobile/browser-chrome.yaml b/tests/data/mobile/browser-chrome.yaml index 5cad89b32..ac78e8659 100644 --- a/tests/data/mobile/browser-chrome.yaml +++ b/tests/data/mobile/browser-chrome.yaml @@ -290,3 +290,15 @@ headers: 'User-Agent: m2 note/4.5 Linux/3.10.65 Android/5.1 Release/08.17.2015 Browser/Chrome40.0.2214.114 Profile/MIDP-2.0 Configuration/CLDC-1.1' result: { browser: { name: Chrome, version: '40', type: browser }, os: { name: Android, version: '5.1' }, device: { type: mobile, subtype: smart, manufacturer: Meizu, model: 'M2 Note' } } readable: 'Chrome 40 on a Meizu M2 Note running Android 5.1' +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Mobile Safari/537.36' + readable: 'Chrome 100 on Android 10' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.0.0 Mobile Safari/537.36' + readable: 'Chrome 96 on Android 10' + result: { browser: { name: Chrome, version: '96', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Mobile Safari/537.36' + readable: 'Chrome 97 on Android 10' + result: { browser: { name: Chrome, version: '97', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart } } From 43521add0fb1c5db97ebd53afeeed02381953f34 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 16:04:07 +0200 Subject: [PATCH 527/540] Android model update --- data/indices/models-android.php | 1304 ++++++++++++++++--------------- data/models-android.php | 103 ++- 2 files changed, 782 insertions(+), 625 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 3b026cf9f..59db4d828 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -239,7 +239,7 @@ 25 => '5045[ADFGJTXY]!', 26 => '5046[DGIJUY]!', 27 => '5047[DIUY]!', - 28 => '5048[Y]!', + 28 => '5048[UY]!', 29 => '5049[EGSWZ]!', 30 => '5050[ASYX]!', 31 => '5051[ADJMX]!', @@ -297,25 +297,26 @@ array ( 0 => '6014[DX]!', 1 => '6016[ADEX]!', - 2 => '6031[X]!', - 3 => '6036[AYX]!', - 4 => '6037[BIKY]!', - 5 => '6039[AHJKSY]!', - 6 => '6042[D]!', - 7 => '6043[AD]!', - 8 => '6044D', - 9 => '6045[BFGIKOXY]!', - 10 => '6050[AFWY]!', - 11 => '6055[ABDHIKPUY]!', - 12 => '6056[D]!', - 13 => '6058[D]!', - 14 => '6060[S]!', - 15 => '6062[W]!', - 16 => '6070[KOY]!', - 17 => '602LV', - 18 => '60[0-9]SO!!', - 19 => '602ZT', - 20 => '6034R ORANGE Niva', + 2 => '6025[D]!', + 3 => '6031[X]!', + 4 => '6036[AYX]!', + 5 => '6037[BIKY]!', + 6 => '6039[AHJKSY]!', + 7 => '6042[D]!', + 8 => '6043[AD]!', + 9 => '6044D', + 10 => '6045[BFGIKOXY]!', + 11 => '6050[AFWY]!', + 12 => '6055[ABDHIKPUY]!', + 13 => '6056[D]!', + 14 => '6058[D]!', + 15 => '6060[S]!', + 16 => '6062[W]!', + 17 => '6070[KOY]!', + 18 => '602LV', + 19 => '60[0-9]SO!!', + 20 => '602ZT', + 21 => '6034R ORANGE Niva', ), '@66' => array ( @@ -629,13 +630,14 @@ 5 => 'AC50BHE', 6 => 'AC50DHE', 7 => 'AC45NE', - 8 => 'ACM3066-8', - 9 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', - 10 => 'AC2001', - 11 => 'AC2003', - 12 => 'ACT2000', - 13 => 'ACU Volvo', - 14 => 'Acqua', + 8 => 'Action-X3', + 9 => 'ACM3066-8', + 10 => '(Explay|X-tremer|ActiveD|Informer|Surfer)!!', + 11 => 'AC2001', + 12 => 'AC2003', + 13 => 'ACT2000', + 14 => 'ACU Volvo', + 15 => 'Acqua', ), '@AD' => array ( @@ -789,8 +791,8 @@ 33 => '(Allview|Alldro)!!', 34 => 'Allwinner A10', 35 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 36 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 37 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 36 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 37 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 38 => 'Alfa A93 POP', 39 => 'Alfa L', 40 => 'Ally', @@ -827,7 +829,7 @@ 25 => 'AMD120', 26 => '(Amaze|Hitech)!!', 27 => 'Amaze 4G', - 28 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 28 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 29 => '(Amazing|Fantastic)!!', ), '@AN' => @@ -876,7 +878,7 @@ 41 => 'AN10G2-LZ', 42 => 'AN10BG3-LZ', 43 => 'AN7DG3C', - 44 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 44 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 45 => '(iBall )?Andi!!', 46 => 'AND1', 47 => 'AND1E', @@ -937,10 +939,11 @@ 11 => 'Aquila 101-1008 3G', 12 => 'Aquila LE 080-0508', 13 => 'Aquila SE 090-0508', - 14 => '(Intex )?Aqua!!', - 15 => 'AQUOS!!', - 16 => 'aqua', - 17 => 'AQT80', + 14 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', + 15 => '(Intex )?Aqua!!', + 16 => 'AQUOS!!', + 17 => 'aqua', + 18 => 'AQT80', ), '@AR' => array ( @@ -972,18 +975,23 @@ 25 => 'arrowsM03', 26 => 'ARIES 101', 27 => 'ARIES 785', - 28 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 28 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 29 => 'ARA YS608', 30 => 'Arctic450', 31 => 'Arc', 32 => 'Arc S', - 33 => 'Armor 7', - 34 => 'Armor 8', - 35 => 'Armor 9', - 36 => 'Armor 9E', - 37 => 'Armor 11T 5G', - 38 => 'Armor X5', - 39 => 'Armor X8', + 33 => 'Armor 3W', + 34 => 'Armor 7', + 35 => 'Armor 8', + 36 => 'Armor 9', + 37 => 'Armor 9E', + 38 => 'Armor 10 5G', + 39 => 'Armor 11 5G', + 40 => 'Armor 11T 5G', + 41 => 'Armor X5', + 42 => 'Armor X7', + 43 => 'Armor X7 Pro', + 44 => 'Armor X8', ), '@AS' => array ( @@ -1031,7 +1039,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1111,7 +1119,8 @@ 4 => 'B3-A32', 5 => 'B3-A40', 6 => 'B3-A40FHD', - 7 => 'B3000', + 7 => 'B3-A50FHD', + 8 => 'B3000', ), '@B9' => array ( @@ -1192,7 +1201,7 @@ 13 => 'BePhone UN030', 14 => 'Best ?sonny!!', 15 => 'BEAN 454', - 16 => 'BE2029', + 16 => 'BE202[69]!', 17 => 'BE2013', 18 => 'beetle', 19 => 'Be Touch 2', @@ -1231,7 +1240,7 @@ '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1240,18 +1249,19 @@ 2 => 'BlueStacks!', 3 => 'BlackBerry Runtime for Android Apps', 4 => 'BLACKBERRY P\'9982', - 5 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', - 6 => 'Bluboo S1', - 7 => 'Blaze S180', - 8 => 'BLADE LE 70', - 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 10 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 11 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 12 => '(BLF-)?lephone!!', - 13 => 'Blackphone 2', - 14 => 'BLOOM', - 15 => 'BLACK', - 16 => '(ZTE )?Blade!!', + 5 => 'BL6000Pro', + 6 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', + 7 => 'Bluboo S1', + 8 => 'Blaze S180', + 9 => 'BLADE LE 70', + 10 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', + 13 => '(BLF-)?lephone!!', + 14 => 'Blackphone 2', + 15 => 'BLOOM', + 16 => 'BLACK', + 17 => '(ZTE )?Blade!!', ), '@BM' => array ( @@ -1271,7 +1281,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1379,8 +1389,9 @@ 3 => 'BV8000Pro', 4 => 'BV9100', 5 => 'BV9500', - 6 => 'BV9600E', - 7 => 'BV9900Pro', + 6 => 'BV9500Plus', + 7 => 'BV9600E', + 8 => 'BV9900Pro', ), '@C2' => array ( @@ -1435,8 +1446,8 @@ 10 => 'Casper VIA!!', 11 => 'CAT!!', 12 => 'Candy TV', - 13 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 14 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 13 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 15 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 16 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 17 => 'calgary', @@ -1447,6 +1458,10 @@ array ( 0 => 'CCE SK352', ), + '@CD' => + array ( + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + ), '@CE' => array ( 0 => 'cedartrail', @@ -1470,7 +1485,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1505,7 +1520,7 @@ 4 => 'Clanga SE 097-1008', 5 => 'CLP281X', 6 => 'Click', - 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => '(Intex )?Cloud!!', 9 => 'CLIQ', 10 => 'CLIQ XT', @@ -1544,7 +1559,7 @@ 15 => 'Connect-2G-2.0', 16 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 17 => 'Coquettish Red', - 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 19 => 'Comet', 20 => 'Corvair', 21 => 'COOLPIX S800c', @@ -1586,49 +1601,50 @@ 30 => 'CPH1893', 31 => 'CPH1903', 32 => 'CPH1907', - 33 => 'CPH1911', - 34 => 'CPH1917', - 35 => 'CPH1919', - 36 => 'CPH1931', - 37 => 'CPH1951', - 38 => 'CPH1969', - 39 => 'CPH2005', - 40 => 'CPH2009', - 41 => 'CPH2021', - 42 => 'CPH2023', - 43 => 'CPH2025', - 44 => 'CPH2043', - 45 => 'CPH2065', - 46 => 'CPH2067', - 47 => 'CPH2069', - 48 => 'CPH2083', - 49 => 'CPH2089', - 50 => 'CPH2091', - 51 => 'CPH2127', - 52 => 'CPH2135', - 53 => 'CPH2145', - 54 => 'CPH2161', - 55 => 'CPH2173', - 56 => 'CPH2185', - 57 => 'CPH2195', - 58 => 'CPH2197', - 59 => 'CPH2205', - 60 => 'CPH2207', - 61 => 'CPH2211', - 62 => 'CPH2219', - 63 => 'CPH2247', - 64 => 'CPH2251', - 65 => 'CPH2269', - 66 => 'CPH2271', - 67 => 'CPH2273', - 68 => 'CPH2305', - 69 => 'CPH2307', - 70 => 'CPH2371', - 71 => 'CPH1721', - 72 => 'CPH1611', - 73 => 'CPH1879', - 74 => 'CPH1861', - 75 => 'CPH1979', + 33 => 'CPH1909', + 34 => 'CPH1911', + 35 => 'CPH1917', + 36 => 'CPH1919', + 37 => 'CPH1931', + 38 => 'CPH1951', + 39 => 'CPH1969', + 40 => 'CPH2005', + 41 => 'CPH2009', + 42 => 'CPH2021', + 43 => 'CPH2023', + 44 => 'CPH2025', + 45 => 'CPH2043', + 46 => 'CPH2065', + 47 => 'CPH2067', + 48 => 'CPH2069', + 49 => 'CPH2083', + 50 => 'CPH2089', + 51 => 'CPH2091', + 52 => 'CPH2127', + 53 => 'CPH2135', + 54 => 'CPH2145', + 55 => 'CPH2161', + 56 => 'CPH2173', + 57 => 'CPH2185', + 58 => 'CPH2195', + 59 => 'CPH2197', + 60 => 'CPH2205', + 61 => 'CPH2207', + 62 => 'CPH2211', + 63 => 'CPH2219', + 64 => 'CPH2247', + 65 => 'CPH2251', + 66 => 'CPH2269', + 67 => 'CPH2271', + 68 => 'CPH2273', + 69 => 'CPH2305', + 70 => 'CPH2307', + 71 => 'CPH2371', + 72 => 'CPH1721', + 73 => 'CPH1611', + 74 => 'CPH1879', + 75 => 'CPH1861', + 76 => 'CPH1979', ), '@CR' => array ( @@ -1636,8 +1652,8 @@ 1 => 'CRESTA.CTP888', 2 => 'Cross!!', 3 => 'Crosscall!!', - 4 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 5 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 4 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 5 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 6 => 'CRONO 22', 7 => 'Crescent', ), @@ -1670,7 +1686,7 @@ 0 => 'CUBOT!!', 1 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', 2 => 'CUBE!!', - 3 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', ), '@CW' => array ( @@ -1709,7 +1725,7 @@ '@D2' => array ( 0 => 'D2-[0-9]{3,3}!!', - 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@D5' => array ( @@ -1742,7 +1758,7 @@ 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 2 => 'Dakele A380', 3 => 'DAKELE MC001', - 4 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 5 => 'DATAM803HC', 6 => 'DATAM805HC', 7 => 'DATAM819HD!', @@ -1825,7 +1841,7 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', ), '@DM' => @@ -1922,8 +1938,8 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 1 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', ), '@DV' => array ( @@ -1966,9 +1982,10 @@ 1 => 'E170BS', 2 => 'E1031', 3 => 'E1050X', - 4 => 'E1060X', - 5 => 'e1808 v75!', - 6 => 'e1109 v73!', + 4 => 'E1051X', + 5 => 'E1060X', + 6 => 'e1808 v75!', + 7 => 'e1109 v73!', ), '@E2' => array ( @@ -2055,7 +2072,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -2091,7 +2108,7 @@ 4 => 'ELIFE-E3', 5 => 'Elife E5', 6 => 'ElifeE6', - 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 7 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 8 => 'Elektra L', 9 => 'Elektra XL', 10 => 'Electrify', @@ -2122,7 +2139,7 @@ 0 => 'EMBT3C', 1 => 'EM63', 2 => 'EM01F', - 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => 'eMAX mini', 5 => 'EMR1879', ), @@ -2185,8 +2202,8 @@ 8 => 'EVO ?3D!', 9 => 'EVO 4G', 10 => 'Evo V 4G', - 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 12 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 12 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 13 => '(EV|KM)-[ES][0-9]{3,3}!!', 14 => 'Event', 15 => 'EVERY35', @@ -2265,7 +2282,7 @@ array ( 0 => 'FIH-FB0', 1 => 'FIH-!!', - 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Find 5', 4 => 'FIND7', ), @@ -2352,7 +2369,7 @@ '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2433,11 +2450,11 @@ ), '@G6' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@G9' => array ( @@ -2728,7 +2745,7 @@ array ( 0 => 'Grouper', 1 => 'GR-TB!!', - 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'greenridge', 4 => 'Graphos A10', 5 => '(ZTE )?(Grand|Mimosa)!!', @@ -2739,10 +2756,13 @@ 1 => '(Gsmart|Gigabyte|Rio)!!', 2 => 'GS110', 3 => 'GS190', - 4 => 'GS270', - 5 => 'GS270 plus', - 6 => 'GS02', - 7 => 'GS03', + 4 => 'GS195', + 5 => 'GS270', + 6 => 'GS270 plus', + 7 => 'GS280', + 8 => 'GS290', + 9 => 'GS02', + 10 => 'GS03', ), '@GT' => array ( @@ -2794,11 +2814,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2847,9 +2867,9 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 4 => 'HD190[013]!', - 5 => 'HD191[03]!', + 5 => 'HD191[037]!', ), '@HE' => array ( @@ -2885,11 +2905,11 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( - 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 1 => 'HMP8100 ATV 93', 2 => 'HMP8100 ATV INT', 3 => '(Xiaomi )?(Redmi|RedRice|HM)!!', @@ -2899,12 +2919,12 @@ ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2919,7 +2939,7 @@ ), '@HR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HS' => array ( @@ -2965,13 +2985,13 @@ 6 => 'Huawei MediaPad T1 10 4G', 7 => '(Huawei )?[MSTX](1|2|7|8|10)\\-[A-Z0-9][0-9]{2,2}!!', 8 => 'HUAWEI GEM-703L', - 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', - 15 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 15 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 16 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 17 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 18 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', @@ -2997,10 +3017,10 @@ '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 4 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 4 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 5 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 6 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', 7 => '(HW-|HUAWEI )?MLA-(L01|L03|L11|L12|L13)!', @@ -3044,13 +3064,14 @@ '@I0' => array ( 0 => 'I01WDX', - 1 => 'I001DE', - 2 => 'I002D', - 3 => 'I003D', - 4 => 'I003DD', - 5 => 'I005D', - 6 => 'I005DA', - 7 => 'I006D', + 1 => 'I001DC', + 2 => 'I001DE', + 3 => 'I002D', + 4 => 'I003D', + 5 => 'I003DD', + 6 => 'I005D', + 7 => 'I005DA', + 8 => 'I006D', ), '@I1' => array ( @@ -3244,7 +3265,7 @@ ), '@JA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'Jaguar3', 2 => 'Jaguar7', ), @@ -3279,11 +3300,11 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@JO' => array ( @@ -3293,7 +3314,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3415,13 +3436,14 @@ 15 => 'KFDOWI', 16 => 'KFSUWI', 17 => 'KFMAWI', - 18 => 'KFMUWI', + 18 => 'KFKAWI', + 19 => 'KFMUWI', ), '@KI' => array ( 0 => 'Kindle Fire', 1 => 'KINGKONG MINI2', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 4 => 'KIOTO 793', 5 => 'KITE', @@ -3433,7 +3455,7 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( @@ -3454,7 +3476,8 @@ ), '@KS' => array ( - 0 => 'KSP8000', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => 'KSP8000', ), '@KU' => array ( @@ -3533,7 +3556,7 @@ ), '@LD' => array ( - 0 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 1 => 'LDK-ICK v1.4', ), '@LE' => @@ -3616,65 +3639,72 @@ 75 => 'Lenovo YT3-X90L', 76 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', 77 => 'Lenovo TB-7304F', - 78 => 'Lenovo TB-8705F', - 79 => 'Lenovo TB-J606F', - 80 => 'Lenovo TB-J616F', - 81 => 'Lenovo TB-J706F', - 82 => 'Lenovo TB-J716F', - 83 => 'Lenovo TB-X104F', - 84 => 'Lenovo TB-X304L', - 85 => 'Lenovo TB-X306F', - 86 => 'Lenovo TB-X306X', - 87 => 'Lenovo TB-X505F', - 88 => 'Lenovo TB-X605F', - 89 => 'Lenovo TB-X606F', - 90 => 'Lenovo TB-X606X', - 91 => 'Lenovo TB-X103F', - 92 => 'Lenovo TB2-X30F', - 93 => 'Lenovo TB2-X30L', - 94 => 'Lenovo TB3-730X', - 95 => 'Lenovo TB3-710F', - 96 => 'Lenovo TB3-710I', - 97 => 'Lenovo TB-7703X', - 98 => 'Lenovo TB3-850F', - 99 => 'Lenovo TB3-850M', - 100 => 'Lenovo TB3-X70F', - 101 => 'Lenovo TB3-X70L', - 102 => 'Lenovo TB-8504F', - 103 => 'Lenovo TB-8505F', - 104 => 'Lenovo TB-8703F', - 105 => 'Lenovo TB-8704F', - 106 => 'Lenovo TB-X304F', - 107 => 'Lenovo TB-X704F', - 108 => 'Lenovo TB-X704L', - 109 => 'Lenovo TB-X705F', - 110 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 111 => 'Lenovo Pad A4', - 112 => 'Lenovo', - 113 => 'lepad 001b', - 114 => 'lepad 001n', - 115 => '(Lenovo |Lephone )?3GC101!', - 116 => '(Lenovo |Lephone )?3GW100!', - 117 => '(Lenovo |Lephone )?3GW101!', - 118 => '(Lenovo )?S1[- ]37AH0!', - 119 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 120 => 'Lenovo!!', - 121 => 'LenovoTV 40S9', - 122 => 'LenovoTV 50S52', - 123 => 'Lenovo Z2', - 124 => '(BLF-)?lephone!!', - 125 => 'Le Pan Mini', - 126 => 'Le Pan TC802A', - 127 => 'Le Pan TC1010', - 128 => 'Le Pan TC1020', - 129 => 'LePanII', - 130 => 'Le Pan S', - 131 => 'LE2101', - 132 => 'LE211[135]!', - 133 => 'LE212[01357]!', - 134 => 'LENNY', - 135 => 'LENNY2', - 136 => 'LENNY3', + 78 => 'Lenovo TB-7305F', + 79 => 'Lenovo TB-8705F', + 80 => 'Lenovo TB-J606F', + 81 => 'Lenovo TB-J606L', + 82 => 'Lenovo TB-J607Z', + 83 => 'Lenovo TB-J616F', + 84 => 'Lenovo TB-J706F', + 85 => 'Lenovo TB-J716F', + 86 => 'Lenovo TB-X104F', + 87 => 'Lenovo TB-X304L', + 88 => 'Lenovo TB-X306F', + 89 => 'Lenovo TB-X306X', + 90 => 'Lenovo TB-X505F', + 91 => 'Lenovo TB-X605F', + 92 => 'Lenovo TB-X605L', + 93 => 'Lenovo TB-X606F', + 94 => 'Lenovo TB-X606X', + 95 => 'Lenovo TB-X6C6F', + 96 => 'Lenovo TB-X103F', + 97 => 'Lenovo TB2-X30F', + 98 => 'Lenovo TB2-X30L', + 99 => 'Lenovo TB3-730X', + 100 => 'Lenovo TB3-710F', + 101 => 'Lenovo TB3-710I', + 102 => 'Lenovo TB-7703X', + 103 => 'Lenovo TB3-850F', + 104 => 'Lenovo TB3-850M', + 105 => 'Lenovo TB3-X70F', + 106 => 'Lenovo TB3-X70L', + 107 => 'Lenovo TB-8504F', + 108 => 'Lenovo TB-8504X', + 109 => 'Lenovo TB-8505F', + 110 => 'Lenovo TB-8703F', + 111 => 'Lenovo TB-8704F', + 112 => 'Lenovo TB-X304F', + 113 => 'Lenovo TB-X704F', + 114 => 'Lenovo TB-X704L', + 115 => 'Lenovo TB-X705F', + 116 => 'Lenovo TB-X705L', + 117 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 118 => 'Lenovo Pad A4', + 119 => 'Lenovo', + 120 => 'lepad 001b', + 121 => 'lepad 001n', + 122 => '(Lenovo |Lephone )?3GC101!', + 123 => '(Lenovo |Lephone )?3GW100!', + 124 => '(Lenovo |Lephone )?3GW101!', + 125 => '(Lenovo )?S1[- ]37AH0!', + 126 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 127 => 'Lenovo!!', + 128 => 'LenovoTV 40S9', + 129 => 'LenovoTV 50S52', + 130 => 'Lenovo Z2', + 131 => '(BLF-)?lephone!!', + 132 => 'Le Pan Mini', + 133 => 'Le Pan TC802A', + 134 => 'Le Pan TC1010', + 135 => 'Le Pan TC1020', + 136 => 'LePanII', + 137 => 'Le Pan S', + 138 => 'LE2101', + 139 => 'LE211[0135]!', + 140 => 'LE212[01357]!', + 141 => 'LENNY', + 142 => 'LENNY2', + 143 => 'LENNY3', ), '@LG' => array ( @@ -3752,7 +3782,7 @@ 0 => 'Liquid!!', 1 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 2 => 'Liberty', - 3 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 3 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 4 => '(MEDION|(MD )?LIFETAB)!!', 5 => 'Life', 6 => 'Liberty Tab G100', @@ -3765,7 +3795,7 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => @@ -3780,44 +3810,46 @@ 7 => 'LM-G910!', 8 => 'LM-K200!', 9 => 'LM-K420!', - 10 => 'LM-Q610!', - 11 => 'LM-Q617!', - 12 => 'LM-Q630!', - 13 => 'LM-Q710!', - 14 => 'LM-Q720!', - 15 => 'LM-Q725!', - 16 => 'LM-Q815!', - 17 => 'LM-Q850!', - 18 => 'LM-Q910!', - 19 => 'LM-Q925!', - 20 => 'LM-V350!', - 21 => 'LM-V40[59]!', - 22 => 'LM-V450!', - 23 => 'LM-V500!', - 24 => 'LM-V600!', - 25 => 'LM-X120!', - 26 => 'LM-X210!', - 27 => 'LM-X212!', - 28 => 'LM-X220!', - 29 => 'LM-X320!', - 30 => 'LM-X410!', - 31 => 'LM-X415!', - 32 => 'LM-X420!', - 33 => 'LM-X510!', - 34 => 'LM-X525!', - 35 => 'LM-X540!', - 36 => 'LM-X625!', - 37 => 'LM-Y110!', + 10 => 'LM-K520!', + 11 => 'LM-Q610!', + 12 => 'LM-Q617!', + 13 => 'LM-Q630!', + 14 => 'LM-Q710!', + 15 => 'LM-Q720!', + 16 => 'LM-Q725!', + 17 => 'LM-Q815!', + 18 => 'LM-Q850!', + 19 => 'LM-Q910!', + 20 => 'LM-Q925!', + 21 => 'LM-V350!', + 22 => 'LM-V40[59]!', + 23 => 'LM-V450!', + 24 => 'LM-V500!', + 25 => 'LM-V510!', + 26 => 'LM-V600!', + 27 => 'LM-X120!', + 28 => 'LM-X210!', + 29 => 'LM-X212!', + 30 => 'LM-X220!', + 31 => 'LM-X320!', + 32 => 'LM-X410!', + 33 => 'LM-X415!', + 34 => 'LM-X420!', + 35 => 'LM-X510!', + 36 => 'LM-X525!', + 37 => 'LM-X540!', + 38 => 'LM-X625!', + 39 => 'LM-Y110!', ), '@LO' => array ( 0 => 'LogicPD Zoom2', - 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 2 => 'Loox', ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -3873,7 +3905,7 @@ 1 => 'LUXURY 3', 2 => 'LUXURY 4', 3 => 'LUXURY 5', - 4 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 4 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 5 => 'Lucky Ultra Sonic U8650', 6 => 'LU2300', 7 => 'Lumia800', @@ -3889,8 +3921,8 @@ ), '@LY' => array ( - 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 1 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 1 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 2 => 'LYF LS-4006', 3 => 'LYF LS-5009', ), @@ -3923,7 +3955,7 @@ '@M1' => array ( 0 => 'M19', - 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 2 => 'M1050S', 3 => 'M1', 4 => 'm1 metal', @@ -3934,7 +3966,7 @@ ), '@M2' => array ( - 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 1 => 'M210', 2 => 'm2 note', 3 => 'm2', @@ -3946,27 +3978,32 @@ 9 => 'M2006C3MG', 10 => 'M2006C3MNG', 11 => 'M2007J17G', - 12 => 'M2007J20CG', - 13 => 'M2007J22G', - 14 => 'M2007J3SG', - 15 => 'M2007J3SY', - 16 => 'M2010J19CG', - 17 => 'M2010J19SY', - 18 => 'M2011K2G', - 19 => 'M2012K11AG', - 20 => 'M2012K11G', - 21 => 'M2101K6G', - 22 => 'M2101K7AG', - 23 => 'M2101K7BG', - 24 => 'M2101K7BNY', - 25 => 'M2101K9AG', - 26 => 'M2101K9G', - 27 => 'M2102J20SG', - 28 => 'M2102J20SI', - 29 => 'M2102K1C', - 30 => 'M2102K1G', - 31 => 'M2103K19G', - 32 => 'M2103K19PG', + 12 => 'M2007J1SC', + 13 => 'M2007J20CG', + 14 => 'M2007J22G', + 15 => 'M2007J3SG', + 16 => 'M2007J3SY', + 17 => 'M2010J19CG', + 18 => 'M2010J19SY', + 19 => 'M2011K2C', + 20 => 'M2011K2G', + 21 => 'M2012K11AG', + 22 => 'M2012K11G', + 23 => 'M2101K6G', + 24 => 'M2101K6P', + 25 => 'M2101K7AG', + 26 => 'M2101K7BG', + 27 => 'M2101K7BNY', + 28 => 'M2101K9AG', + 29 => 'M2101K9C', + 30 => 'M2101K9G', + 31 => 'M2102J20SG', + 32 => 'M2102J20SI', + 33 => 'M2102K1AC', + 34 => 'M2102K1C', + 35 => 'M2102K1G', + 36 => 'M2103K19G', + 37 => 'M2103K19PG', ), '@M3' => array ( @@ -3992,6 +4029,7 @@ 2 => 'M470BSE', 3 => 'M4', 4 => 'M4(TEL)? SS[0-9]{3,4}!!', + 5 => 'M40 EEA', ), '@M5' => array ( @@ -4050,8 +4088,8 @@ 2 => 'manta', 3 => '(bq|Aquaris|Edison|Maxwell)!!', 4 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', - 5 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', - 6 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 6 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 7 => '(HW-|HUAWEI )?MAR-(AL00|LX1A|LX1M|LX2|LX3A|TL00)!', 8 => 'MAX FIND 5.0', 9 => 'Malata!!', @@ -4106,27 +4144,28 @@ 13 => 'ME581CL', 14 => 'MeMO Pad 7', 15 => 'MediaPad!!', - 16 => 'Mediacom 810C', - 17 => '(MEDION|(MD )?LIFETAB)!!', - 18 => 'MEEG!!', - 19 => 'MEIZU E3', - 20 => 'meizu m1note', - 21 => 'MEIZU M5', - 22 => 'MEIZU M9', - 23 => 'MEIZU MX', - 24 => 'Meizu S6', - 25 => '(MEO )?Smart A!!', - 26 => 'MEU AN!!', - 27 => 'ME[0-9]{3,3}!!', - 28 => 'MEM02', - 29 => 'MegaFon SP-AI', - 30 => 'MegaFon SP-A3', - 31 => 'MegaFon SP-A5', - 32 => 'MegaFon SP-A10', - 33 => 'MegaFon V9', - 34 => 'MegaFon V9+', - 35 => 'MegaFon SIM+', - 36 => 'MegaFon Login 3', + 16 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', + 17 => 'Mediacom 810C', + 18 => '(MEDION|(MD )?LIFETAB)!!', + 19 => 'MEEG!!', + 20 => 'MEIZU E3', + 21 => 'meizu m1note', + 22 => 'MEIZU M5', + 23 => 'MEIZU M9', + 24 => 'MEIZU MX', + 25 => 'Meizu S6', + 26 => '(MEO )?Smart A!!', + 27 => 'MEU AN!!', + 28 => 'ME[0-9]{3,3}!!', + 29 => 'MEM02', + 30 => 'MegaFon SP-AI', + 31 => 'MegaFon SP-A3', + 32 => 'MegaFon SP-A5', + 33 => 'MegaFon SP-A10', + 34 => 'MegaFon V9', + 35 => 'MegaFon V9+', + 36 => 'MegaFon SIM+', + 37 => 'MegaFon Login 3', ), '@MF' => array ( @@ -4138,7 +4177,7 @@ '@MH' => array ( 0 => 'MH350', - 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', ), '@MI' => array ( @@ -4204,13 +4243,15 @@ 59 => '(Xiaomi )?(MI )?MIX$!', 60 => '(Xiaomi )?(MI )?MIX 2$!', 61 => '(Xiaomi )?(MI )?MIX 2S$!', - 62 => 'Mi MIX 3', - 63 => 'Mi MIX 3 5G', - 64 => 'mido', - 65 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 66 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 67 => '(Xiaomi|Xiaomi Mi|MI)TV!!', - 68 => '(ZTE )?(Grand|Mimosa)!!', + 62 => 'MIX 3', + 63 => 'Mi MIX 3', + 64 => 'Mi MIX 3 5G', + 65 => 'MI PLAY', + 66 => 'mido', + 67 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 68 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 69 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 70 => '(ZTE )?(Grand|Mimosa)!!', ), '@MK' => array ( @@ -4292,81 +4333,84 @@ 52 => 'moto e(7) power', 53 => 'moto e(7i) power', 54 => 'moto e20', - 55 => 'moto e40', - 56 => '(Moto)?G3$!', - 57 => '(Moto)?G3-TE$!', - 58 => 'Moto G 2015', - 59 => 'Moto G (2015)', - 60 => 'Moto G (2014', - 61 => 'MOTOROLA MOTOG', - 62 => 'Moto G Play', - 63 => 'Moto G Turbo', - 64 => 'moto g 5G', - 65 => 'moto g 5G plus', - 66 => 'moto g pro', - 67 => 'Moto G4', - 68 => 'Moto G (4', - 69 => 'Moto G (4)', - 70 => 'Moto G4 Plus', - 71 => 'Moto G 5', - 72 => 'Moto G (5', - 73 => 'Moto G (5)', - 74 => 'Moto G (5) Plus', - 75 => 'Moto G (5S', - 76 => 'Moto G (5S)', - 77 => 'Moto G (5S) Plus', - 78 => 'moto g(6', - 79 => 'moto g(6)', - 80 => 'moto g(6) (XT1925DL)', - 81 => 'moto g(6) forge', - 82 => 'moto g(6) play', - 83 => 'moto g(6) plus', - 84 => 'moto g(7', - 85 => 'moto g(7)', - 86 => 'moto g(7) optimo (XT1952DL)', - 87 => 'moto g(7) play', - 88 => 'moto g(7) plus', - 89 => 'moto g(7) power', - 90 => 'moto g(7) supra', - 91 => 'moto g(8', - 92 => 'moto g(8)', - 93 => 'moto g(8) plus', - 94 => 'moto g(8) power', - 95 => 'moto g(8) power lite', - 96 => 'moto g(9) play', - 97 => 'moto g(9) plus', - 98 => 'moto g(9) power', - 99 => 'moto g(10)', - 100 => 'moto g(20)', - 101 => 'moto g(30)', - 102 => 'moto g31(w)', - 103 => 'moto g(50)', - 104 => 'moto g51 5G', - 105 => 'moto g(60)', - 106 => 'moto g(60)s', - 107 => 'moto g(100)', - 108 => 'Moto Z (2)', - 109 => 'Moto Z2 Play', - 110 => 'Moto Z3 Play', - 111 => 'Moto X Pro', - 112 => 'moto x4', - 113 => 'Moto Backflip', - 114 => 'motorola razr 5G', - 115 => 'MOTOROLA XOOM MZ606', - 116 => 'MOTOROLA RAZR', - 117 => 'MOTWX435KT', - 118 => '(PLOYER-)?MOMO!!', - 119 => 'MOB-5045', - 120 => 'Mobii 7', - 121 => 'MoFing', - 122 => 'mocha', - 123 => 'MO-01J', - 124 => 'MO-01K', - 125 => 'Movistar Express', - 126 => 'Movistar Link', - 127 => 'Movistar Motion', - 128 => 'Movistar Prime', - 129 => 'MOVE', + 55 => 'moto e30', + 56 => 'moto e40', + 57 => '(Moto)?G3$!', + 58 => '(Moto)?G3-TE$!', + 59 => 'Moto G 2015', + 60 => 'Moto G (2015)', + 61 => 'Moto G (2014', + 62 => 'MOTOROLA MOTOG', + 63 => 'Moto G Play', + 64 => 'Moto G Turbo', + 65 => 'moto g 5G', + 66 => 'moto g 5G plus', + 67 => 'moto g pro', + 68 => 'Moto G4', + 69 => 'Moto G (4', + 70 => 'Moto G (4)', + 71 => 'Moto G4 Plus', + 72 => 'Moto G 5', + 73 => 'Moto G (5', + 74 => 'Moto G (5)', + 75 => 'Moto G (5) Plus', + 76 => 'Moto G (5S', + 77 => 'Moto G (5S)', + 78 => 'Moto G (5S) Plus', + 79 => 'moto g(6', + 80 => 'moto g(6)', + 81 => 'moto g(6) (XT1925DL)', + 82 => 'moto g(6) forge', + 83 => 'moto g(6) play', + 84 => 'moto g(6) plus', + 85 => 'moto g(7', + 86 => 'moto g(7)', + 87 => 'moto g(7) optimo (XT1952DL)', + 88 => 'moto g(7) play', + 89 => 'moto g(7) plus', + 90 => 'moto g(7) power', + 91 => 'moto g(7) supra', + 92 => 'moto g(8', + 93 => 'moto g(8)', + 94 => 'moto g(8) plus', + 95 => 'moto g(8) power', + 96 => 'moto g(8) power lite', + 97 => 'moto g(9) play', + 98 => 'moto g(9) plus', + 99 => 'moto g(9) power', + 100 => 'moto g(10)', + 101 => 'moto g(20)', + 102 => 'moto g(30)', + 103 => 'moto g31(w)', + 104 => 'moto g(50)', + 105 => 'moto g51 5G', + 106 => 'moto g(60)', + 107 => 'moto g(60)s', + 108 => 'moto g(100)', + 109 => 'moto g200 5G', + 110 => 'Moto Z (2)', + 111 => 'Moto Z2 Play', + 112 => 'Moto Z3 Play', + 113 => 'Moto X Pro', + 114 => 'moto x4', + 115 => 'moto z4', + 116 => 'Moto Backflip', + 117 => 'motorola razr 5G', + 118 => 'MOTOROLA XOOM MZ606', + 119 => 'MOTOROLA RAZR', + 120 => 'MOTWX435KT', + 121 => '(PLOYER-)?MOMO!!', + 122 => 'MOB-5045', + 123 => 'Mobii 7', + 124 => 'MoFing', + 125 => 'mocha', + 126 => 'MO-01J', + 127 => 'MO-01K', + 128 => 'Movistar Express', + 129 => 'Movistar Link', + 130 => 'Movistar Motion', + 131 => 'Movistar Prime', + 132 => 'MOVE', ), '@MP' => array ( @@ -4450,7 +4494,7 @@ 28 => 'mt8580!', 29 => 'mt8658!', 30 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', - 31 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 31 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 32 => 'MTC Android', 33 => 'MT791', 34 => 'MT70[0-9]{2,2}!!', @@ -4504,7 +4548,7 @@ ), '@MY' => array ( - 0 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 0 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 1 => 'MyPhone A818g Duo', 2 => 'MyPhone A818 Slim Duo', 3 => 'MyPhone A848 Duo', @@ -4698,7 +4742,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4790,7 +4834,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -4846,47 +4890,48 @@ 48 => 'Nook HD', 49 => 'Nook HD+', 50 => 'Novapad!!', - 51 => 'Nova!!', - 52 => 'Now', - 53 => 'NO1 S6', - 54 => 'NOAIN!!', - 55 => 'Nokia 1 Plus', - 56 => 'Nokia 1', - 57 => 'Nokia 2.1', - 58 => 'Nokia 2', - 59 => 'Nokia 3.1 Plus', - 60 => 'Nokia 3.1', - 61 => 'Nokia 4.2', - 62 => 'Nokia 5.1 Plus', - 63 => 'Nokia 5.1', - 64 => 'Nokia 6.1 Plus', - 65 => 'Nokia 6.1', - 66 => 'Nokia 6.2', - 67 => 'Nokia 6', - 68 => 'Nokia 7.1', - 69 => 'Nokia 7 Plus', - 70 => 'Nokia 8.1', - 71 => 'Nokia 8 Sirocco', - 72 => 'Nokia 8', - 73 => 'Nokia 9', - 74 => 'Nokia 10.1', - 75 => 'Nokia N9', - 76 => 'Nokia N900', - 77 => 'Nokia X', - 78 => 'Nokia X Dual SIM', - 79 => 'Nokia X+', - 80 => 'Nokia Xplus', - 81 => 'Nokia XL 4G', - 82 => 'Nokia XL', - 83 => 'Nokia XL Dual SIM', - 84 => 'Nokia X2', - 85 => 'NokiaX2DS', - 86 => 'Notion Ink ADAM', - 87 => 'Note III', - 88 => 'Nozomi', - 89 => 'Note 9P', - 90 => 'Noble TAB07-485', - 91 => '(QMobile|QTab|Q-Smart|Noir)!!', + 51 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 52 => 'Nova!!', + 53 => 'Now', + 54 => 'NO1 S6', + 55 => 'NOAIN!!', + 56 => 'Nokia 1 Plus', + 57 => 'Nokia 1', + 58 => 'Nokia 2.1', + 59 => 'Nokia 2', + 60 => 'Nokia 3.1 Plus', + 61 => 'Nokia 3.1', + 62 => 'Nokia 4.2', + 63 => 'Nokia 5.1 Plus', + 64 => 'Nokia 5.1', + 65 => 'Nokia 6.1 Plus', + 66 => 'Nokia 6.1', + 67 => 'Nokia 6.2', + 68 => 'Nokia 6', + 69 => 'Nokia 7.1', + 70 => 'Nokia 7 Plus', + 71 => 'Nokia 8.1', + 72 => 'Nokia 8 Sirocco', + 73 => 'Nokia 8', + 74 => 'Nokia 9', + 75 => 'Nokia 10.1', + 76 => 'Nokia N9', + 77 => 'Nokia N900', + 78 => 'Nokia X', + 79 => 'Nokia X Dual SIM', + 80 => 'Nokia X+', + 81 => 'Nokia Xplus', + 82 => 'Nokia XL 4G', + 83 => 'Nokia XL', + 84 => 'Nokia XL Dual SIM', + 85 => 'Nokia X2', + 86 => 'NokiaX2DS', + 87 => 'Notion Ink ADAM', + 88 => 'Note III', + 89 => 'Nozomi', + 90 => 'Note 9P', + 91 => 'Noble TAB07-485', + 92 => '(QMobile|QTab|Q-Smart|Noir)!!', ), '@NP' => array ( @@ -4902,7 +4947,7 @@ ), '@NT' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NetTab|NT-)!!', ), '@NU' => @@ -4921,7 +4966,7 @@ ), '@NX' => array ( - 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 0 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 1 => '(Nexian )?NX-A[0-9]{3,3}!!', 2 => 'NXA8QC116', 3 => 'NX16A8116K', @@ -5332,7 +5377,7 @@ ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5363,20 +5408,22 @@ 0 => 'P001', 1 => 'P001 2', 2 => 'P002', - 3 => 'P00C', - 4 => 'P00I', - 5 => 'P01M', - 6 => 'P01MA', - 7 => 'P01T', - 8 => 'P01T 1', - 9 => 'P01V', - 10 => 'P01W', - 11 => 'P01Y', - 12 => 'P01Z', - 13 => 'P021', - 14 => 'P022', - 15 => 'P023', - 16 => 'P024', + 3 => 'P00A', + 4 => 'P00C', + 5 => 'P00I', + 6 => 'P01M', + 7 => 'P01MA', + 8 => 'P01T', + 9 => 'P01T 1', + 10 => 'P01V', + 11 => 'P01W', + 12 => 'P01Y', + 13 => 'P01Z', + 14 => 'P021', + 15 => 'P022', + 16 => 'P023', + 17 => 'P024', + 18 => 'P027', ), '@P1' => array ( @@ -5384,22 +5431,23 @@ 1 => 'P105', 2 => 'P1m', 3 => 'P1ma40', - 4 => 'P1050X', - 5 => 'P1060X', - 6 => 'P1061X', - 7 => 'P10HD??(E6NA)', - 8 => 'P11HD', - 9 => 'P11HD四核(G9X6)', - 10 => 'P11HD??(G9X6)', - 11 => 'P11HD四核(G9X7)', - 12 => 'P19HD(E1K3)', - 13 => 'P19HD(E1K5)', + 4 => 'P1035X', + 5 => 'P1050X', + 6 => 'P1060X', + 7 => 'P1061X', + 8 => 'P10HD??(E6NA)', + 9 => 'P11HD', + 10 => 'P11HD四核(G9X6)', + 11 => 'P11HD??(G9X6)', + 12 => 'P11HD四核(G9X7)', + 13 => 'P19HD(E1K3)', + 14 => 'P19HD(E1K5)', ), '@P2' => array ( 0 => 'P2A700', 1 => 'P2Lite', - 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'P20HD EEA', ), '@P3' => @@ -5429,11 +5477,11 @@ 2 => 'P6 Pro', 3 => 'P6 Qmax', 4 => 'P6 Quad', - 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@P7' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'P700i', 2 => 'P701', 3 => 'P7', @@ -5576,7 +5624,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5594,7 +5642,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5738,7 +5786,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -5861,14 +5909,15 @@ ), '@PP' => array ( - 0 => 'PP4MT-7', - 1 => 'PP4MT-9', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 1 => 'PP4MT-7', + 2 => 'PP4MT-9', ), '@PR' => array ( 0 => 'Project Tango Tablet Development Kit', 1 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Pro 10 dual core', 4 => 'Prada 3.0', 5 => 'PRO 5', @@ -6307,7 +6356,7 @@ 2 => 'Rikomagic MK802III', 3 => 'Rikomagic MK802IIIS', 4 => '(Gsmart|Gigabyte|Rio)!!', - 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Rise', 7 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 8 => 'RIDGE', @@ -6359,25 +6408,28 @@ 7 => 'RMX1993', 8 => 'RMX2001', 9 => 'RMX2002', - 10 => 'RMX2063', - 11 => 'RMX2075', - 12 => 'RMX2086', - 13 => 'RMX2144', - 14 => 'RMX2155', - 15 => 'RMX2170', - 16 => 'RMX2202', - 17 => 'RMX3081', - 18 => 'RMX3085', - 19 => 'RMX3241', - 20 => 'RMX3242', - 21 => 'RMX3301', - 22 => 'RMX3311', - 23 => 'RMX3363', - 24 => 'RMX3370', + 10 => 'RMX2020', + 11 => 'RMX2063', + 12 => 'RMX2075', + 13 => 'RMX2086', + 14 => 'RMX2111', + 15 => 'RMX2144', + 16 => 'RMX2155', + 17 => 'RMX2170', + 18 => 'RMX2185', + 19 => 'RMX2202', + 20 => 'RMX3081', + 21 => 'RMX3085', + 22 => 'RMX3241', + 23 => 'RMX3242', + 24 => 'RMX3301', + 25 => 'RMX3311', + 26 => 'RMX3363', + 27 => 'RMX3370', ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6449,25 +6501,28 @@ 2 => 'S50', 3 => 'S50c', 4 => 'S52', - 5 => 'S5 Pro', - 6 => 'S5', - 7 => 'S5 Mini!', - 8 => 'S51SE', + 5 => 'S58Pro', + 6 => 'S5 Pro', + 7 => 'S5', + 8 => 'S5 Mini!', + 9 => 'S51SE', ), '@S6' => array ( 0 => 'S61', 1 => 'S62 Pro', - 2 => 'S658t', - 3 => 'S6 Edge+!', + 2 => 'S68Pro', + 3 => 'S658t', + 4 => 'S6 Edge+!', ), '@S7' => array ( - 0 => 'S710d', - 1 => 'S710D', - 2 => 'S720i', - 3 => 'S7', - 4 => 's732', + 0 => 'S70Lite', + 1 => 'S710d', + 2 => 'S710D', + 3 => 'S720i', + 4 => 'S7', + 5 => 's732', ), '@S8' => array ( @@ -6513,9 +6568,9 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 3 => '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 3 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', 5 => 'SCH-L710!', 6 => 'SCH-M828!', @@ -6585,19 +6640,21 @@ 17 => 'SHV-E[0-9]{3,3}!!', 18 => 'SHW-M[0-9]{3,3}!!', 19 => 'SH01D', - 20 => 'SH-C02', - 21 => 'SH-M01', - 22 => 'SH-M02', - 23 => 'SH-M02-EVA20', - 24 => 'SH-M03', - 25 => 'SH-M07', - 26 => 'SH-RM02', - 27 => 'SH-[01][0-9][A-Z]!!', - 28 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', - 29 => 'SH[FLTV][0-9]{2,2}!!', - 30 => 'SHARP-ADS1', - 31 => 'SHIFT6m', - 32 => 'SHARK PRS-H0', + 20 => 'SH-A01', + 21 => 'SH-C02', + 22 => 'SH-M01', + 23 => 'SH-M02', + 24 => 'SH-M02-EVA20', + 25 => 'SH-M03', + 26 => 'SH-M07', + 27 => 'SH-RM02', + 28 => 'SH-Z01', + 29 => 'SH-[01][0-9][A-Z]!!', + 30 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', + 31 => 'SH[FLTV][0-9]{2,2}!!', + 32 => 'SHARP-ADS1', + 33 => 'SHIFT6m', + 34 => 'SHARK PRS-H0', ), '@SI' => array ( @@ -6663,26 +6720,27 @@ 33 => 'SM-X200', 34 => 'SM-X205', 35 => 'SM-X700', - 36 => 'SM-X900', - 37 => 'SM-X906!', - 38 => 'SM-V700', - 39 => 'SM-W[0-9]{4,4}!!', - 40 => 'Smartphone Android by SFR STARADDICT II', - 41 => '(Smartfren|Andromax)!!', - 42 => 'Smartfren Tab 7', - 43 => 'SM919', - 44 => 'SM701', - 45 => 'SM801', - 46 => 'SmartQ!!', - 47 => 'SMART Sprint', - 48 => 'SMART Start', - 49 => 'SMART Surf2 4G', - 50 => 'SmartTab!!', + 36 => 'SM-X800', + 37 => 'SM-X900', + 38 => 'SM-X906!', + 39 => 'SM-V700', + 40 => 'SM-W[0-9]{4,4}!!', + 41 => 'Smartphone Android by SFR STARADDICT II', + 42 => '(Smartfren|Andromax)!!', + 43 => 'Smartfren Tab 7', + 44 => 'SM919', + 45 => 'SM701', + 46 => 'SM801', + 47 => 'SmartQ!!', + 48 => 'SMART Sprint', + 49 => 'SMART Start', + 50 => 'SMART Surf2 4G', + 51 => 'SmartTab!!', ), '@SN' => array ( 0 => 'SN[0-9]!!', - 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 1 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 2 => 'Snexian!!', 3 => '(SNM\\-)?LT[0-9]{2,2}[a-z]?!!', 4 => '(SNM\\-)?M[0-9]{2,2}[a-z]!!', @@ -6699,7 +6757,7 @@ 7 => 'Softwinerf900', 8 => 'SoftwinerEvbV13', 9 => 'soho', - 10 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 10 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 11 => 'SONIC', 12 => 'Sonim!!', 13 => 'SO-0[0-9][A-Z]!!', @@ -6765,8 +6823,8 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 16 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 16 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', 19 => 'STM[0-9]{3,3}H!!', @@ -6946,8 +7004,9 @@ array ( 0 => '(OPPO-?)?T703!', 1 => 'T774H', - 2 => 'T720 SE', - 3 => 'T760 from moage.com', + 2 => 'T775H', + 3 => 'T720 SE', + 4 => 'T760 from moage.com', ), '@T8' => array ( @@ -6972,7 +7031,7 @@ 5 => 'Tablet-P27', 6 => 'TA10CA3', 7 => '(tablet )?fnac!!', - 8 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 8 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 9 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', 10 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 11 => 'TA-FONE!!', @@ -7223,7 +7282,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -7276,20 +7335,21 @@ 12 => '(Transformer )?(Pad )?TF700(T|K)!', 13 => 'Transformer (Pad )?Infinity!', 14 => 'TR720F', - 15 => 'Trekker-X4', - 16 => 'TR10CS1', - 17 => 'TripNiCE Pyramid', - 18 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 19 => 'TR10RS1', - 20 => '(KAZAM|Thunder|Tornado|Trooper)!!', - 21 => 'Triumph', - 22 => 'TRACER OXYGEN GS1', - 23 => 'Trevi PHABLET 4C', - 24 => 'Trevi PHABLET 5 S', - 25 => 'TREQ!!', - 26 => 'Trevi REVERSE 5.5Q', - 27 => 'Trevi PHABLET 6 S', - 28 => 'TRUE BEYOND 3G', + 15 => 'TREKKER-X3', + 16 => 'Trekker-X4', + 17 => 'TR10CS1', + 18 => 'TripNiCE Pyramid', + 19 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', + 20 => 'TR10RS1', + 21 => '(KAZAM|Thunder|Tornado|Trooper)!!', + 22 => 'Triumph', + 23 => 'TRACER OXYGEN GS1', + 24 => 'Trevi PHABLET 4C', + 25 => 'Trevi PHABLET 5 S', + 26 => 'TREQ!!', + 27 => 'Trevi REVERSE 5.5Q', + 28 => 'Trevi PHABLET 6 S', + 29 => 'TRUE BEYOND 3G', ), '@TS' => array ( @@ -7472,6 +7532,8 @@ 4 => 'V2 Viper S', 5 => 'V2 Viper X', 6 => 'V2 Viper X plus', + 7 => 'V2023', + 8 => 'V2056A', ), '@V3' => array ( @@ -7630,7 +7692,7 @@ 20 => 'Vibo-A688', 21 => 'VitMod ExtraLite 1.6.5.fullodex for HTC HD7 Pro', 22 => 'Vivid 4G', - 23 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 23 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 24 => 'Vibe K5 Plus', 25 => 'VIBE X2 (X2)', 26 => 'VIBE X3', @@ -7683,7 +7745,7 @@ ), '@VK' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VK410', 2 => 'VK700', 3 => 'VK810 4G', @@ -7701,7 +7763,7 @@ ), '@VN' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', ), '@VO' => array ( @@ -7710,7 +7772,7 @@ 2 => 'Volantisg', 3 => 'VOYAGER DG300', 4 => 'VOYAGER2 DG310', - 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 5 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 6 => 'Vox', 7 => 'Vortex', 8 => 'vollo Vi86', @@ -7756,7 +7818,7 @@ ), '@VT' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'VT6078', 2 => 'VT75C', 3 => 'VT77C', @@ -7779,11 +7841,13 @@ '@W ' => array ( 0 => 'W P200', + 1 => 'W C860', ), '@W-' => array ( 0 => 'W-P311-EEA', - 1 => 'W-V730-EEA', + 1 => 'W-V830-EEA', + 2 => 'W-V730-EEA', ), '@W1' => array ( @@ -7860,7 +7924,7 @@ ), '@WA' => array ( - 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 0 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 1 => 'WA-U420D', 2 => 'WALSUN S1 Pro', 3 => 'WALSUN S2', @@ -8015,17 +8079,19 @@ 19 => 'X00T', 20 => 'X00TD', 21 => 'X00DE', - 22 => 'X01AD', - 23 => 'X013D', - 24 => 'X013DA', - 25 => 'X013DB', - 26 => 'X013DC', - 27 => 'X015D', - 28 => 'X014D', - 29 => 'X002', - 30 => 'X003', - 31 => 'X005', - 32 => 'X008', + 22 => 'X00QD', + 23 => 'X01AD', + 24 => 'X013D', + 25 => 'X013DA', + 26 => 'X013DB', + 27 => 'X013DC', + 28 => 'X015D', + 29 => 'X00ID', + 30 => 'X014D', + 31 => 'X002', + 32 => 'X003', + 33 => 'X005', + 34 => 'X008', ), '@X1' => array ( @@ -8045,20 +8111,21 @@ 13 => 'X1 Selfie', 14 => 'X1010', 15 => 'X1030X', - 16 => 'X1060X', - 17 => 'X10(a|i|iv|i-o|s)?$!', - 18 => 'X10 ?(Mini ?Pro)$!', - 19 => 'X10 ?(Mini)$!', - 20 => 'X10H(G3C5)', - 21 => 'X10HD 3G(M6K6)', - 22 => 'X16 Plus(D3A5)', - 23 => 'X16 Power(D6F7)', - 24 => 'X16 PRO(D6F8)', - 25 => 'X16HD (K3J3)', - 26 => 'X16HD 3G(M5J4)', - 27 => 'X16HD 3G(M5J5)', - 28 => 'X16HD 3G(M5J5', - 29 => 'X16HD 3G(M5J6)', + 16 => 'X1031X', + 17 => 'X1060X', + 18 => 'X10(a|i|iv|i-o|s)?$!', + 19 => 'X10 ?(Mini ?Pro)$!', + 20 => 'X10 ?(Mini)$!', + 21 => 'X10H(G3C5)', + 22 => 'X10HD 3G(M6K6)', + 23 => 'X16 Plus(D3A5)', + 24 => 'X16 Power(D6F7)', + 25 => 'X16 PRO(D6F8)', + 26 => 'X16HD (K3J3)', + 27 => 'X16HD 3G(M5J4)', + 28 => 'X16HD 3G(M5J5)', + 29 => 'X16HD 3G(M5J5', + 30 => 'X16HD 3G(M5J6)', ), '@X2' => array ( @@ -8102,6 +8169,10 @@ 7 => 'X506S', 8 => 'X507Q', ), + '@X6' => + array ( + 0 => 'X67 5G', + ), '@X7' => array ( 0 => 'X710d', @@ -8344,12 +8415,13 @@ 0 => 'XQ-AT51', 1 => 'XQ-AT52', 2 => 'XQ-BC52', - 3 => 'XQ-AS52', - 4 => 'XQ-BQ52', - 5 => 'XQ-AU52', - 6 => 'XQ-BT52', - 7 => 'XQ-AD52', - 8 => 'XQ-BE52', + 3 => 'XQ-BC72', + 4 => 'XQ-AS52', + 5 => 'XQ-BQ52', + 6 => 'XQ-AU52', + 7 => 'XQ-BT52', + 8 => 'XQ-AD52', + 9 => 'XQ-BE52', ), '@XT' => array ( @@ -8403,7 +8475,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( @@ -8582,13 +8654,15 @@ 57 => 'Z01KD', 58 => 'Z01KDA', 59 => 'Z01MDA', - 60 => 'Z00YD', + 60 => 'Z01RD', + 61 => 'Z01QD', + 62 => 'Z00YD', ), '@Z1' => array ( 0 => '(BB )?Z10$!', 1 => 'Z1-H39LW', - 2 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!', + 2 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 3 => 'Z1i', ), '@Z2' => @@ -8842,27 +8916,29 @@ 94 => 'ZTE A2017', 95 => 'ZTE A2017G', 96 => 'ZTE A2017U', - 97 => 'ZTE B2015', - 98 => 'ZTE B2016', - 99 => 'ZTE B2017', - 100 => 'ZTE B2017G', - 101 => 'ZTE B2019G', - 102 => 'ZTE C2016', - 103 => 'ZTE C2017', - 104 => 'ZTE STAR', - 105 => 'ZTE Star 1', - 106 => 'ZTE S2004', - 107 => 'ZTE S2005', - 108 => 'ZTE S2007', - 109 => 'ZTE S2010', - 110 => 'ZTE S2014', - 111 => 'ZTE U9180', - 112 => 'ZTE U9370', - 113 => 'ZTE V6500', - 114 => 'ZTE V8110', - 115 => 'ZTE B860A', - 116 => 'ZTE B860AV1', - 117 => 'ZTE W1010', + 97 => 'ZTE A2020G Pro', + 98 => 'ZTE A2022PG', + 99 => 'ZTE B2015', + 100 => 'ZTE B2016', + 101 => 'ZTE B2017', + 102 => 'ZTE B2017G', + 103 => 'ZTE B2019G', + 104 => 'ZTE C2016', + 105 => 'ZTE C2017', + 106 => 'ZTE STAR', + 107 => 'ZTE Star 1', + 108 => 'ZTE S2004', + 109 => 'ZTE S2005', + 110 => 'ZTE S2007', + 111 => 'ZTE S2010', + 112 => 'ZTE S2014', + 113 => 'ZTE U9180', + 114 => 'ZTE U9370', + 115 => 'ZTE V6500', + 116 => 'ZTE V8110', + 117 => 'ZTE B860A', + 118 => 'ZTE B860AV1', + 119 => 'ZTE W1010', ), '@ZU' => array ( diff --git a/data/models-android.php b/data/models-android.php index 1fec04213..72e438985 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -579,6 +579,7 @@ 'B3-A32' => [ 'Acer', 'Iconia One 10 B3-A32', DeviceType::TABLET ], 'B3-A40' => [ 'Acer', 'Iconia One 10 B3-A40', DeviceType::TABLET ], 'B3-A40FHD' => [ 'Acer', 'Iconia One 10 B3-A40FHD', DeviceType::TABLET ], + 'B3-A50FHD' => [ 'Acer', 'Iconia One 10 B3-A50FHD', DeviceType::TABLET ], 'One 7 M77GHG' => [ 'Acer', 'Iconia One 7 M77GHG', DeviceType::TABLET ], 'TD070VA1' => [ 'Acer', 'Iconia One 7 TD070VA1', DeviceType::TABLET ], @@ -1024,7 +1025,7 @@ '5045[ADFGJTXY]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.0)' ], '5046[DGIJUY]!' => [ 'Alcatel', 'A3' ], '5047[DIUY]!' => [ 'Alcatel', 'U5 HD' ], - '5048[Y]!' => [ 'Alcatel', '3X (2019)' ], + '5048[UY]!' => [ 'Alcatel', '3X (2019)' ], '5049[EGSWZ]!' => [ 'Alcatel', 'A30 Fierce' ], 'one ?touch 5050!' => [ 'Alcatel', 'One Touch Pop S3' ], '5050[ASYX]!' => [ 'Alcatel', 'One Touch Pop S3' ], @@ -1059,6 +1060,7 @@ '6014[DX]!' => [ 'Alcatel', 'One Touch Idol Mini' ], 'one ?touch 6016!' => [ 'Alcatel', 'One Touch Idol 2 Mini' ], '6016[ADEX]!' => [ 'Alcatel', 'One Touch Idol 2 Mini' ], + '6025[D]!' => [ 'Alcatel', '1S (2021)' ], 'one ?touch 6030!' => [ 'Alcatel', 'One Touch Idol' ], '6031[X]!' => [ 'Alcatel', 'One Touch Idol Ultra' ], 'one ?touch 6032!' => [ 'Alcatel', 'One Touch Idol α' ], @@ -1334,6 +1336,7 @@ 'KFDOWI' => [ 'Amazon', 'Fire HD 8 (2017)', DeviceType::TABLET, Flag::FIREOS ], // xth generation 8" HD (1280 x 800) 'KFSUWI' => [ 'Amazon', 'Fire HD 10 (2017)', DeviceType::TABLET, Flag::FIREOS ], // 5th generation 10" HD (1280 x 800) 'KFMAWI' => [ 'Amazon', 'Fire HD 8 (2018)', DeviceType::TABLET, Flag::FIREOS ], + 'KFKAWI' => [ 'Amazon', 'Fire HD 8 (2018)', DeviceType::TABLET, Flag::FIREOS ], 'KFMUWI' => [ 'Amazon', 'Fire 7 (2019)', DeviceType::TABLET, Flag::FIREOS ], 'SD4930UR' => [ 'Amazon', 'Fire Phone', DeviceType::MOBILE, Flag::FIREOS ], 'AFTB' => [ 'Amazon', 'Fire TV', DeviceType::TELEVISION, Flag::FIREOS ], @@ -1697,10 +1700,13 @@ 'Archos Core 70 3G' => [ 'Archos', 'Core 70', DeviceType::TABLET ], 'ARCHOS Core 101 Wifi' => [ 'Archos', 'Core 101', DeviceType::TABLET ], 'Archos Core 101 3G' => [ 'Archos', 'Core 101', DeviceType::TABLET ], + 'Archos Oxygen 63' => [ 'Archos', 'Oxygen 63' ], 'Archos Sense 55 DC' => [ 'Archos', 'Sense 55' ], 'Archos Sense 55 S' => [ 'Archos', 'Sense 55' ], ], + 'X67 5G' => [ 'Archos', 'X67 5G' ], + 'Artes D708' => [ 'Artes', 'D708', DeviceType::TABLET ], 'Artes D821' => [ 'Artes', 'D821', DeviceType::TABLET ], 'D9702' => [ 'Artes', 'D9702', DeviceType::TABLET ], @@ -1786,6 +1792,7 @@ 'PadFone X mini' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], 'ETBW11AA' => [ 'Asus', 'Tough' ], 'I01WDX' => [ 'Asus', 'Zenfone 8' ], + 'I001DC' => [ 'Asus', 'ROG Phone 2' ], 'I001DE' => [ 'Asus', 'ROG Phone 2' ], 'I002D' => [ 'Asus', 'Zenfone 7' ], 'I003D' => [ 'Asus', 'ROG Phone 3' ], @@ -1850,6 +1857,7 @@ 'P001' => [ 'Asus', 'ZenPad C 7.0 (Z170MG)', DeviceType::TABLET ], 'P001 2' => [ 'Asus', 'ZenPad C 7.0 (Z170MG)', DeviceType::TABLET ], 'P002' => [ 'Asus', 'ZenPad 7.0 (Z370KL)', DeviceType::TABLET ], + 'P00A' => [ 'Asus', 'ZenPad 8.0 (Z380M)', DeviceType::TABLET ], 'P00C' => [ 'Asus', 'ZenPad 10 (Z300M)', DeviceType::TABLET ], 'P00I' => [ 'Asus', 'ZenPad Z10 (Z500KL)', DeviceType::TABLET ], 'P01M' => [ 'Asus', 'ZenPad S 8.0 (Z580C)', DeviceType::TABLET ], @@ -1864,6 +1872,7 @@ 'P022' => [ 'Asus', 'ZenPad 8.0 (Z380C)', DeviceType::TABLET ], 'P023' => [ 'Asus', 'ZenPad 10 (Z300C)', DeviceType::TABLET ], 'P024' => [ 'Asus', 'ZenPad 8.0 (Z380KL)', DeviceType::TABLET ], + 'P027' => [ 'Asus', 'ZenPad 3S 10 (Z500M)', DeviceType::TABLET ], // '' => [ 'Asus', 'ZenPad 10 (Z300CNL)', DeviceType::TABLET ], 'A001' => [ 'Asus', 'ZenFone 3 Ultra (ZU680KL)' ], 'X007D' => [ 'Asus', 'ZenFone Go (ZB552KL)' ], @@ -1888,6 +1897,7 @@ 'X00T' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00TD' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00DE' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], + 'X00QD' => [ 'Asus', 'ZenFone 5 (ZE620KL)' ], 'X01AD' => [ 'Asus', 'ZenFone Max M2 (ZB633KL)' ], 'X013D' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X013DA' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], @@ -1897,6 +1907,7 @@ 'X013DB' => [ 'Asus', 'ZenFone Go TV (ZB551KL)' ], 'X013DC' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'ZB551KL' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], + 'X00ID' => [ 'Asus', 'ZenFone 4 Max (ZC554KL)' ], 'X014D' => [ 'Asus', 'ZenFone Go (ZB452KG)' ], 'Z002' => [ 'Asus', 'ZenFone 6 (A601CG)' ], 'Z007' => [ 'Asus', 'ZenFone C (ZC451CG)' ], @@ -1960,6 +1971,8 @@ 'Z01KD' => [ 'Asus', 'ZenFone 4 (ZE554KL)' ], 'Z01KDA' => [ 'Asus', 'ZenFone 4 (ZE554KL)' ], 'Z01MDA' => [ 'Asus', 'ZenFone 4 Selfie Pro (ZD552KL)' ], + 'Z01RD' => [ 'Asus', 'ZenFone 5z (ZS620KL)' ], + 'Z01QD' => [ 'Asus', 'ROG Phone' ], 'ZB500KG' => [ 'Asus', 'ZenFone Go (ZB500KG)' ], 'ZB500KL' => [ 'Asus', 'ZenFone Go (ZB500KL)' ], @@ -2265,12 +2278,14 @@ 'BBE100-[0-9]!' => [ 'BlackBerry', '"BBE100"' ], 'BBF100-[0-9]!' => [ 'BlackBerry', 'KEY2' ], + 'BL6000Pro' => [ 'Blackview', 'BL6000 Pro' ], 'BV4900Pro' => [ 'Blackview', 'BV4900 Pro' ], 'BV5900' => [ 'Blackview', 'BV5900' ], 'BV6300Pro' => [ 'Blackview', 'BV6300 Pro' ], 'BV8000Pro' => [ 'Blackview', 'BV8000 Pro' ], 'BV9100' => [ 'Blackview', 'BV9100' ], 'BV9500' => [ 'Blackview', 'BV9500' ], + 'BV9500Plus' => [ 'Blackview', 'BV9500 Plus' ], 'BV9600E' => [ 'Blackview', 'BV9600E' ], 'BV9900Pro' => [ 'Blackview', 'BV9900 Pro' ], 'P2Lite' => [ 'Blackview', 'P2 Lite' ], @@ -2446,6 +2461,7 @@ 'BLU VIVO SELFIE' => [ 'BLU', 'Vivo Selfie' ], 'VIVO XL' => [ 'BLU', 'Vivo XL' ], 'Vivo XL2' => [ 'BLU', 'Vivo XL2' ], + 'Vivo XI PLUS' => [ 'BLU', 'Vivo XI+' ], ], 'R1 HD' => [ 'BLU', 'R1 HD' ], @@ -3474,6 +3490,8 @@ 'CROSSCALL WILD' => [ 'Crosscall', 'WILD' ], ], + 'Action-X3' => [ 'Crosscall', 'Action-X3' ], + 'TREKKER-X3' => [ 'Crosscall', 'Trekker-X3' ], 'Trekker-X4' => [ 'Crosscall', 'Trekker-X4' ], 'Novapad!!' => [ @@ -3976,6 +3994,9 @@ 'Discovery2-DG500C' => [ 'Doogee', 'Discovery 2 DG500C' ], 'DG750 Iron Bone' => [ 'Doogee', 'Iron Bone DG750' ], 'TURBO DG2014' => [ 'Doogee', 'Turbo DG2014' ], + 'S58Pro' => [ 'Doogee', 'S58 Pro' ], + 'S68Pro' => [ 'Doogee', 'S68 Pro' ], + 'S70Lite' => [ 'Doogee', 'S70 Lite' ], 'S88Pro' => [ 'Doogee', 'S88 Pro' ], 'S96Pro' => [ 'Doogee', 'S96 Pro' ], @@ -4768,8 +4789,11 @@ 'GS110' => [ 'Gigaset', 'GS110' ], 'GS190' => [ 'Gigaset', 'GS190' ], + 'GS195' => [ 'Gigaset', 'GS195' ], 'GS270' => [ 'Gigaset', 'GS270' ], 'GS270 plus' => [ 'Gigaset', 'GS270 Plus' ], + 'GS280' => [ 'Gigaset', 'GS280' ], + 'GS290' => [ 'Gigaset', 'GS290' ], 'E940-2795-00' => [ 'Gigaset', 'GS4' ], 'E940-2796-00' => [ 'Gigaset', 'GS4' ], @@ -6271,7 +6295,7 @@ 'JDN2-AL00HN' => [ 'Huawei', 'Honor Tab 5', DeviceType::TABLET ], 'JDN2-W09HN' => [ 'Huawei', 'Honor Tab 5', DeviceType::TABLET ], - '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NXT|SNE|TAS|Z100)!!' => [ + '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!' => [ '(HW-|HUAWEI )?MT1-(T00|U06)!' => [ 'Huawei', 'Ascend Mate' ], '(HW-|HUAWEI )?MATE-U06!' => [ 'Huawei', 'Ascend Mate' ], '(HW-|HUAWEI )?MT2-?(C00|L01|L02|L03|L05)!' => [ 'Huawei', 'Ascend Mate 2' ], @@ -6289,6 +6313,7 @@ '(HW-|HUAWEI )?LYA-(AL00|AL00P|AL10|L09|L0C|L29|TL00)!' => [ 'Huawei', 'Mate 20 Pro' ], '(HW-|HUAWEI )?TAS-(AL00)!' => [ 'Huawei', 'Mate 30' ], '(HW-|HUAWEI )?LIO-(AL00|AN00|L29)!' => [ 'Huawei', 'Mate 30 Pro' ], + '(HW-|HUAWEI )?NOH-(NX9)!' => [ 'Huawei', 'Mate 40' ], '(HW-|HUAWEI )?CRR-(L09|CL00|CL20|TL00|UL00|UL20)!' => [ 'Huawei', 'Mate S' ], ], @@ -6299,7 +6324,7 @@ '(HW-|HUAWEI )?SLA-(AL00|L02|L03|L22|TL10)!' => [ 'Huawei', 'Enjoy 7' ], '(HW-|HUAWEI )?TRT-(AL00|L21|L53|LX1|LX2|LX3|TL10)!' => [ 'Huawei', 'Enjoy 7 Plus' ], '(HW-|HUAWEI )?FLA-(AL10|AL20|LX1|LX2|LX3|TL10)!' => [ 'Huawei', 'Enjoy 8 Plus' ], - '(HW-|HUAWEI )?DRA-(AL00|L01|L21|LX2)!' => [ 'Huawei', 'Enjoy 8e' ], + '(HW-|HUAWEI )?DRA-(AL00|L01|L21|LX2|LX9)!' => [ 'Huawei', 'Enjoy 8e' ], '(HW-|HUAWEI )?ATU-(AL10|L11|L21|L22|L31|LX3|TL10)!' => [ 'Huawei', 'Enjoy 8e' ], '(HW-|HUAWEI )?POT-(AL00a|LX1|LX1AF|LX1T|LX2J|LX3)!' => [ 'Huawei', 'Enjoy 9S' ], '(HW-|HUAWEI )?MRD-(AL00|LX1|LX1F|LX1N|LX2|LX3)!' => [ 'Huawei', 'Enjoy 9e' ], @@ -6307,7 +6332,7 @@ '(HW-|HUAWEI )?DVC-(AN20)!' => [ 'Huawei', 'Enjoy 20 Pro' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6332,6 +6357,7 @@ '(HW-|HUAWEI )?FRD-(AL00|AL10|DL00|L02|L04|L09|L14|L19)!' => [ 'Huawei', 'Honor 8' ], '(HW-|HUAWEI )?JAT-(L29|L41|LX1|LX3)!' => [ 'Huawei', 'Honor 8A Pro' ], '(HW-|HUAWEI )?BKK-(AL00|AL10|L21|LX2)!' => [ 'Huawei', 'Honor 8C' ], + '(HW-|HUAWEI )?KSA-(LX9)!' => [ 'Huawei', 'Honor 8S' ], '(HW-|HUAWEI )?JSN-(AL00|AL00a|L21|L22|L23|L42|TL00)!' => [ 'Huawei', 'Honor 8X' ], '(HW-|HUAWEI )?ATH-(UL01|UL06)!' => [ 'Huawei', 'Honor ShotX' ], '(HW-|HUAWEI )?KNT-(AL10|AL20|TL10|UL10)!' => [ 'Huawei', 'Honor V8' ], @@ -6362,7 +6388,7 @@ '(HW-|HUAWEI )?BLL-(L21|L22|L23)!' => [ 'Huawei', 'GR5 (2017)' ], ], - '(HW-|HUAWEI )?(ALE|ANA|ANE|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ + '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!' => [ 'HUAWEI D2' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?D2-(0082|2010|5000|6070|6114)!' => [ 'Huawei', 'Ascend D2' ], '(HW-|HUAWEI )?G6-(C00|L11|L22|L33|T00|U00|U10|U34|U251)!' => [ 'Huawei', 'Ascend G6' ], @@ -6388,6 +6414,7 @@ '(HW-|HUAWEI )?VKY-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P10 Plus' ], '(HW-|HUAWEI )?FIG-?(AL00|AL10|LA1|LX1|LX3|TL00)!' => [ 'Huawei', 'P Smart' ], '(HW-|HUAWEI )?STK-?(L21|L22|LX1|LX3)!' => [ 'Huawei', 'P Smart Z' ], + '(HW-|HUAWEI )?PPA-?(LX2)!' => [ 'Huawei', 'P Smart (2021)' ], '(HW-|HUAWEI )?EML-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P20' ], '(HW-|HUAWEI )?ANE-?(AL00|L21|LX1|LX2|LX2J|LX3)!' => [ 'Huawei', 'P20 Lite' ], '(HW-|HUAWEI )?CLT-?(AL00|AL01|L04|L09|L29|L39|TL00|TL01)!' => [ 'Huawei', 'P20 Pro' ], @@ -6396,13 +6423,14 @@ '(HW-|HUAWEI )?MAR-?(LX1B)!' => [ 'Huawei', 'P30 Lite' ], '(HW-|HUAWEI )?ANA-?(NX9)!' => [ 'Huawei', 'P40' ], '(HW-|HUAWEI )?JNY-?(LX1)!' => [ 'Huawei', 'P40 Lite' ], + '(HW-|HUAWEI )?CDY-?(NX9A)!' => [ 'Huawei', 'P40 Lite' ], '(HW-|HUAWEI )?ELS-?(NX9)!' => [ 'Huawei', 'P40 Pro' ], ], 'Rock-(AL00|CL00|L01|L03)!' => [ 'Huawei', 'Ascend G7' ], 'HUAWEI A168-(AL10|DL09|L09|L29)!' => [ 'Huawei', 'P9' ], - '(HW-|HUAWEI )?(AMN|ART|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MYA)!!' => [ + '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!' => [ '(HW-|HUAWEI )?CRO-(L02|L03|L22|U00)!' => [ 'Huawei', 'Y3 (2017)' ], '(HW-|HUAWEI )?LUA-(L01|L02|L03|L13|L21|L22|L23|U02|U03|U22|U23)!' => [ 'Huawei', 'Y3 II' ], '(HW-|HUAWEI )?CUN-(AL00|L01|L02|L03|L21|L22|L23|L33|TL00|U29)!' => [ 'Huawei', 'Y5 II' ], @@ -6412,9 +6440,11 @@ '(HW-|HUAWEI )?SCU-(U31)!' => [ 'Huawei', 'Y6C' ], '(HW-|HUAWEI )?CAM-(L01|L03|L11|L21|L23|L32|AL00|CL00|TL00|UL00)!' => [ 'Huawei', 'Y6 II' ], '(HW-|HUAWEI )?LYO-(L01|L02|L21)!' => [ 'Huawei', 'Y6 II Compact' ], + '(HW-|HUAWEI )?MED-(LX9N)!' => [ 'Huawei', 'Y6p' ], '(HW-|HUAWEI )?LDN-(AL00|L01|L21|LX2|LX3|TL00)!' => [ 'Huawei', 'Y7 Prime (2018)' ], '(HW-|HUAWEI )?DUB-(AL20|LX1|LX3)!' => [ 'Huawei', 'Y7 Prime (2019)' ], '(HW-|HUAWEI )?ART-(L29)!' => [ 'Huawei', 'Y7p' ], + '(HW-|HUAWEI )?AQM-(LX1)!' => [ 'Huawei', 'Y8p' ], ], '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!' => [ 'Huawei', 'Nova' ], @@ -8537,8 +8567,11 @@ ], 'Lenovo TB-7304F' => [ 'Lenovo', 'Tab 7 Essential', DeviceType::TABLET ], + 'Lenovo TB-7305F' => [ 'Lenovo', 'Tab M7', DeviceType::TABLET ], 'Lenovo TB-8705F' => [ 'Lenovo', 'Tab M8', DeviceType::TABLET ], 'Lenovo TB-J606F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], + 'Lenovo TB-J606L' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], + 'Lenovo TB-J607Z' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], 'Lenovo TB-J616F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], 'Lenovo TB-J706F' => [ 'Lenovo', 'Tab P11 Pro', DeviceType::TABLET ], 'Lenovo TB-J716F' => [ 'Lenovo', 'XiaoXin Pad Pro 2021', DeviceType::TABLET ], @@ -8548,8 +8581,10 @@ 'Lenovo TB-X306X' => [ 'Lenovo', 'Tab M10 HD', DeviceType::TABLET ], 'Lenovo TB-X505F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], 'Lenovo TB-X605F' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], + 'Lenovo TB-X605L' => [ 'Lenovo', 'Tab M10', DeviceType::TABLET ], 'Lenovo TB-X606F' => [ 'Lenovo', 'Tab M11 FHD Plus', DeviceType::TABLET ], 'Lenovo TB-X606X' => [ 'Lenovo', 'Tab M10 FHD Plus', DeviceType::TABLET ], + 'Lenovo TB-X6C6F' => [ 'Lenovo', 'Tab K10', DeviceType::TABLET ], 'Lenovo TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'TB-X103F' => [ 'Lenovo', 'Tab 10', DeviceType::TABLET ], 'Lenovo TB2-X30F' => [ 'Lenovo', 'Tab 2 A10', DeviceType::TABLET ], @@ -8563,6 +8598,7 @@ 'Lenovo TB3-X70F' => [ 'Lenovo', 'Tab 3 10 Business', DeviceType::TABLET ], 'Lenovo TB3-X70L' => [ 'Lenovo', 'Tab 3 10 Business', DeviceType::TABLET ], 'Lenovo TB-8504F' => [ 'Lenovo', 'Tab 4 8', DeviceType::TABLET ], + 'Lenovo TB-8504X' => [ 'Lenovo', 'Tab 4 8', DeviceType::TABLET ], 'Lenovo TB-8505F' => [ 'Lenovo', 'Tab M8 HD', DeviceType::TABLET ], 'Lenovo TB-8703F' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], 'Lenovo TB-8704F' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], @@ -8570,6 +8606,7 @@ 'Lenovo TB-X704F' => [ 'Lenovo', 'Tab 4 10 Plus', DeviceType::TABLET ], 'Lenovo TB-X704L' => [ 'Lenovo', 'Tab 4 10 Plus', DeviceType::TABLET ], 'Lenovo TB-X705F' => [ 'Lenovo', 'Tab P10', DeviceType::TABLET ], + 'Lenovo TB-X705L' => [ 'Lenovo', 'Tab P10', DeviceType::TABLET ], '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!' => [ 'IdeaTab ?K2110A-(F)!' => [ 'Lenovo', 'IdeaTab K2110', DeviceType::TABLET ], @@ -9538,6 +9575,7 @@ 'LM-G910!' => [ 'LG', 'Velvet 4G' ], 'LM-K200!' => [ 'LG', 'K22' ], 'LM-K420!' => [ 'LG', 'K42' ], + 'LM-K520!' => [ 'LG', 'K52' ], 'LM-Q610!' => [ 'LG', 'Q7' ], 'LM-Q617!' => [ 'LG', 'Q7 BTS Edition' ], 'LM-Q630!' => [ 'LG', 'K61' ], @@ -9552,6 +9590,7 @@ 'LM-V40[59]!' => [ 'LG', 'V40 ThinQ' ], 'LM-V450!' => [ 'LG', 'V50 ThinQ' ], 'LM-V500!' => [ 'LG', 'V50 ThinQ' ], + 'LM-V510!' => [ 'LG', 'V50S ThinQ' ], 'LM-V600!' => [ 'LG', 'V60 ThinQ' ], 'LM-X120!' => [ 'LG', 'K20' ], 'LM-X210!' => [ 'LG', 'Aristo 2' ], @@ -10043,12 +10082,13 @@ 'LIFETAB E1042X' => [ 'Medion', 'Lifetab E1042X', DeviceType::TABLET ], 'LIFETAB E1070X' => [ 'Medion', 'Lifetab E1070X', DeviceType::TABLET ], 'LIFETAB E1071X' => [ 'Medion', 'Lifetab E1071X', DeviceType::TABLET ], + 'LIFETAB E1091X' => [ 'Medion', 'Lifetab E1091X', DeviceType::TABLET ], 'LIFETAB P733X' => [ 'Medion', 'Lifetab P733X', DeviceType::TABLET ], 'LIFETAB P831X' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], 'LIFETAB P831X.2' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], 'LIFETAB P891X' => [ 'Medion', 'Lifetab P891X', DeviceType::TABLET ], 'LIFETAB P1034X' => [ 'Medion', 'Lifetab P1034X', DeviceType::TABLET ], - 'P1035X' => [ 'Medion', 'Lifetab P1035X', DeviceType::TABLET ], + 'LIFETAB P1071X' => [ 'Medion', 'Lifetab P1071X', DeviceType::TABLET ], 'LIFETAB S7316' => [ 'Medion', 'Lifetab S7316', DeviceType::TABLET ], 'LIFETAB S732X' => [ 'Medion', 'Lifetab S732X', DeviceType::TABLET ], 'LIFETAB S785X' => [ 'Medion', 'Lifetab S785X', DeviceType::TABLET ], @@ -10059,7 +10099,6 @@ 'LIFETAB S1033X' => [ 'Medion', 'Lifetab S1033X', DeviceType::TABLET ], 'LIFETAB S1034X' => [ 'Medion', 'Lifetab S1034X', DeviceType::TABLET ], 'LIFETAB S1036X' => [ 'Medion', 'Lifetab S1036X', DeviceType::TABLET ], - 'X1030X' => [ 'Medion', 'Lifetab X1030X', DeviceType::TABLET ], 'MEDION LIFE P4012' => [ 'Medion', 'Life P4012' ], 'MEDION P4013' => [ 'Medion', 'Life P4013' ], 'MEDION-P4013' => [ 'Medion', 'Life P4013' ], @@ -10073,11 +10112,14 @@ ], 'E1050X' => [ 'Medion', 'Lifetab E1050X', DeviceType::TABLET ], + 'E1051X' => [ 'Medion', 'Lifetab E1051X', DeviceType::TABLET ], 'E1060X' => [ 'Medion', 'Lifetab E1060X', DeviceType::TABLET ], + 'P1035X' => [ 'Medion', 'Lifetab P1035X', DeviceType::TABLET ], 'P1050X' => [ 'Medion', 'Lifetab P1050X', DeviceType::TABLET ], 'P1060X' => [ 'Medion', 'Lifetab P1060X', DeviceType::TABLET ], 'P1061X' => [ 'Medion', 'Lifetab P1061X', DeviceType::TABLET ], 'X1030X' => [ 'Medion', 'Lifetab X1030X', DeviceType::TABLET ], + 'X1031X' => [ 'Medion', 'Lifetab X1031X', DeviceType::TABLET ], 'X1060X' => [ 'Medion', 'Lifetab X1060X', DeviceType::TABLET ], 'MEEG!!' => [ @@ -10896,6 +10938,7 @@ 'moto e(7) power' => [ 'Motorola', 'Moto E7 Power' ], 'moto e(7i) power' => [ 'Motorola', 'Moto E7i Power' ], 'moto e20' => [ 'Motorola', 'Moto E20' ], + 'moto e30' => [ 'Motorola', 'Moto E30' ], 'moto e40' => [ 'Motorola', 'Moto E40' ], '(Moto)?G3$!' => [ 'Motorola', 'Moto G (2015)' ], '(Moto)?G3-TE$!' => [ 'Motorola', 'Moto G (2015)' ], @@ -10949,11 +10992,13 @@ 'moto g(60)' => [ 'Motorola', 'Moto G60' ], 'moto g(60)s' => [ 'Motorola', 'Moto G60s' ], 'moto g(100)' => [ 'Motorola', 'Moto G100' ], + 'moto g200 5G' => [ 'Motorola', 'Moto G200' ], 'Moto Z (2)' => [ 'Motorola', 'Moto Z2' ], 'Moto Z2 Play' => [ 'Motorola', 'Moto Z2 Play' ], 'Moto Z3 Play' => [ 'Motorola', 'Moto Z3 Play' ], 'Moto X Pro' => [ 'Motorola', 'Moto X Pro' ], 'moto x4' => [ 'Motorola', 'Moto X4' ], + 'moto z4' => [ 'Motorola', 'Moto Z4' ], 'roiX' => [ 'Motorola', 'Droid X' ], 'Moto Backflip' => [ 'Motorola', 'BACKFLIP' ], 'RAZR' => [ 'Motorola', 'RAZR' ], @@ -11516,14 +11561,14 @@ 'ONEPLUS A6010' => [ 'OnePlus', '6T' ], 'ONEPLUS A6013' => [ 'OnePlus', '6T' ], 'HD190[013]!' => [ 'OnePlus', '7T' ], - 'HD191[03]!' => [ 'OnePlus', '7T Pro' ], + 'HD191[037]!' => [ 'OnePlus', '7T Pro' ], 'GM190[0135]!' => [ 'OnePlus', '7' ], 'GM191[01357]!' => [ 'OnePlus', '7 Pro' ], 'IN201[01357]!' => [ 'OnePlus', '8' ], 'IN202[0135]!' => [ 'OnePlus', '8 Pro' ], 'KB200[01357]!' => [ 'OnePlus', '8T' ], 'LE2101' => [ 'OnePlus', '9T' ], - 'LE211[135]!' => [ 'OnePlus', '9' ], + 'LE211[0135]!' => [ 'OnePlus', '9' ], 'LE212[01357]!' => [ 'OnePlus', '9 Pro' ], 'NE2213' => [ 'OnePlus', '10 Pro' ], 'ONE E1000' => [ 'OnePlus', 'X' ], @@ -11537,7 +11582,7 @@ 'oneplus Nord 2 5G' => [ 'OnePlus', 'Nord 2' ], 'EB2103' => [ 'OnePlus', 'Nord CE' ], 'IV2201' => [ 'OnePlus', 'Nord CE 2' ], - 'BE2029' => [ 'OnePlus', 'Nord N10' ], + 'BE202[69]!' => [ 'OnePlus', 'Nord N10' ], 'BE2013' => [ 'OnePlus', 'Nord N100' ], 'ONDA MID' => [ 'Onda', 'MID', DeviceType::TABLET ], 'ONDA A9 Core4' => [ 'Onda', 'A9 Quad Core', DeviceType::TABLET ], @@ -11655,6 +11700,7 @@ 'CPH1893' => [ 'Oppo', 'RX17 Neo' ], 'CPH1903' => [ 'Oppo', 'A7' ], 'CPH1907' => [ 'Oppo', 'Reno 2' ], + 'CPH1909' => [ 'Oppo', 'A5s' ], 'CPH1911' => [ 'Oppo', 'F11' ], 'CPH1917' => [ 'Oppo', 'Reno' ], 'CPH1919' => [ 'Oppo', 'Reno 10x Zoom' ], @@ -13573,6 +13619,7 @@ ], 'SM-F[0-9]{3,3}!!' => [ + 'SM-F127!' => [ 'Samsung', 'Galaxy F12' ], 'SM-F700!' => [ 'Samsung', 'Galaxy Z Flip' ], 'SM-F707!' => [ 'Samsung', 'Galaxy Z Flip 5G' ], 'SM-F711!' => [ 'Samsung', 'Galaxy Z Flip3 5G' ], @@ -13838,6 +13885,7 @@ 'SM-T53[023]!' => [ 'Samsung', 'Galaxy Tab 4 10.1', DeviceType::TABLET ], 'SM-T53[6]!' => [ 'Samsung', 'Galaxy Tab 4 10.1 Advanced', DeviceType::TABLET ], 'SM-T53[157]!' => [ 'Samsung', 'Galaxy Tab 4 10.0', DeviceType::TABLET ], + 'SM-T54[05]!' => [ 'Samsung', 'Galaxy Tab Active Pro', DeviceType::TABLET ], 'SM-T55[015]!' => [ 'Samsung', 'Galaxy Tab A 9.7', DeviceType::TABLET ], 'SM-T57[5]!' => [ 'Samsung', 'Galaxy Tab Active3', DeviceType::TABLET ], 'SM-T58[057]!' => [ 'Samsung', 'Galaxy Tab A 10.1 (2016)', DeviceType::TABLET ], @@ -13867,6 +13915,7 @@ 'SM-X200' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], 'SM-X205' => [ 'Samsung', 'Galaxy Tab A8 10.5', DeviceType::TABLET ], 'SM-X700' => [ 'Samsung', 'Galaxy Tab S8', DeviceType::TABLET ], + 'SM-X800' => [ 'Samsung', 'Galaxy Tab S8+', DeviceType::TABLET ], 'SM-X900' => [ 'Samsung', 'Galaxy Tab S8 Ultra', DeviceType::TABLET ], 'SM-X906!' => [ 'Samsung', 'Galaxy Tab S8 Ultra', DeviceType::TABLET ], @@ -14207,6 +14256,7 @@ 'DM-01H' => [ 'Sharp', 'DM-01H', 'carrier' => 'Disney Mobile' ], 'DM-01J' => [ 'Sharp', 'DM-01J', 'carrier' => 'Disney Mobile' ], + 'SH-A01' => [ 'Sharp', 'B10 SH-A01' ], 'SH-C02' => [ 'Sharp', 'AQUOS V SH-C02' ], 'SH-M01' => [ 'Sharp', 'AQUOS SH-M01' ], 'SH-M02' => [ 'Sharp', 'AQUOS SH-M02' ], @@ -14214,6 +14264,7 @@ 'SH-M03' => [ 'Sharp', 'AQUOS mini SH-M03' ], 'SH-M07' => [ 'Sharp', 'AQUOS sense plus SH-M07' ], 'SH-RM02' => [ 'Sharp', 'AQUOS SH-RM02' ], + 'SH-Z01' => [ 'Sharp', 'AQUOS C10 SH-Z01' ], 'SH-[01][0-9][A-Z]!!' => [ 'SH-01D' => [ 'Sharp', 'AQUOS PHONE SH-01D', 'carrier' => 'DoCoMo' ], @@ -14609,6 +14660,7 @@ 'XQ-AT51' => [ 'Sony', 'Xperia 1 II' ], 'XQ-AT52' => [ 'Sony', 'Xperia 1 II' ], 'XQ-BC52' => [ 'Sony', 'Xperia 1 III' ], + 'XQ-BC72' => [ 'Sony', 'Xperia 1 III' ], 'XQ-AS52' => [ 'Sony', 'Xperia 5 II' ], 'XQ-BQ52' => [ 'Sony', 'Xperia 5 III' ], 'XQ-AU52' => [ 'Sony', 'Xperia 10 II' ], @@ -15318,6 +15370,7 @@ 'T671H' => [ 'TCL', '20 SE' ], 'T774H' => [ 'TCL', '20L' ], + 'T775H' => [ 'TCL', '20L+' ], 'TCL!!' => [ 'TCL-309T' => [ 'TCL', '309T' ], @@ -15620,6 +15673,7 @@ 'G18mini(C5B9)' => [ 'Teclast', 'G18 mini', DeviceType::TABLET ], 'G18d 3G四核(D3A2)' => [ 'Teclast', 'G18d', DeviceType::TABLET ], 'G18d mini(FV2C)' => [ 'Teclast', 'G18d mini', DeviceType::TABLET ], + 'M40 EEA' => [ 'Teclast', 'M40', DeviceType::TABLET ], 'P10HD??(E6NA)' => [ 'Teclast', 'P10HD', DeviceType::TABLET ], 'P11HD' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], 'P11HD四核(G9X6)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], @@ -16146,12 +16200,17 @@ ], 'A6S' => [ 'TWM', 'Amazing A6S' ], + 'Armor 3W' => [ 'Ulefone', 'Armor 3W' ], 'Armor 7' => [ 'Ulefone', 'Armor 7' ], 'Armor 8' => [ 'Ulefone', 'Armor 8' ], 'Armor 9' => [ 'Ulefone', 'Armor 9' ], 'Armor 9E' => [ 'Ulefone', 'Armor 9E' ], + 'Armor 10 5G' => [ 'Ulefone', 'Armor 10' ], + 'Armor 11 5G' => [ 'Ulefone', 'Armor 11' ], 'Armor 11T 5G' => [ 'Ulefone', 'Armor 11T' ], 'Armor X5' => [ 'Ulefone', 'Armor X5' ], + 'Armor X7' => [ 'Ulefone', 'Armor X7' ], + 'Armor X7 Pro' => [ 'Ulefone', 'Armor X7 Pro' ], 'Armor X8' => [ 'Ulefone', 'Armor X8' ], 'Power Armor 13' => [ 'Ulefone', 'Power Armor 13' ], 'Be Touch 2' => [ 'Ulefone', 'Be Touch 2' ], @@ -16534,6 +16593,8 @@ 'vivo 1611' => [ 'Vivo', 'V5 Plus' ], 'vivo 1718' => [ 'Vivo', 'V7' ], 'vivo 1716' => [ 'Vivo', 'V7 Plus' ], + 'vivo 1816' => [ 'Vivo', 'Y91' ], + 'vivo 1902' => [ 'Vivo', 'Y17' ], 'vivo X1' => [ 'Vivo', 'X1' ], 'vivo X1S' => [ 'Vivo', 'X1S' ], 'vivo X1St' => [ 'Vivo', 'X1S' ], @@ -16704,6 +16765,8 @@ ], 'V1916A' => [ 'Vivo', 'iQOO Pro' ], + 'V2023' => [ 'Vivo', 'V20 SE' ], + 'V2056A' => [ 'Vivo', 'X60 Pro+' ], 'VTAB1008' => [ 'Vizio', 'VTAB1008', DeviceType::TABLET ], 'VTAB3010' => [ 'Vizio', 'VTAB3010', DeviceType::TABLET ], @@ -16993,7 +17056,9 @@ 'SUNSET2' => [ 'Wiko', 'Sunset 2' ], 'W P200' => [ 'Wiko', 'View Max' ], 'View2 Go' => [ 'Wiko', 'View2 Go' ], + 'W C860' => [ 'Wiko', 'View2 Pro' ], 'W-P311-EEA' => [ 'Wiko', 'View3' ], + 'W-V830-EEA' => [ 'Wiko', 'View4' ], 'W-V730-EEA' => [ 'Wiko', 'View4 Lite' ], 'WAX' => [ 'Wiko', 'Wax' ], 'Wileyfox Spark' => [ 'Wileyfox', 'Spark' ], @@ -17229,9 +17294,12 @@ '(Xiaomi )?(MI )?MIX$!' => [ 'Xiaomi', 'Mi MIX' ], '(Xiaomi )?(MI )?MIX 2$!' => [ 'Xiaomi', 'Mi MIX 2' ], '(Xiaomi )?(MI )?MIX 2S$!' => [ 'Xiaomi', 'Mi MIX 2S' ], + 'MIX 3' => [ 'Xiaomi', 'Mi MIX 3' ], 'Mi MIX 3' => [ 'Xiaomi', 'Mi MIX 3' ], 'Mi MIX 3 5G' => [ 'Xiaomi', 'Mi MIX 3' ], + 'MI PLAY' => [ 'Xiaomi', 'Mi Play' ], + '(Xiaomi )?20!!' => [ '(Xiaomi )?20130(61)!' => [ 'Xiaomi', 'Mi 3' ], '(Xiaomi )?20142(16)!' => [ 'Xiaomi', 'Mi 4' ], @@ -17266,8 +17334,10 @@ '(Xiaomi )?(Redmi|HM) ?7A!' => [ 'Xiaomi', 'Redmi 7A' ], '(Xiaomi )?(Redmi|HM) ?8$!' => [ 'Xiaomi', 'Redmi 8' ], '(Xiaomi )?(Redmi|HM) ?8A!' => [ 'Xiaomi', 'Redmi 8A' ], + '(Xiaomi )?(Redmi|HM) ?9T!' => [ 'Xiaomi', 'Redmi 9T' ], '(Xiaomi )?Redmi[ \-]K20$!' => [ 'Xiaomi', 'Redmi K20' ], '(Xiaomi )?Redmi[ \-]K20 Pro!' => [ 'Xiaomi', 'Redmi K20 Pro' ], + '(Xiaomi )?Redmi[ \-]K30 5G!' => [ 'Xiaomi', 'Redmi K30' ], '(Xiaomi )?Redmi[ \-]K30 Pro!' => [ 'Xiaomi', 'Redmi K30 Pro' ], '(Xiaomi )?Redmi[ \-]S2$!' => [ 'Xiaomi', 'Redmi S2' ], '(Xiaomi )?Redmi[ \-]Y1$!' => [ 'Xiaomi', 'Redmi Y1' ], @@ -17291,6 +17361,7 @@ '(Xiaomi )?Redmi[ \-]Note 8$!' => [ 'Xiaomi', 'Redmi Note 8' ], '(Xiaomi )?Redmi[ \-]Note 8 Pro!' => [ 'Xiaomi', 'Redmi Note 8 Pro' ], '(Xiaomi )?Redmi[ \-]Note 8T!' => [ 'Xiaomi', 'Redmi Note 8T' ], + '(Xiaomi )?Redmi[ \-]Note 9$!' => [ 'Xiaomi', 'Redmi Note 9' ], '(Xiaomi )?Redmi[ \-]Note 9S!' => [ 'Xiaomi', 'Redmi Note 9S' ], '(Xiaomi )?Redmi[ \-]Note 9 Pro!' => [ 'Xiaomi', 'Redmi Note 9 Pro' ], ], @@ -17332,23 +17403,28 @@ 'M2006C3MG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2006C3MNG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2007J17G' => [ 'Xiaomi', 'Mi 10T Lite' ], + 'M2007J1SC' => [ 'Xiaomi', 'Mi 10 Ultra' ], 'M2007J20CG' => [ 'Xiaomi', 'Poco X3' ], 'M2007J22G' => [ 'Xiaomi', 'Redmi Note 9T' ], 'M2007J3SG' => [ 'Xiaomi', 'Mi 10T Pro' ], 'M2007J3SY' => [ 'Xiaomi', 'Mi 10T' ], 'M2010J19CG' => [ 'Xiaomi', 'Poco M3' ], 'M2010J19SY' => [ 'Xiaomi', 'Redmi 9T' ], + 'M2011K2C' => [ 'Xiaomi', 'Mi 11' ], 'M2011K2G' => [ 'Xiaomi', 'Mi 11' ], 'M2012K11AG' => [ 'Xiaomi', 'Poco F3' ], 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], + 'M2101K6P' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], 'M2101K7AG' => [ 'Xiaomi', 'Redmi Note 10' ], 'M2101K7BG' => [ 'Xiaomi', 'Redmi Note 10s' ], 'M2101K7BNY' => [ 'Xiaomi', 'Redmi Note 10s' ], 'M2101K9AG' => [ 'Xiaomi', 'Mi 11 Lite' ], + 'M2101K9C' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2101K9G' => [ 'Xiaomi', 'Mi 11 Lite' ], 'M2102J20SG' => [ 'Xiaomi', 'Poco X3 Pro' ], 'M2102J20SI' => [ 'Xiaomi', 'Poco X3 Pro' ], + 'M2102K1AC' => [ 'Xiaomi', 'Mi 11 Pro' ], 'M2102K1C' => [ 'Xiaomi', 'Mi 11 Ultra' ], 'M2102K1G' => [ 'Xiaomi', 'Mi 11 Ultra' ], 'M2103K19G' => [ 'Xiaomi', 'Redmi Note 10' ], @@ -18638,6 +18714,8 @@ 'ZTE A2017' => [ 'ZTE', 'Axon 7' ], 'ZTE A2017G' => [ 'ZTE', 'Axon 7' ], 'ZTE A2017U' => [ 'ZTE', 'Axon 7' ], + 'ZTE A2020G Pro' => [ 'ZTE', 'Axon 10 Pro' ], + 'ZTE A2022PG' => [ 'ZTE', 'Axon 30 Ultra' ], 'ZTE B2015' => [ 'ZTE', 'Axon Mini' ], 'ZTE B2016' => [ 'ZTE', 'Axon Mini' ], 'ZTE B2017' => [ 'ZTE', 'Axon Mini' ], @@ -19291,12 +19369,15 @@ 'RMX1993' => [ 'Realme', 'X2' ], 'RMX2001' => [ 'Realme', '6' ], 'RMX2002' => [ 'Realme', '6i' ], + 'RMX2020' => [ 'Realme', 'C3' ], 'RMX2063' => [ 'Realme', '6 Pro' ], 'RMX2075' => [ 'Realme', 'X50 Pro' ], 'RMX2086' => [ 'Realme', 'X3 SuperZoom' ], + 'RMX2111' => [ 'Realme', '7' ], 'RMX2144' => [ 'Realme', 'X50' ], 'RMX2155' => [ 'Realme', '7' ], 'RMX2170' => [ 'Realme', '7 Pro' ], + 'RMX2185' => [ 'Realme', 'C11' ], 'RMX2202' => [ 'Realme', 'GT' ], 'RMX3081' => [ 'Realme', '8 Pro' ], 'RMX3085' => [ 'Realme', '8' ], From 344b655d1498d3f26210094e40bb4d43e1c48f1c Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 12 Apr 2022 16:09:43 +0200 Subject: [PATCH 528/540] Improve device model detection for Android --- src/Analyser/Header/Useragent/Os.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 3cc3ec30b..26e9495a8 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -277,7 +277,7 @@ private function detectAndroid($ua) } elseif (preg_match('/Mozilla\//ui', $ua)) { /* Old Android useragent strings */ - if (preg_match('/Linux; (?:arm; |arm_64; )?(?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^)\/;]+)\)/u', $ua, $match)) { + if (preg_match('/Linux; (?:arm; |arm_64; )?(?:U; )?Android [^;]+; (?:[a-zA-Z][a-zA-Z](?:[-_][a-zA-Z][a-zA-Z])?; )?(?:[^;]+; ?)?([^\/;]+)\) /u', $ua, $match)) { $candidates[] = $match[1]; } elseif (preg_match('/\(([^;]+);U;Android\/[^;]+;[0-9]+\*[0-9]+;CTC\/2.0\)/u', $ua, $match)) { $candidates[] = $match[1]; From da19df8b64f550414c1851f0299eab9b2c9781f8 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 13 Apr 2022 10:11:33 +0200 Subject: [PATCH 529/540] Android model update --- data/indices/models-android.php | 1529 +++++++++++++++++-------------- data/models-android.php | 151 ++- 2 files changed, 956 insertions(+), 724 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index 59db4d828..f74236480 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -211,68 +211,70 @@ ), '@50' => array ( - 0 => '5002[DH]!', - 1 => '5003[D]!', - 2 => '5010[DEGSUX]!', - 3 => '5011[A]!', - 4 => '5012[G]!', - 5 => '5015[ADEX]!', - 6 => '5016[AJ]!', - 7 => '5017[B]!', - 8 => '5017[ADEOX]!', - 9 => '5019[D]!', - 10 => '5020[A]!', - 11 => '5022[DEX]!', - 12 => '5023[F]!', - 13 => '5024[DF]!', - 14 => '5025[DEGX]!', - 15 => '5027[B]!', - 16 => '5030[DF]!', - 17 => '5033[ADJOX]!', - 18 => '5034[D]!', - 19 => '5036[D]!', - 20 => '5038[ADEX]!', - 21 => '5039[D]!', - 22 => '5041[C]!', - 23 => '5042[ADEFGTWXY]!', - 24 => '5044[ADGIOSTY]!', - 25 => '5045[ADFGJTXY]!', - 26 => '5046[DGIJUY]!', - 27 => '5047[DIUY]!', - 28 => '5048[UY]!', - 29 => '5049[EGSWZ]!', - 30 => '5050[ASYX]!', - 31 => '5051[ADJMX]!', - 32 => '5052[DY]!', - 33 => '5053[DK]!', - 34 => '5054[ADOSTX]!', - 35 => '5054[NW]!', - 36 => '5056[ADEINUWX]!', - 37 => '5056[O]!', - 38 => '5057[M]!', - 39 => '5058[I]!', - 40 => '5059[ADJTXY]!', - 41 => '5060[D]!', - 42 => '5061[KU]!', - 43 => '5065[ADJNWX]!', - 44 => '5070[DJX]!', - 45 => '5080[A]!', - 46 => '5080[DFQX]!', - 47 => '5085[CDJNOYX]!', - 48 => '5086[ADY]!', - 49 => '5090[Y]!', - 50 => '5095[BIKY]!', - 51 => '5096[AI]!', - 52 => '5098[OS]!', - 53 => '5099[ADY]!', - 54 => '504Q', - 55 => '504Q+', - 56 => '504QP', - 57 => '501LV', - 58 => '(48|50|55)AX600C!', - 59 => '5080C Pro', - 60 => '50[0-9]SO!!', - 61 => '502ZT', + 0 => '5001[D]!', + 1 => '5002[DH]!', + 2 => '5003[D]!', + 3 => '5009[D]!', + 4 => '5010[DEGSUX]!', + 5 => '5011[A]!', + 6 => '5012[G]!', + 7 => '5015[ADEX]!', + 8 => '5016[AJ]!', + 9 => '5017[B]!', + 10 => '5017[ADEOX]!', + 11 => '5019[D]!', + 12 => '5020[A]!', + 13 => '5022[DEX]!', + 14 => '5023[F]!', + 15 => '5024[DF]!', + 16 => '5025[DEGX]!', + 17 => '5027[B]!', + 18 => '5030[DF]!', + 19 => '5033[ADJOX]!', + 20 => '5034[D]!', + 21 => '5036[D]!', + 22 => '5038[ADEX]!', + 23 => '5039[D]!', + 24 => '5041[C]!', + 25 => '5042[ADEFGTWXY]!', + 26 => '5044[ADGIOSTY]!', + 27 => '5045[ADFGJTXY]!', + 28 => '5046[DGIJUY]!', + 29 => '5047[DIUY]!', + 30 => '5048[UY]!', + 31 => '5049[EGSWZ]!', + 32 => '5050[ASYX]!', + 33 => '5051[ADJMX]!', + 34 => '5052[DY]!', + 35 => '5053[DK]!', + 36 => '5054[ADOSTX]!', + 37 => '5054[NW]!', + 38 => '5056[ADEINUWX]!', + 39 => '5056[O]!', + 40 => '5057[M]!', + 41 => '5058[I]!', + 42 => '5059[ADJTXY]!', + 43 => '5060[D]!', + 44 => '5061[KU]!', + 45 => '5065[ADJNWX]!', + 46 => '5070[DJX]!', + 47 => '5080[A]!', + 48 => '5080[DFQX]!', + 49 => '5085[CDJNOYX]!', + 50 => '5086[ADY]!', + 51 => '5090[Y]!', + 52 => '5095[BIKY]!', + 53 => '5096[AI]!', + 54 => '5098[OS]!', + 55 => '5099[ADY]!', + 56 => '504Q', + 57 => '504Q+', + 58 => '504QP', + 59 => '501LV', + 60 => '(48|50|55)AX600C!', + 61 => '5080C Pro', + 62 => '50[0-9]SO!!', + 63 => '502ZT', ), '@55' => array ( @@ -360,13 +362,16 @@ array ( 0 => '8020[D]!', 1 => '8030[BY]!', - 2 => 8022, - 3 => '801ES', - 4 => '80-1', - 5 => '801a', - 6 => '801s', - 7 => '802w', - 8 => '800P31C', + 2 => 8063, + 3 => 8082, + 4 => '8094[X]!', + 5 => 8022, + 6 => '801ES', + 7 => '80-1', + 8 => '801a', + 9 => '801s', + 10 => '802w', + 11 => '800P31C', ), '@81' => array ( @@ -416,10 +421,11 @@ 9 => '9022[SX]!', 10 => '9024[OW]!', 11 => '9025[MQ]!', - 12 => '9021[AM]!', - 13 => '909d', - 14 => 9088, - 15 => '9020[A]!', + 12 => '9026[X]!', + 13 => '9021[AM]!', + 14 => '909d', + 15 => 9088, + 16 => '9020[A]!', ), '@93' => array ( @@ -434,9 +440,10 @@ '@A0' => array ( 0 => 'A001', - 1 => 'A0001', - 2 => 'A0002', - 3 => 'A05510', + 1 => 'A007', + 2 => 'A0001', + 3 => 'A0002', + 4 => 'A05510', ), '@A1' => array ( @@ -591,20 +598,22 @@ 3 => 'A862W', 4 => 'A80KSC!', 5 => 'A80HF', - 6 => 'A89', - 7 => 'A820t', - 8 => 'A87', - 9 => 'A853', - 10 => 'A853 Milestone', - 11 => 'A878 Duo', - 12 => 'A898 Duo', - 13 => 'A8HD', - 14 => 'A80h双核(A4P9)', - 15 => 'A80 se??(M5MA)', - 16 => 'A80 se四核(M5MC)', - 17 => 'A80HD四核(C4H6)', - 18 => 'A88 mini四核(M1C5)', - 19 => 'A81E', + 6 => 'A80Plus', + 7 => 'A80Pro', + 8 => 'A89', + 9 => 'A820t', + 10 => 'A87', + 11 => 'A853', + 12 => 'A853 Milestone', + 13 => 'A878 Duo', + 14 => 'A898 Duo', + 15 => 'A8HD', + 16 => 'A80h双核(A4P9)', + 17 => 'A80 se??(M5MA)', + 18 => 'A80 se四核(M5MC)', + 19 => 'A80HD四核(C4H6)', + 20 => 'A88 mini四核(M1C5)', + 21 => 'A81E', ), '@A9' => array ( @@ -615,6 +624,7 @@ 4 => 'A90S', 5 => 'A953', 6 => 'A955', + 7 => 'A9 Pro', ), '@AA' => array ( @@ -622,9 +632,9 @@ ), '@AC' => array ( - 0 => 'Acer Chromebook R11', - 1 => 'Acer Chromebook R11 (CB5-132T / C738T)', - 2 => 'Acer Chromebook 15 (CB3-532)', + 0 => 'Acer Chromebook R11!', + 1 => 'Acer Chromebook R13!', + 2 => 'Acer Chromebook 15!', 3 => '(AC|BC|LC|MT|RC|QS|VM|TS|OC)[0-9]{4,4}[A-Z]!!', 4 => 'AC45BHE', 5 => 'AC50BHE', @@ -717,8 +727,8 @@ 2 => 'AG Tab 7 0', 3 => 'AG Go-Tab Access', 4 => 'AG Chrome Go Tab 7.0', - 5 => 'AGS2-W09', - 6 => 'AGS-(L09|W09)!', + 5 => 'AGS-(L09|W09)!', + 6 => 'AGS2-(L09|W09)!', 7 => '(KATBL|Kogan|Agora)!!', ), '@AI' => @@ -980,45 +990,47 @@ 30 => 'Arctic450', 31 => 'Arc', 32 => 'Arc S', - 33 => 'Armor 3W', - 34 => 'Armor 7', - 35 => 'Armor 8', - 36 => 'Armor 9', - 37 => 'Armor 9E', - 38 => 'Armor 10 5G', - 39 => 'Armor 11 5G', - 40 => 'Armor 11T 5G', - 41 => 'Armor X5', - 42 => 'Armor X7', - 43 => 'Armor X7 Pro', - 44 => 'Armor X8', + 33 => 'Armor 2', + 34 => 'Armor 3W', + 35 => 'Armor 3WT', + 36 => 'Armor 6E', + 37 => 'Armor 7', + 38 => 'Armor 8', + 39 => 'Armor 9', + 40 => 'Armor 9E', + 41 => 'Armor 10 5G', + 42 => 'Armor 11 5G', + 43 => 'Armor 11T 5G', + 44 => 'Armor X5', + 45 => 'Armor X7', + 46 => 'Armor X7 Pro', + 47 => 'Armor X8', ), '@AS' => array ( - 0 => 'ASUS Chromebook Flip C100PA', - 1 => 'ASUS Chromebook Flip C302', - 2 => 'Astone A108', - 3 => 'aspire1000s', - 4 => 'Aspire!!', - 5 => 'ASK SP[0-9]{3,3}!!', - 6 => 'ASTRI', - 7 => 'asus laptop', - 8 => 'ASUS T20', - 9 => 'ASUS Pad ME370T', - 10 => 'Asus Fonepad ME371MG 8GB', - 11 => 'AST21', - 12 => 'asus google cube', - 13 => 'ASP-4300W', - 14 => 'ASP-4500Z', - 15 => 'ASP-5000H', - 16 => 'Asus A10', - 17 => '(Huawei|Ascend|HW-)!!', - 18 => 'AS740', - 19 => 'AS870 4G', - 20 => 'AS985', - 21 => 'AS650C', - 22 => 'Aster', - 23 => 'Aster T', + 0 => 'ASUS Chromebook Flip!', + 1 => 'Astone A108', + 2 => 'aspire1000s', + 3 => 'Aspire!!', + 4 => 'ASK SP[0-9]{3,3}!!', + 5 => 'ASTRI', + 6 => 'asus laptop', + 7 => 'ASUS T20', + 8 => 'ASUS Pad ME370T', + 9 => 'Asus Fonepad ME371MG 8GB', + 10 => 'AST21', + 11 => 'asus google cube', + 12 => 'ASP-4300W', + 13 => 'ASP-4500Z', + 14 => 'ASP-5000H', + 15 => 'Asus A10', + 16 => '(Huawei|Ascend|HW-)!!', + 17 => 'AS740', + 18 => 'AS870 4G', + 19 => 'AS985', + 20 => 'AS650C', + 21 => 'Aster', + 22 => 'Aster T', ), '@AT' => array ( @@ -1039,7 +1051,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1081,8 +1093,9 @@ array ( 0 => 'Aurora-II', 1 => 'AUX!!', - 2 => '(Aura|iberry|AUXUS)!!', - 3 => 'AURUS III', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(Aura|iberry|AUXUS)!!', + 4 => 'AURUS III', ), '@AV' => array ( @@ -1137,12 +1150,13 @@ 6 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 7 => 'BAH-(W09|AL00|L09)!', 8 => 'BAH2-(AL10|L09|W09|W19)!', - 9 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', - 10 => 'Backflip', - 11 => 'Backflip Me600', - 12 => 'Bambook S1', - 13 => 'BARRY', - 14 => 'BASE!!', + 9 => 'BAH3-(W09)!', + 10 => '(HW-|HUAWEI )?BAC-(AL00|L03|L21|L22|TL00)!', + 11 => 'Backflip', + 12 => 'Backflip Me600', + 13 => 'Bambook S1', + 14 => 'BARRY', + 15 => 'BASE!!', ), '@BB' => array ( @@ -1221,7 +1235,7 @@ 3 => 'bg2qa0v4 !', 4 => 'bg2qv4 !', 5 => 'BGO-(DL09|L03)!', - 6 => 'BG2-(U01)!', + 6 => 'BG2-(U01|W09)!', ), '@BH' => array ( @@ -1234,13 +1248,15 @@ 2 => 'Bird!!', 3 => 'BizSmartPhone', 4 => 'BIP-6000', - 5 => 'BISON GT', - 6 => 'BIRDY', + 5 => 'BISON', + 6 => 'BISON Pro', + 7 => 'BISON GT', + 8 => 'BIRDY', ), '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1255,7 +1271,7 @@ 8 => 'Blaze S180', 9 => 'BLADE LE 70', 10 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 13 => '(BLF-)?lephone!!', 14 => 'Blackphone 2', @@ -1281,7 +1297,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1386,12 +1402,20 @@ 0 => 'BV4900Pro', 1 => 'BV5900', 2 => 'BV6300Pro', - 3 => 'BV8000Pro', - 4 => 'BV9100', - 5 => 'BV9500', - 6 => 'BV9500Plus', - 7 => 'BV9600E', - 8 => 'BV9900Pro', + 3 => 'BV6600', + 4 => 'BV8000Pro', + 5 => 'BV9100', + 6 => 'BV9500', + 7 => 'BV9500Plus', + 8 => 'BV9600E', + 9 => 'BV9600Pro', + 10 => 'BV9800Pro', + 11 => 'BV9900E', + 12 => 'BV9900Pro', + ), + '@C1' => + array ( + 0 => 'C15 Pro', ), '@C2' => array ( @@ -1446,7 +1470,7 @@ 10 => 'Casper VIA!!', 11 => 'CAT!!', 12 => 'Candy TV', - 13 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 13 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 14 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 15 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 16 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', @@ -1485,7 +1509,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1554,17 +1578,18 @@ 10 => 'COSHIP F2', 11 => 'COWON!!', 12 => 'COZCO C1 Plus', - 13 => 'Collo DG100', - 14 => 'Collo 2 DG120', - 15 => 'Connect-2G-2.0', - 16 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', - 17 => 'Coquettish Red', - 18 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 19 => 'Comet', - 20 => 'Corvair', - 21 => 'COOLPIX S800c', - 22 => 'COOLPIX S810c', - 23 => 'Constellation V', + 13 => 'Core-M5', + 14 => 'Collo DG100', + 15 => 'Collo 2 DG120', + 16 => 'Connect-2G-2.0', + 17 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', + 18 => 'Coquettish Red', + 19 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 20 => 'Comet', + 21 => 'Corvair', + 22 => 'COOLPIX S800c', + 23 => 'COOLPIX S810c', + 24 => 'Constellation V', ), '@CP' => array ( @@ -1605,46 +1630,50 @@ 34 => 'CPH1911', 35 => 'CPH1917', 36 => 'CPH1919', - 37 => 'CPH1931', - 38 => 'CPH1951', - 39 => 'CPH1969', - 40 => 'CPH2005', - 41 => 'CPH2009', - 42 => 'CPH2021', - 43 => 'CPH2023', - 44 => 'CPH2025', - 45 => 'CPH2043', - 46 => 'CPH2065', - 47 => 'CPH2067', - 48 => 'CPH2069', - 49 => 'CPH2083', - 50 => 'CPH2089', - 51 => 'CPH2091', - 52 => 'CPH2127', - 53 => 'CPH2135', - 54 => 'CPH2145', - 55 => 'CPH2161', - 56 => 'CPH2173', - 57 => 'CPH2185', - 58 => 'CPH2195', - 59 => 'CPH2197', - 60 => 'CPH2205', - 61 => 'CPH2207', - 62 => 'CPH2211', - 63 => 'CPH2219', - 64 => 'CPH2247', - 65 => 'CPH2251', - 66 => 'CPH2269', - 67 => 'CPH2271', - 68 => 'CPH2273', - 69 => 'CPH2305', - 70 => 'CPH2307', - 71 => 'CPH2371', - 72 => 'CPH1721', - 73 => 'CPH1611', - 74 => 'CPH1879', - 75 => 'CPH1861', - 76 => 'CPH1979', + 37 => 'CPH1920', + 38 => 'CPH1931', + 39 => 'CPH1933', + 40 => 'CPH1951', + 41 => 'CPH1969', + 42 => 'CPH1989', + 43 => 'CPH2005', + 44 => 'CPH2009', + 45 => 'CPH2021', + 46 => 'CPH2023', + 47 => 'CPH2025', + 48 => 'CPH2043', + 49 => 'CPH2065', + 50 => 'CPH2067', + 51 => 'CPH2069', + 52 => 'CPH2083', + 53 => 'CPH2089', + 54 => 'CPH2091', + 55 => 'CPH2125', + 56 => 'CPH2127', + 57 => 'CPH2135', + 58 => 'CPH2145', + 59 => 'CPH2161', + 60 => 'CPH2173', + 61 => 'CPH2185', + 62 => 'CPH2195', + 63 => 'CPH2197', + 64 => 'CPH2205', + 65 => 'CPH2207', + 66 => 'CPH2211', + 67 => 'CPH2219', + 68 => 'CPH2247', + 69 => 'CPH2251', + 70 => 'CPH2269', + 71 => 'CPH2271', + 72 => 'CPH2273', + 73 => 'CPH2305', + 74 => 'CPH2307', + 75 => 'CPH2371', + 76 => 'CPH1721', + 77 => 'CPH1611', + 78 => 'CPH1879', + 79 => 'CPH1861', + 80 => 'CPH1979', ), '@CR' => array ( @@ -1841,8 +1870,9 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', + 6 => 'DLT-H0', ), '@DM' => array ( @@ -1876,10 +1906,11 @@ 4 => 'DOOV!!', 5 => 'Doro Liberto!!', 6 => 'Doro 8030', - 7 => 'Doro 824', - 8 => 'Doro PhoneEasy 745', - 9 => 'Dolphin 70e Black', - 10 => 'Docomo HT-03A', + 7 => 'Doro 8040', + 8 => 'Doro 824', + 9 => 'Doro PhoneEasy 745', + 10 => 'Dolphin 70e Black', + 11 => 'Docomo HT-03A', ), '@DP' => array ( @@ -1938,7 +1969,7 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', ), '@DV' => @@ -2072,7 +2103,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -2197,16 +2228,18 @@ 3 => '(EVAS )?EVERCOSS[- ]A!!', 4 => 'EVERPAD SC-710', 5 => 'Ever!!', - 6 => 'EVO', - 7 => 'Evo HD2', - 8 => 'EVO ?3D!', - 9 => 'EVO 4G', - 10 => 'Evo V 4G', - 11 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', - 12 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', - 13 => '(EV|KM)-[ES][0-9]{3,3}!!', - 14 => 'Event', - 15 => 'EVERY35', + 6 => 'EVOLVEO StrongPhone G7', + 7 => 'EVOLVEO StrongPhone G9', + 8 => 'EVO', + 9 => 'Evo HD2', + 10 => 'EVO ?3D!', + 11 => 'EVO 4G', + 12 => 'Evo V 4G', + 13 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', + 14 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', + 15 => '(EV|KM)-[ES][0-9]{3,3}!!', + 16 => 'Event', + 17 => 'EVERY35', ), '@EX' => array ( @@ -2285,6 +2318,7 @@ 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => 'Find 5', 4 => 'FIND7', + 5 => 'FINNEY U1', ), '@FJ' => array ( @@ -2369,7 +2403,7 @@ '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2378,6 +2412,7 @@ 1 => 'FS407', 2 => 'FS451', 3 => 'FS514', + 4 => 'FS8032', ), '@FT' => array ( @@ -2755,14 +2790,16 @@ 0 => 'GS01', 1 => '(Gsmart|Gigabyte|Rio)!!', 2 => 'GS110', - 3 => 'GS190', - 4 => 'GS195', - 5 => 'GS270', - 6 => 'GS270 plus', - 7 => 'GS280', - 8 => 'GS290', - 9 => 'GS02', - 10 => 'GS03', + 3 => 'GS185', + 4 => 'GS190', + 5 => 'GS195', + 6 => 'GS270', + 7 => 'GS270 plus', + 8 => 'GS280', + 9 => 'GS290', + 10 => 'GS370 Plus', + 11 => 'GS02', + 12 => 'GS03', ), '@GT' => array ( @@ -2814,11 +2851,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2845,16 +2882,20 @@ 1 => '(Haier[- ])?H[ETW]- ?[A-Z][0-9]!!', 2 => 'Haier-W700', 3 => 'Haier-SY0880', - 4 => 'Hammer Blade 3', - 5 => 'Hammer Energy 2', - 6 => 'Hammer Explorer', - 7 => 'Hasee E50 S1', - 8 => 'Hasee H45 T2', - 9 => 'Hasee W50 T2', - 10 => 'Hasee-X50TS', - 11 => 'HannsComb', - 12 => 'Hannspadd', - 13 => 'Hayabusa', + 4 => 'Hammer Blade2 PRO', + 5 => 'Hammer Blade 3', + 6 => 'Hammer Energy', + 7 => 'Hammer Energy 2', + 8 => 'Hammer Explorer', + 9 => 'Hammer Explorer Pro', + 10 => 'Hasee E50 S1', + 11 => 'Hasee H45 T2', + 12 => 'Hasee W50 T2', + 13 => 'Hasee-X50TS', + 14 => 'HannsComb', + 15 => 'Hannspadd', + 16 => 'Hayabusa', + 17 => 'HARRY', ), '@HB' => array ( @@ -2867,8 +2908,8 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 4 => 'HD190[013]!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => 'HD190[0135]!', 5 => 'HD191[037]!', ), '@HE' => @@ -2905,7 +2946,7 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( @@ -2919,12 +2960,12 @@ ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2939,7 +2980,7 @@ ), '@HR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HS' => array ( @@ -2987,7 +3028,7 @@ 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', @@ -3017,7 +3058,7 @@ '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', @@ -3069,9 +3110,11 @@ 3 => 'I002D', 4 => 'I003D', 5 => 'I003DD', - 6 => 'I005D', - 7 => 'I005DA', - 8 => 'I006D', + 6 => 'I004D', + 7 => 'I005D', + 8 => 'I005DA', + 9 => 'I006D', + 10 => 'I01WD', ), '@I1' => array ( @@ -3265,7 +3308,7 @@ ), '@JA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'Jaguar3', 2 => 'Jaguar7', ), @@ -3300,7 +3343,7 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JN' => array ( @@ -3314,7 +3357,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3443,7 +3486,7 @@ array ( 0 => 'Kindle Fire', 1 => 'KINGKONG MINI2', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 4 => 'KIOTO 793', 5 => 'KITE', @@ -3455,19 +3498,20 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( 0 => 'Konka Amber3', 1 => 'KOB-(L09|W09)!', - 2 => '(KATBL|Kogan|Agora)!!', - 3 => 'KOMU!!', - 4 => 'KONKA!!', - 5 => 'koobee-T550', - 6 => 'Koobe!!', - 7 => 'KORIDY H15', - 8 => 'KORIDY H16', + 2 => 'KOB2-(W09)!', + 3 => '(KATBL|Kogan|Agora)!!', + 4 => 'KOMU!!', + 5 => 'KONKA!!', + 6 => 'koobee-T550', + 7 => 'Koobe!!', + 8 => 'KORIDY H15', + 9 => 'KORIDY H16', ), '@KP' => array ( @@ -3476,7 +3520,7 @@ ), '@KS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'KSP8000', ), '@KU' => @@ -3516,35 +3560,36 @@ array ( 0 => 'LA-!!', 1 => 'Land Rover Explore', - 2 => '(Lanix )?(Ilium|llium)!!', - 3 => 'Lark!!', - 4 => 'LAVA iris 351', - 5 => 'LAVA iRIS 504q', - 6 => 'LAVA A1', - 7 => 'Lava A89', - 8 => 'LAVA R1', - 9 => 'LAVA R1s', - 10 => 'LAVA S12', - 11 => 'LAVA V5', - 12 => 'LAP250U', - 13 => 'LAP255U', - 14 => 'LaVieTab!!', - 15 => 'land', - 16 => 'LA-I Dual core', - 17 => 'LA-M3', - 18 => 'LA1-L', - 19 => 'LA2-E', - 20 => 'LA2-E1', - 21 => 'LA2-L', - 22 => 'LA2-T', - 23 => 'LA2-T1', - 24 => 'LA2-S', - 25 => 'LA2-SN', - 26 => 'LA2-W', - 27 => 'LA2-W1', - 28 => 'LA3-W', - 29 => 'LA3S', - 30 => 'LA5-W', + 2 => 'Land Rover Explore R', + 3 => '(Lanix )?(Ilium|llium)!!', + 4 => 'Lark!!', + 5 => 'LAVA iris 351', + 6 => 'LAVA iRIS 504q', + 7 => 'LAVA A1', + 8 => 'Lava A89', + 9 => 'LAVA R1', + 10 => 'LAVA R1s', + 11 => 'LAVA S12', + 12 => 'LAVA V5', + 13 => 'LAP250U', + 14 => 'LAP255U', + 15 => 'LaVieTab!!', + 16 => 'land', + 17 => 'LA-I Dual core', + 18 => 'LA-M3', + 19 => 'LA1-L', + 20 => 'LA2-E', + 21 => 'LA2-E1', + 22 => 'LA2-L', + 23 => 'LA2-T', + 24 => 'LA2-T1', + 25 => 'LA2-S', + 26 => 'LA2-SN', + 27 => 'LA2-W', + 28 => 'LA2-W1', + 29 => 'LA3-W', + 30 => 'LA3S', + 31 => 'LA5-W', ), '@LC' => array ( @@ -3640,71 +3685,75 @@ 76 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', 77 => 'Lenovo TB-7304F', 78 => 'Lenovo TB-7305F', - 79 => 'Lenovo TB-8705F', - 80 => 'Lenovo TB-J606F', - 81 => 'Lenovo TB-J606L', - 82 => 'Lenovo TB-J607Z', - 83 => 'Lenovo TB-J616F', - 84 => 'Lenovo TB-J706F', - 85 => 'Lenovo TB-J716F', - 86 => 'Lenovo TB-X104F', - 87 => 'Lenovo TB-X304L', - 88 => 'Lenovo TB-X306F', - 89 => 'Lenovo TB-X306X', - 90 => 'Lenovo TB-X505F', - 91 => 'Lenovo TB-X605F', - 92 => 'Lenovo TB-X605L', - 93 => 'Lenovo TB-X606F', - 94 => 'Lenovo TB-X606X', - 95 => 'Lenovo TB-X6C6F', - 96 => 'Lenovo TB-X103F', - 97 => 'Lenovo TB2-X30F', - 98 => 'Lenovo TB2-X30L', - 99 => 'Lenovo TB3-730X', - 100 => 'Lenovo TB3-710F', - 101 => 'Lenovo TB3-710I', - 102 => 'Lenovo TB-7703X', - 103 => 'Lenovo TB3-850F', - 104 => 'Lenovo TB3-850M', - 105 => 'Lenovo TB3-X70F', - 106 => 'Lenovo TB3-X70L', - 107 => 'Lenovo TB-8504F', - 108 => 'Lenovo TB-8504X', - 109 => 'Lenovo TB-8505F', - 110 => 'Lenovo TB-8703F', - 111 => 'Lenovo TB-8704F', - 112 => 'Lenovo TB-X304F', - 113 => 'Lenovo TB-X704F', - 114 => 'Lenovo TB-X704L', - 115 => 'Lenovo TB-X705F', - 116 => 'Lenovo TB-X705L', - 117 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 118 => 'Lenovo Pad A4', - 119 => 'Lenovo', - 120 => 'lepad 001b', - 121 => 'lepad 001n', - 122 => '(Lenovo |Lephone )?3GC101!', - 123 => '(Lenovo |Lephone )?3GW100!', - 124 => '(Lenovo |Lephone )?3GW101!', - 125 => '(Lenovo )?S1[- ]37AH0!', - 126 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 127 => 'Lenovo!!', - 128 => 'LenovoTV 40S9', - 129 => 'LenovoTV 50S52', - 130 => 'Lenovo Z2', - 131 => '(BLF-)?lephone!!', - 132 => 'Le Pan Mini', - 133 => 'Le Pan TC802A', - 134 => 'Le Pan TC1010', - 135 => 'Le Pan TC1020', - 136 => 'LePanII', - 137 => 'Le Pan S', - 138 => 'LE2101', - 139 => 'LE211[0135]!', - 140 => 'LE212[01357]!', - 141 => 'LENNY', - 142 => 'LENNY2', - 143 => 'LENNY3', + 79 => 'Lenovo TB-8304F1', + 80 => 'Lenovo TB-8505FS', + 81 => 'Lenovo TB-8704X', + 82 => 'Lenovo TB-8705F', + 83 => 'Lenovo TB-J606F', + 84 => 'Lenovo TB-J606L', + 85 => 'Lenovo TB-J607Z', + 86 => 'Lenovo TB-J616F', + 87 => 'Lenovo TB-J706F', + 88 => 'Lenovo TB-J716F', + 89 => 'Lenovo TB-X104F', + 90 => 'Lenovo TB-X304L', + 91 => 'Lenovo TB-X306F', + 92 => 'Lenovo TB-X306X', + 93 => 'Lenovo TB-X505F', + 94 => 'Lenovo TB-X605F', + 95 => 'Lenovo TB-X605L', + 96 => 'Lenovo TB-X606F', + 97 => 'Lenovo TB-X606X', + 98 => 'Lenovo TB-X6C6F', + 99 => 'Lenovo TB-X103F', + 100 => 'Lenovo TB2-X30F', + 101 => 'Lenovo TB2-X30L', + 102 => 'Lenovo TB3-730X', + 103 => 'Lenovo TB3-710F', + 104 => 'Lenovo TB3-710I', + 105 => 'Lenovo TB-7703X', + 106 => 'Lenovo TB3-850F', + 107 => 'Lenovo TB3-850M', + 108 => 'Lenovo TB3-X70F', + 109 => 'Lenovo TB3-X70L', + 110 => 'Lenovo TB-8504F', + 111 => 'Lenovo TB-8504X', + 112 => 'Lenovo TB-8505F', + 113 => 'Lenovo TB-8703F', + 114 => 'Lenovo TB-8704F', + 115 => 'Lenovo TB-X304F', + 116 => 'Lenovo TB-X704F', + 117 => 'Lenovo TB-X704L', + 118 => 'Lenovo TB-X705F', + 119 => 'Lenovo TB-X705L', + 120 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 121 => 'Lenovo Pad A4', + 122 => 'Lenovo', + 123 => 'lepad 001b', + 124 => 'lepad 001n', + 125 => '(Lenovo |Lephone )?3GC101!', + 126 => '(Lenovo |Lephone )?3GW100!', + 127 => '(Lenovo |Lephone )?3GW101!', + 128 => '(Lenovo )?S1[- ]37AH0!', + 129 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 130 => 'Lenovo!!', + 131 => 'LenovoTV 40S9', + 132 => 'LenovoTV 50S52', + 133 => 'Lenovo Z2', + 134 => '(BLF-)?lephone!!', + 135 => 'Le Pan Mini', + 136 => 'Le Pan TC802A', + 137 => 'Le Pan TC1010', + 138 => 'Le Pan TC1020', + 139 => 'LePanII', + 140 => 'Le Pan S', + 141 => 'LE2101', + 142 => 'LE211[0135]!', + 143 => 'LE212[01357]!', + 144 => 'LENNY', + 145 => 'LENNY2', + 146 => 'LENNY3', + 147 => 'Lenny4', ), '@LG' => array ( @@ -3795,7 +3844,7 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => @@ -3809,37 +3858,39 @@ 6 => 'LM-G900!', 7 => 'LM-G910!', 8 => 'LM-K200!', - 9 => 'LM-K420!', - 10 => 'LM-K520!', - 11 => 'LM-Q610!', - 12 => 'LM-Q617!', - 13 => 'LM-Q630!', - 14 => 'LM-Q710!', - 15 => 'LM-Q720!', - 16 => 'LM-Q725!', - 17 => 'LM-Q815!', - 18 => 'LM-Q850!', - 19 => 'LM-Q910!', - 20 => 'LM-Q925!', - 21 => 'LM-V350!', - 22 => 'LM-V40[59]!', - 23 => 'LM-V450!', - 24 => 'LM-V500!', - 25 => 'LM-V510!', - 26 => 'LM-V600!', - 27 => 'LM-X120!', - 28 => 'LM-X210!', - 29 => 'LM-X212!', - 30 => 'LM-X220!', - 31 => 'LM-X320!', - 32 => 'LM-X410!', - 33 => 'LM-X415!', - 34 => 'LM-X420!', - 35 => 'LM-X510!', - 36 => 'LM-X525!', - 37 => 'LM-X540!', - 38 => 'LM-X625!', - 39 => 'LM-Y110!', + 9 => 'LM-K410!', + 10 => 'LM-K420!', + 11 => 'LM-K520!', + 12 => 'LM-Q610!', + 13 => 'LM-Q617!', + 14 => 'LM-Q630!', + 15 => 'LM-Q710!', + 16 => 'LM-Q720!', + 17 => 'LM-Q725!', + 18 => 'LM-Q815!', + 19 => 'LM-Q850!', + 20 => 'LM-Q910!', + 21 => 'LM-Q925!', + 22 => 'LM-V350!', + 23 => 'LM-V40[59]!', + 24 => 'LM-V450!', + 25 => 'LM-V500!', + 26 => 'LM-V510!', + 27 => 'LM-V600!', + 28 => 'LM-X120!', + 29 => 'LM-X210!', + 30 => 'LM-X212!', + 31 => 'LM-X220!', + 32 => 'LM-X320!', + 33 => 'LM-X410!', + 34 => 'LM-X415!', + 35 => 'LM-X420!', + 36 => 'LM-X430!', + 37 => 'LM-X510!', + 38 => 'LM-X525!', + 39 => 'LM-X540!', + 40 => 'LM-X625!', + 41 => 'LM-Y110!', ), '@LO' => array ( @@ -3849,7 +3900,7 @@ ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -3974,36 +4025,38 @@ 5 => 'M2002J9G', 6 => 'M2003J15SC', 7 => 'M2004J19C', - 8 => 'M2006C3LG', - 9 => 'M2006C3MG', - 10 => 'M2006C3MNG', - 11 => 'M2007J17G', - 12 => 'M2007J1SC', - 13 => 'M2007J20CG', - 14 => 'M2007J22G', - 15 => 'M2007J3SG', - 16 => 'M2007J3SY', - 17 => 'M2010J19CG', - 18 => 'M2010J19SY', - 19 => 'M2011K2C', - 20 => 'M2011K2G', - 21 => 'M2012K11AG', - 22 => 'M2012K11G', - 23 => 'M2101K6G', - 24 => 'M2101K6P', - 25 => 'M2101K7AG', - 26 => 'M2101K7BG', - 27 => 'M2101K7BNY', - 28 => 'M2101K9AG', - 29 => 'M2101K9C', - 30 => 'M2101K9G', - 31 => 'M2102J20SG', - 32 => 'M2102J20SI', - 33 => 'M2102K1AC', - 34 => 'M2102K1C', - 35 => 'M2102K1G', - 36 => 'M2103K19G', - 37 => 'M2103K19PG', + 8 => 'M2004J7BC', + 9 => 'M2006C3LG', + 10 => 'M2006C3MG', + 11 => 'M2006C3MNG', + 12 => 'M2007J17G', + 13 => 'M2007J1SC', + 14 => 'M2007J20CG', + 15 => 'M2007J22G', + 16 => 'M2007J3SG', + 17 => 'M2007J3SY', + 18 => 'M2010J19CG', + 19 => 'M2010J19SY', + 20 => 'M2011K2C', + 21 => 'M2011K2G', + 22 => 'M2012K11AG', + 23 => 'M2012K10C', + 24 => 'M2012K11G', + 25 => 'M2101K6G', + 26 => 'M2101K6P', + 27 => 'M2101K7AG', + 28 => 'M2101K7BG', + 29 => 'M2101K7BNY', + 30 => 'M2101K9AG', + 31 => 'M2101K9C', + 32 => 'M2101K9G', + 33 => 'M2102J20SG', + 34 => 'M2102J20SI', + 35 => 'M2102K1AC', + 36 => 'M2102K1C', + 37 => 'M2102K1G', + 38 => 'M2103K19G', + 39 => 'M2103K19PG', ), '@M3' => array ( @@ -4030,6 +4083,7 @@ 3 => 'M4', 4 => 'M4(TEL)? SS[0-9]{3,4}!!', 5 => 'M40 EEA', + 6 => 'M40(N9H3)', ), '@M5' => array ( @@ -4117,9 +4171,10 @@ array ( 0 => 'MC002', 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', - 2 => 'MC32N0', - 3 => 'MC40N0', - 4 => 'MC67NA', + 2 => 'MC401 GWL', + 3 => 'MC32N0', + 4 => 'MC40N0', + 5 => 'MC67NA', ), '@MD' => array ( @@ -4295,122 +4350,123 @@ 14 => 'moii!!', 15 => 'MORAL N01', 16 => 'motorola one', - 17 => 'motorola one action', - 18 => 'motorola one fusion+', - 19 => 'motorola one hyper', - 20 => 'motorola one macro', - 21 => 'motorola one power', - 22 => 'motorola one vision', - 23 => 'motorola one zoom', - 24 => 'motorola edge', - 25 => 'motorola edge plus', - 26 => 'motorola edge 20', - 27 => 'motorola edge 20 lite', - 28 => 'motorola edge 20 pro', - 29 => 'motorola edge 30 pro', - 30 => 'Moto Droid', - 31 => 'Motorola Pro XT610', - 32 => 'Motorola Milestone MAXX', - 33 => 'Motorola Backflip Me600', - 34 => 'Moto ME860', - 35 => 'Moto C', - 36 => 'Moto C Plus', - 37 => '(Moto)?E2$!', - 38 => '(Moto)?E2\\(4G-LTE\\)$!', - 39 => 'Motorola MotoE2!', - 40 => 'Moto E4', - 41 => 'Moto E (4)', - 42 => 'Moto E (4) Plus', - 43 => 'moto e5', - 44 => 'moto e5 cruise', - 45 => 'moto e5 play', - 46 => 'moto e5 plus', - 47 => 'moto e(6i)', - 48 => 'moto e6s', - 49 => 'moto e6 play', - 50 => 'moto e(6) plus', - 51 => 'moto e(7) plus', - 52 => 'moto e(7) power', - 53 => 'moto e(7i) power', - 54 => 'moto e20', - 55 => 'moto e30', - 56 => 'moto e40', - 57 => '(Moto)?G3$!', - 58 => '(Moto)?G3-TE$!', - 59 => 'Moto G 2015', - 60 => 'Moto G (2015)', - 61 => 'Moto G (2014', - 62 => 'MOTOROLA MOTOG', - 63 => 'Moto G Play', - 64 => 'Moto G Turbo', - 65 => 'moto g 5G', - 66 => 'moto g 5G plus', - 67 => 'moto g pro', - 68 => 'Moto G4', - 69 => 'Moto G (4', - 70 => 'Moto G (4)', - 71 => 'Moto G4 Plus', - 72 => 'Moto G 5', - 73 => 'Moto G (5', - 74 => 'Moto G (5)', - 75 => 'Moto G (5) Plus', - 76 => 'Moto G (5S', - 77 => 'Moto G (5S)', - 78 => 'Moto G (5S) Plus', - 79 => 'moto g(6', - 80 => 'moto g(6)', - 81 => 'moto g(6) (XT1925DL)', - 82 => 'moto g(6) forge', - 83 => 'moto g(6) play', - 84 => 'moto g(6) plus', - 85 => 'moto g(7', - 86 => 'moto g(7)', - 87 => 'moto g(7) optimo (XT1952DL)', - 88 => 'moto g(7) play', - 89 => 'moto g(7) plus', - 90 => 'moto g(7) power', - 91 => 'moto g(7) supra', - 92 => 'moto g(8', - 93 => 'moto g(8)', - 94 => 'moto g(8) plus', - 95 => 'moto g(8) power', - 96 => 'moto g(8) power lite', - 97 => 'moto g(9) play', - 98 => 'moto g(9) plus', - 99 => 'moto g(9) power', - 100 => 'moto g(10)', - 101 => 'moto g(20)', - 102 => 'moto g(30)', - 103 => 'moto g31(w)', - 104 => 'moto g(50)', - 105 => 'moto g51 5G', - 106 => 'moto g(60)', - 107 => 'moto g(60)s', - 108 => 'moto g(100)', - 109 => 'moto g200 5G', - 110 => 'Moto Z (2)', - 111 => 'Moto Z2 Play', - 112 => 'Moto Z3 Play', - 113 => 'Moto X Pro', - 114 => 'moto x4', - 115 => 'moto z4', - 116 => 'Moto Backflip', - 117 => 'motorola razr 5G', - 118 => 'MOTOROLA XOOM MZ606', - 119 => 'MOTOROLA RAZR', - 120 => 'MOTWX435KT', - 121 => '(PLOYER-)?MOMO!!', - 122 => 'MOB-5045', - 123 => 'Mobii 7', - 124 => 'MoFing', - 125 => 'mocha', - 126 => 'MO-01J', - 127 => 'MO-01K', - 128 => 'Movistar Express', - 129 => 'Movistar Link', - 130 => 'Movistar Motion', - 131 => 'Movistar Prime', - 132 => 'MOVE', + 17 => 'motorola one 5G ace', + 18 => 'motorola one action', + 19 => 'motorola one fusion+', + 20 => 'motorola one hyper', + 21 => 'motorola one macro', + 22 => 'motorola one power', + 23 => 'motorola one vision', + 24 => 'motorola one zoom', + 25 => 'motorola edge', + 26 => 'motorola edge plus', + 27 => 'motorola edge 20', + 28 => 'motorola edge 20 lite', + 29 => 'motorola edge 20 pro', + 30 => 'motorola edge 30 pro', + 31 => 'Moto Droid', + 32 => 'Motorola Pro XT610', + 33 => 'Motorola Milestone MAXX', + 34 => 'Motorola Backflip Me600', + 35 => 'Moto ME860', + 36 => 'Moto C', + 37 => 'Moto C Plus', + 38 => '(Moto)?E2$!', + 39 => '(Moto)?E2\\(4G-LTE\\)$!', + 40 => 'Motorola MotoE2!', + 41 => 'Moto E4', + 42 => 'Moto E (4)', + 43 => 'Moto E (4) Plus', + 44 => 'moto e5', + 45 => 'moto e5 cruise', + 46 => 'moto e5 play', + 47 => 'moto e5 plus', + 48 => 'moto e(6i)', + 49 => 'moto e6s', + 50 => 'moto e6 play', + 51 => 'moto e(6) plus', + 52 => 'moto e(7) plus', + 53 => 'moto e(7) power', + 54 => 'moto e(7i) power', + 55 => 'moto e20', + 56 => 'moto e30', + 57 => 'moto e40', + 58 => '(Moto)?G3$!', + 59 => '(Moto)?G3-TE$!', + 60 => 'Moto G 2015', + 61 => 'Moto G (2015)', + 62 => 'Moto G (2014', + 63 => 'MOTOROLA MOTOG', + 64 => 'Moto G Play', + 65 => 'Moto G Turbo', + 66 => 'moto g 5G', + 67 => 'moto g 5G plus', + 68 => 'moto g pro', + 69 => 'Moto G4', + 70 => 'Moto G (4', + 71 => 'Moto G (4)', + 72 => 'Moto G4 Plus', + 73 => 'Moto G 5', + 74 => 'Moto G (5', + 75 => 'Moto G (5)', + 76 => 'Moto G (5) Plus', + 77 => 'Moto G (5S', + 78 => 'Moto G (5S)', + 79 => 'Moto G (5S) Plus', + 80 => 'moto g(6', + 81 => 'moto g(6)', + 82 => 'moto g(6) (XT1925DL)', + 83 => 'moto g(6) forge', + 84 => 'moto g(6) play', + 85 => 'moto g(6) plus', + 86 => 'moto g(7', + 87 => 'moto g(7)', + 88 => 'moto g(7) optimo (XT1952DL)', + 89 => 'moto g(7) play', + 90 => 'moto g(7) plus', + 91 => 'moto g(7) power', + 92 => 'moto g(7) supra', + 93 => 'moto g(8', + 94 => 'moto g(8)', + 95 => 'moto g(8) plus', + 96 => 'moto g(8) power', + 97 => 'moto g(8) power lite', + 98 => 'moto g(9) play', + 99 => 'moto g(9) plus', + 100 => 'moto g(9) power', + 101 => 'moto g(10)', + 102 => 'moto g(20)', + 103 => 'moto g(30)', + 104 => 'moto g31(w)', + 105 => 'moto g(50)', + 106 => 'moto g51 5G', + 107 => 'moto g(60)', + 108 => 'moto g(60)s', + 109 => 'moto g(100)', + 110 => 'moto g200 5G', + 111 => 'Moto Z (2)', + 112 => 'Moto Z2 Play', + 113 => 'Moto Z3 Play', + 114 => 'Moto X Pro', + 115 => 'moto x4', + 116 => 'moto z4', + 117 => 'Moto Backflip', + 118 => 'motorola razr 5G', + 119 => 'MOTOROLA XOOM MZ606', + 120 => 'MOTOROLA RAZR', + 121 => 'MOTWX435KT', + 122 => '(PLOYER-)?MOMO!!', + 123 => 'MOB-5045', + 124 => 'Mobii 7', + 125 => 'MoFing', + 126 => 'mocha', + 127 => 'MO-01J', + 128 => 'MO-01K', + 129 => 'Movistar Express', + 130 => 'Movistar Link', + 131 => 'Movistar Motion', + 132 => 'Movistar Prime', + 133 => 'MOVE', ), '@MP' => array ( @@ -4742,7 +4798,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4834,7 +4890,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -4929,9 +4985,11 @@ 87 => 'Notion Ink ADAM', 88 => 'Note III', 89 => 'Nozomi', - 90 => 'Note 9P', - 91 => 'Noble TAB07-485', - 92 => '(QMobile|QTab|Q-Smart|Noir)!!', + 90 => 'Note 7P', + 91 => 'Note 8P', + 92 => 'Note 9P', + 93 => 'Noble TAB07-485', + 94 => '(QMobile|QTab|Q-Smart|Noir)!!', ), '@NP' => array ( @@ -4947,7 +5005,7 @@ ), '@NT' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NetTab|NT-)!!', ), '@NU' => @@ -5181,38 +5239,40 @@ 121 => 'One V', 122 => 'One', 123 => 'One M7', - 124 => 'one m8', - 125 => 'One A0001', - 126 => 'OnePlus One', - 127 => 'OnePlus One A0001', - 128 => 'ONE A2001', - 129 => 'ONE A2003', - 130 => 'ONE A2005', - 131 => 'OnePlus2', - 132 => 'ONE A3000', - 133 => 'ONE A3003', - 134 => 'ONEPLUS A3000', - 135 => 'ONEPLUS A3003', - 136 => 'OnePlus3', - 137 => 'ONEPLUS A3010', - 138 => 'ONEPLUS A5000', - 139 => 'ONEPLUS A5010', - 140 => 'ONEPLUS A6000', - 141 => 'ONEPLUS A6003', - 142 => 'ONEPLUS A6010', - 143 => 'ONEPLUS A6013', - 144 => 'ONE E1000', - 145 => 'ONE E1001', - 146 => 'ONE E1003', - 147 => 'ONE E1005', - 148 => 'oneplus Nord 2 5G', - 149 => 'ONDA MID', - 150 => 'ONDA A9 Core4', - 151 => 'ONDA VI10', - 152 => 'Onda V812', - 153 => 'ONDA v975m', - 154 => 'ONDA V989', - 155 => 'ONDA V989 Core8', + 124 => 'One Max', + 125 => 'one m8', + 126 => 'One A0001', + 127 => 'OnePlus One', + 128 => 'OnePlus One A0001', + 129 => 'ONE A2001', + 130 => 'ONE A2003', + 131 => 'ONE A2005', + 132 => 'OnePlus2', + 133 => 'ONE A3000', + 134 => 'ONE A3003', + 135 => 'ONEPLUS A3000', + 136 => 'ONEPLUS A3003', + 137 => 'OnePlus3', + 138 => 'ONEPLUS A3010', + 139 => 'ONEPLUS A5000', + 140 => 'ONEPLUS A5010', + 141 => 'ONEPLUS A6000', + 142 => 'ONEPLUS A6003', + 143 => 'ONEPLUS A6010', + 144 => 'ONEPLUS A6013', + 145 => 'OnePlus 7T Pro', + 146 => 'ONE E1000', + 147 => 'ONE E1001', + 148 => 'ONE E1003', + 149 => 'ONE E1005', + 150 => 'oneplus Nord 2 5G', + 151 => 'ONDA MID', + 152 => 'ONDA A9 Core4', + 153 => 'ONDA VI10', + 154 => 'Onda V812', + 155 => 'ONDA v975m', + 156 => 'ONDA V989', + 157 => 'ONDA V989 Core8', ), '@OP' => array ( @@ -5374,10 +5434,11 @@ '@OV' => array ( 0 => '(OV-|Overmax|Vertis)!!', + 1 => 'OV10274G', ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5424,6 +5485,7 @@ 16 => 'P023', 17 => 'P024', 18 => 'P027', + 19 => 'P028', ), '@P1' => array ( @@ -5547,23 +5609,24 @@ ), '@P9' => array ( - 0 => 'P940', - 1 => 'P990', - 2 => 'P90(H3U6)', - 3 => 'P90(H3U7)', - 4 => 'P98(F2K9)', - 5 => 'P98 八核(B9A3)', - 6 => 'P98 3Gk8(A4HY)', - 7 => 'P98 3G??(A4HY)', - 8 => 'P98 3G(M1Q2)', - 9 => 'P98 3G八核(A3HY)', - 10 => 'P98 3G八核(A4HY)', - 11 => 'P98 4G??(A8H6)', - 12 => 'P98 Air?? (C6V8)', - 13 => 'P98Air(C6V8)', - 14 => 'P98HD(A2Q6)', - 15 => 'P98HD+M6', - 16 => 'P98T(K3C4)', + 0 => 'P9 Energy', + 1 => 'P940', + 2 => 'P990', + 3 => 'P90(H3U6)', + 4 => 'P90(H3U7)', + 5 => 'P98(F2K9)', + 6 => 'P98 八核(B9A3)', + 7 => 'P98 3Gk8(A4HY)', + 8 => 'P98 3G??(A4HY)', + 9 => 'P98 3G(M1Q2)', + 10 => 'P98 3G八核(A3HY)', + 11 => 'P98 3G八核(A4HY)', + 12 => 'P98 4G??(A8H6)', + 13 => 'P98 Air?? (C6V8)', + 14 => 'P98Air(C6V8)', + 15 => 'P98HD(A2Q6)', + 16 => 'P98HD+M6', + 17 => 'P98T(K3C4)', ), '@PA' => array ( @@ -5624,7 +5687,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5642,7 +5705,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5786,7 +5849,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -5906,6 +5969,9 @@ 85 => 'POCOPHONE F1', 86 => 'POCO F1', 87 => 'POCO F2 Pro', + 88 => 'POCO X2', + 89 => 'POCO X3 NFC', + 90 => 'POCO X3 Pro', ), '@PP' => array ( @@ -6345,6 +6411,12 @@ 8 => '(Xiaomi )?(Redmi|HM)[ \\-]?Note!!', 9 => 'REVVLPLUS C3701A', ), + '@RG' => + array ( + 0 => 'RG650', + 1 => 'RG655', + 2 => 'RG725', + ), '@RH' => array ( 0 => '(?:RIVO )?RHYTHM RX ?([0-9]+)!', @@ -6403,33 +6475,37 @@ 2 => 'RM-1061', 3 => '(Ritmix )?RM[DP]-?[0-9]{3,3}!!', 4 => 'RMD-[0-9]{2,3}G!!', - 5 => 'RMX1931', - 6 => 'RMX1971', - 7 => 'RMX1993', - 8 => 'RMX2001', - 9 => 'RMX2002', - 10 => 'RMX2020', - 11 => 'RMX2063', - 12 => 'RMX2075', - 13 => 'RMX2086', - 14 => 'RMX2111', - 15 => 'RMX2144', - 16 => 'RMX2155', - 17 => 'RMX2170', - 18 => 'RMX2185', - 19 => 'RMX2202', - 20 => 'RMX3081', - 21 => 'RMX3085', - 22 => 'RMX3241', - 23 => 'RMX3242', - 24 => 'RMX3301', - 25 => 'RMX3311', - 26 => 'RMX3363', - 27 => 'RMX3370', + 5 => 'RMX1911', + 6 => 'RMX1931', + 7 => 'RMX1971', + 8 => 'RMX1993', + 9 => 'RMX2001', + 10 => 'RMX2002', + 11 => 'RMX2020', + 12 => 'RMX2030', + 13 => 'RMX2063', + 14 => 'RMX2075', + 15 => 'RMX2086', + 16 => 'RMX2111', + 17 => 'RMX2144', + 18 => 'RMX2155', + 19 => 'RMX2170', + 20 => 'RMX2185', + 21 => 'RMX2202', + 22 => 'RMX3081', + 23 => 'RMX3085', + 24 => 'RMX3201', + 25 => 'RMX3241', + 26 => 'RMX3242', + 27 => 'RMX3263', + 28 => 'RMX3301', + 29 => 'RMX3311', + 30 => 'RMX3363', + 31 => 'RMX3370', ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6568,7 +6644,7 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', @@ -6646,15 +6722,16 @@ 23 => 'SH-M02', 24 => 'SH-M02-EVA20', 25 => 'SH-M03', - 26 => 'SH-M07', - 27 => 'SH-RM02', - 28 => 'SH-Z01', - 29 => 'SH-[01][0-9][A-Z]!!', - 30 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', - 31 => 'SH[FLTV][0-9]{2,2}!!', - 32 => 'SHARP-ADS1', - 33 => 'SHIFT6m', - 34 => 'SHARK PRS-H0', + 26 => 'SH-M05', + 27 => 'SH-M07', + 28 => 'SH-RM02', + 29 => 'SH-Z01', + 30 => 'SH-[01][0-9][A-Z]!!', + 31 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', + 32 => 'SH[FLTV][0-9]{2,2}!!', + 33 => 'SHARP-ADS1', + 34 => 'SHIFT6m', + 35 => 'SHARK PRS-H0', ), '@SI' => array ( @@ -6671,7 +6748,8 @@ 3 => 'Skyworth!!', 4 => 'SK17(a|i|iv|i-o)!', 5 => 'SK-Mtek GT7305', - 6 => '(ZTE )?Skate!!', + 6 => 'SKR-H0', + 7 => '(ZTE )?Skate!!', ), '@SL' => array ( @@ -6823,7 +6901,7 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 16 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', @@ -6906,8 +6984,9 @@ array ( 0 => 'Swift', 1 => 'Swift Plus', - 2 => 'Swift 2 Plus', - 3 => 'Swift 2 X', + 2 => 'Swift 2', + 3 => 'Swift 2 Plus', + 4 => 'Swift 2 X', ), '@SX' => array ( @@ -7005,8 +7084,9 @@ 0 => '(OPPO-?)?T703!', 1 => 'T774H', 2 => 'T775H', - 3 => 'T720 SE', - 4 => 'T760 from moage.com', + 3 => 'T790Y', + 4 => 'T720 SE', + 5 => 'T760 from moage.com', ), '@T8' => array ( @@ -7173,17 +7253,19 @@ 18 => 'Telpad Quad S', 19 => 'Telpad QS', 20 => 'Tensent S9000', - 21 => 'teXet X-alpha', - 22 => 'Texet TM-4083', - 23 => 'teXet X-start', - 24 => 'teXet iX-mini', - 25 => 'teXet X-navi', - 26 => 'TEXET TM-4677', - 27 => 'teXet X-medium plus', - 28 => 'teXet X-maxi qHD', - 29 => 'TeamDRH ICS for GTablet', - 30 => 'TERRA PAD 1004', - 31 => 'Telenor!!', + 21 => 'Teracube 2e', + 22 => 'teXet X-alpha', + 23 => 'Texet TM-4083', + 24 => 'teXet X-start', + 25 => 'teXet iX-mini', + 26 => 'teXet X-navi', + 27 => 'TEXET TM-4677', + 28 => 'teXet X-medium plus', + 29 => 'teXet X-maxi qHD', + 30 => 'TeamDRH ICS for GTablet', + 31 => 'TERRA PAD 1004', + 32 => 'TERRA PAD 1005', + 33 => 'Telenor!!', ), '@TF' => array ( @@ -7220,7 +7302,8 @@ 5 => 'TI320-DU', 6 => 'TI320-DU TV', 7 => 'TizzBird!!', - 8 => 'tiffany', + 8 => 'Titan pocket', + 9 => 'tiffany', ), '@TL' => array ( @@ -7282,7 +7365,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -7383,6 +7466,12 @@ 2 => 'TX85', 3 => 'TX18', ), + '@U ' => + array ( + 0 => 'U FEEL LITE', + 1 => 'U FEEL PRIME', + 2 => 'U PULSE LITE', + ), '@U1' => array ( 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', @@ -7533,7 +7622,11 @@ 5 => 'V2 Viper X', 6 => 'V2 Viper X plus', 7 => 'V2023', - 8 => 'V2056A', + 8 => 'V2028', + 9 => 'V2041', + 10 => 'V2056A', + 11 => 'V2109', + 12 => 'V2141A', ), '@V3' => array ( @@ -7635,6 +7728,7 @@ 16 => 'Venus_V3 5040', 17 => 'Venus V3 5570', 18 => 'Venus V3 5580', + 19 => 'Venus Z20', ), '@VF' => array ( @@ -7733,15 +7827,18 @@ 61 => 'ViewSonic VB733', 62 => 'VINUS!!', 63 => '(BBG-|VIV-)?vivo!!', - 64 => 'View2 Go', - 65 => 'Viettel i5', - 66 => 'Viettel I8', - 67 => 'VIETTEL V8404!', - 68 => 'Viettel V8410', - 69 => 'VIETTEL V8411', - 70 => 'Viettel V8502', - 71 => 'VIETTEL V8506', - 72 => 'VIETTEL V8509', + 64 => 'View', + 65 => 'View XL', + 66 => 'View2 Go', + 67 => 'View2 Plus', + 68 => 'Viettel i5', + 69 => 'Viettel I8', + 70 => 'VIETTEL V8404!', + 71 => 'Viettel V8410', + 72 => 'VIETTEL V8411', + 73 => 'Viettel V8502', + 74 => 'VIETTEL V8506', + 75 => 'VIETTEL V8509', ), '@VK' => array ( @@ -7840,14 +7937,19 @@ ), '@W ' => array ( - 0 => 'W P200', - 1 => 'W C860', + 0 => 'W K300', + 1 => 'W K400', + 2 => 'W P200', + 3 => 'W C800', + 4 => 'W C860', ), '@W-' => array ( - 0 => 'W-P311-EEA', - 1 => 'W-V830-EEA', - 2 => 'W-V730-EEA', + 0 => 'W-V600', + 1 => 'W-P311-EEA', + 2 => 'W-V800-EEA', + 3 => 'W-V830-EEA', + 4 => 'W-V730-EEA', ), '@W1' => array ( @@ -8003,12 +8105,13 @@ 7 => 'WIKO-CINK SLIM', 8 => 'Wiko Rainbow', 9 => 'Wiko Stairway', - 10 => 'Wileyfox Spark', - 11 => 'Wileyfox Spark +', - 12 => 'Wileyfox Spark X', - 13 => 'Wileyfox Storm', - 14 => 'Wileyfox Swift', - 15 => 'Wink City S', + 10 => 'WIM Lite', + 11 => 'Wileyfox Spark', + 12 => 'Wileyfox Spark +', + 13 => 'Wileyfox Spark X', + 14 => 'Wileyfox Storm', + 15 => 'Wileyfox Swift', + 16 => 'Wink City S', ), '@WL' => array ( @@ -8078,20 +8181,23 @@ 18 => 'X00LD', 19 => 'X00T', 20 => 'X00TD', - 21 => 'X00DE', - 22 => 'X00QD', - 23 => 'X01AD', - 24 => 'X013D', - 25 => 'X013DA', - 26 => 'X013DB', - 27 => 'X013DC', - 28 => 'X015D', - 29 => 'X00ID', - 30 => 'X014D', - 31 => 'X002', - 32 => 'X003', - 33 => 'X005', - 34 => 'X008', + 21 => 'X00TDB', + 22 => 'X00DE', + 23 => 'X00QD', + 24 => 'X01AD', + 25 => 'X01BDA', + 26 => 'X013D', + 27 => 'X013DA', + 28 => 'X013DB', + 29 => 'X013DC', + 30 => 'X015D', + 31 => 'X00ID', + 32 => 'X014D', + 33 => 'X018D', + 34 => 'X002', + 35 => 'X003', + 36 => 'X005', + 37 => 'X008', ), '@X1' => array ( @@ -8159,15 +8265,16 @@ ), '@X5' => array ( - 0 => 'X550', - 1 => 'X515d', - 2 => 'X515e', - 3 => 'X525a', - 4 => 'X527', - 5 => 'X505', - 6 => 'X506', - 7 => 'X506S', - 8 => 'X507Q', + 0 => 'X5 Soul Pro', + 1 => 'X550', + 2 => 'X515d', + 3 => 'X515e', + 4 => 'X525a', + 5 => 'X527', + 6 => 'X505', + 7 => 'X506', + 8 => 'X506S', + 9 => 'X507Q', ), '@X6' => array ( @@ -8349,10 +8456,11 @@ 15 => 'Xiaomi MCT1!', 16 => 'Xiaomi MAT136!', 17 => 'Xiaomi MBT6A5!', - 18 => 'Xiaomi 11T Pro', - 19 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 20 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 21 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 18 => 'Xiaomi 11 Lite 5G NE', + 19 => 'Xiaomi 11T Pro', + 20 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 21 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 22 => '(Xiaomi|Xiaomi Mi|MI)TV!!', ), '@XL' => array ( @@ -8475,7 +8583,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( @@ -8653,10 +8761,11 @@ 56 => 'Z01HDA', 57 => 'Z01KD', 58 => 'Z01KDA', - 59 => 'Z01MDA', - 60 => 'Z01RD', - 61 => 'Z01QD', - 62 => 'Z00YD', + 59 => 'Z01MD', + 60 => 'Z01MDA', + 61 => 'Z01RD', + 62 => 'Z01QD', + 63 => 'Z00YD', ), '@Z1' => array ( @@ -8817,6 +8926,10 @@ array ( 0 => '(Zopo )?ZP ?[0-9]{3,3}!!', ), + '@ZS' => + array ( + 0 => 'ZS671KS', + ), '@ZT' => array ( 0 => 'zt180', diff --git a/data/models-android.php b/data/models-android.php index 72e438985..49912597c 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -324,11 +324,10 @@ /* Chromebook */ - 'Acer Chromebook R11' => [ 'Acer', 'Chromebook R11', DeviceType::DESKTOP ], - 'Acer Chromebook R11 (CB5-132T / C738T)' => [ 'Acer', 'Chromebook R11', DeviceType::DESKTOP ], - 'Acer Chromebook 15 (CB3-532)' => [ 'Acer', 'Chromebook 15', DeviceType::DESKTOP ], - 'ASUS Chromebook Flip C100PA' => [ 'Asus', 'Chromebook Flip', DeviceType::DESKTOP ], - 'ASUS Chromebook Flip C302' => [ 'Asus', 'Chromebook Flip', DeviceType::DESKTOP ], + 'Acer Chromebook R11!' => [ 'Acer', 'Chromebook R11', DeviceType::DESKTOP ], + 'Acer Chromebook R13!' => [ 'Acer', 'Chromebook R13', DeviceType::DESKTOP ], + 'Acer Chromebook 15!' => [ 'Acer', 'Chromebook 15', DeviceType::DESKTOP ], + 'ASUS Chromebook Flip!' => [ 'Asus', 'Chromebook Flip', DeviceType::DESKTOP ], 'Google Chromebook Pixel (2015)' => [ 'Google', 'Chromebook Pixel (2015)', DeviceType::DESKTOP ], 'HP Chromebook x360 11 G1 EE' => [ 'Google', 'Chromebook x360 11 G1 EE', DeviceType::DESKTOP ], 'Samsung Chromebook 3' => [ 'Samsung', 'Chromebook 3', DeviceType::DESKTOP ], @@ -987,8 +986,10 @@ '4055[JU]!' => [ 'Alcatel', 'One Touch Pixi 5 (4)' ], '4060[A]!' => [ 'Alcatel', 'IDEAL' ], '4060[SW]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], + '5001[D]!' => [ 'Alcatel', '1V (2019)' ], '5002[DH]!' => [ 'Alcatel', '1B (2020)' ], '5003[D]!' => [ 'Alcatel', '1C (2019)' ], + '5009[D]!' => [ 'Alcatel', '1C' ], '5010[DEGSUX]!' => [ 'Alcatel', 'One Touch Pixi 4 (5)' ], '5011[A]!' => [ 'Alcatel', 'A3 Plus' ], '5012[G]!' => [ 'Alcatel', 'One Touch Pixi 4 (5.5)' ], @@ -1118,6 +1119,9 @@ '8020[D]!' => [ 'Alcatel', 'One Touch Hero' ], 'one ?touch 8030!' => [ 'Alcatel', 'One Touch Hero 2' ], '8030[BY]!' => [ 'Alcatel', 'One Touch Hero 2' ], + '8063' => [ 'Alcatel', 'Pixi 4' ], + '8082' => [ 'Alcatel', '1T', DeviceType::TABLET ], + '8094[X]!' => [ 'Alcatel', '3T 10', DeviceType::TABLET ], '9001[DIX]!' => [ 'Alcatel', 'One Touch Pixi 4 (6)' ], '9002[AWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (7)', DeviceType::TABLET ], '9003[AX]!' => [ 'Alcatel', 'One Touch Pixi 4 (7)', DeviceType::TABLET ], @@ -1130,6 +1134,7 @@ '9022[SX]!' => [ 'Alcatel', 'One Touch Pixi 3 (8)', DeviceType::TABLET ], '9024[OW]!' => [ 'Alcatel', 'A30', DeviceType::TABLET ], '9025[MQ]!' => [ 'Alcatel', 'One Touch Pop 4 (7)', DeviceType::TABLET ], + '9026[X]!' => [ 'Alcatel', 'A3 10', DeviceType::TABLET ], 'one ?touch T10!' => [ 'Alcatel', 'One Touch T10', DeviceType::TABLET ], 'one ?touch T20!' => [ 'Alcatel', 'One Touch T20', DeviceType::TABLET ], 'one ?touch T60!' => [ 'Alcatel', 'One Touch T60', DeviceType::TABLET ], @@ -1201,6 +1206,7 @@ 'P8 Energy' => [ 'Allview', 'P8 Energy' ], 'P8 Energy mini' => [ 'Allview', 'P8 Energy Mini' ], 'P8 Energy mini TM' => [ 'Allview', 'P8 Energy Mini' ], + 'P9 Energy' => [ 'Allview', 'P9 Energy' ], 'ALLVIEW TX1 Quasar' => [ 'Allview', 'TX1 Quasar' ], 'V1 Viper' => [ 'Allview', 'V1 Viper' ], 'V1 Viper E' => [ 'Allview', 'V1 Viper E' ], @@ -1256,6 +1262,7 @@ 'X3 Soul PLUS' => [ 'Allview', 'X3 Soul Plus' ], 'X3 Soul PRO' => [ 'Allview', 'X3 Soul Pro' ], 'X3 Soul Style' => [ 'Allview', 'X3 Soul Style' ], + 'X5 Soul Pro' => [ 'Allview', 'X5 Soul Pro' ], '(Allview|Alldro)!!' => [ 'Allview AX1 Shine' => [ 'Allview', 'AX1 Shine', DeviceType::TABLET ], @@ -1603,6 +1610,7 @@ 'Archos 70 Oxygen' => [ 'Archos', '70 Oxygen', DeviceType::TABLET ], 'Archos 80 Oxygen' => [ 'Archos', '80 Oxygen', DeviceType::TABLET ], 'Archos 101 Oxygen' => [ 'Archos', '101 Oxygen', DeviceType::TABLET ], + 'Archos 101 Oxygen 4G' => [ 'Archos', '101 Oxygen', DeviceType::TABLET ], 'Archos 101b Oxygen' => [ 'Archos', '101b Oxygen', DeviceType::TABLET ], 'Archos 133 Oxygen' => [ 'Archos', '133 Oxygen', DeviceType::TABLET ], 'Archos 156 Oxygen' => [ 'Archos', '156 Oxygen', DeviceType::TABLET ], @@ -1697,6 +1705,7 @@ 'Archos Access 101 3G V2' => [ 'Archos', 'Access 101', DeviceType::TABLET ], 'Archos Core 50 4G' => [ 'Archos', 'Core 50' ], 'Archos Core 55 4G' => [ 'Archos', 'Core 55' ], + 'Archos Core 57S' => [ 'Archos', 'Core 57S' ], 'Archos Core 70 3G' => [ 'Archos', 'Core 70', DeviceType::TABLET ], 'ARCHOS Core 101 Wifi' => [ 'Archos', 'Core 101', DeviceType::TABLET ], 'Archos Core 101 3G' => [ 'Archos', 'Core 101', DeviceType::TABLET ], @@ -1791,15 +1800,17 @@ 'PadFone X' => [ 'Asus', 'PadFone X', DeviceType::TABLET ], 'PadFone X mini' => [ 'Asus', 'PadFone X mini (PF450CL)', DeviceType::TABLET ], 'ETBW11AA' => [ 'Asus', 'Tough' ], - 'I01WDX' => [ 'Asus', 'Zenfone 8' ], + 'I01WDX' => [ 'Asus', 'ZenFone 8' ], 'I001DC' => [ 'Asus', 'ROG Phone 2' ], 'I001DE' => [ 'Asus', 'ROG Phone 2' ], - 'I002D' => [ 'Asus', 'Zenfone 7' ], + 'I002D' => [ 'Asus', 'ZenFone 7' ], 'I003D' => [ 'Asus', 'ROG Phone 3' ], 'I003DD' => [ 'Asus', 'ROG Phone 3' ], + 'I004D' => [ 'Asus', 'ZenFone 8 Flip' ], 'I005D' => [ 'Asus', 'ROG Phone 5 Pro' ], 'I005DA' => [ 'Asus', 'ROG Phone 5 Pro' ], - 'I006D' => [ 'Asus', 'Zenfone 8 Mini' ], + 'I006D' => [ 'Asus', 'ZenFone 8 Mini' ], + 'I01WD' => [ 'Asus', 'ZenFone 6 (ZS630KL)' ], 'K00C' => [ 'Asus', 'Transformer Pad Infinity', DeviceType::TABLET ], 'K010' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], 'K010E' => [ 'Asus', 'Transformer Pad TF103', DeviceType::TABLET ], @@ -1873,8 +1884,10 @@ 'P023' => [ 'Asus', 'ZenPad 10 (Z300C)', DeviceType::TABLET ], 'P024' => [ 'Asus', 'ZenPad 8.0 (Z380KL)', DeviceType::TABLET ], 'P027' => [ 'Asus', 'ZenPad 3S 10 (Z500M)', DeviceType::TABLET ], + 'P028' => [ 'Asus', 'ZenPad 10 (Z301M)', DeviceType::TABLET ], // '' => [ 'Asus', 'ZenPad 10 (Z300CNL)', DeviceType::TABLET ], 'A001' => [ 'Asus', 'ZenFone 3 Ultra (ZU680KL)' ], + 'A007' => [ 'Asus', 'ZenFone Live (ZB501KL)' ], 'X007D' => [ 'Asus', 'ZenFone Go (ZB552KL)' ], 'X008D' => [ 'Asus', 'ZenFone 3 Max (ZC520TL)' ], 'X008DA' => [ 'Asus', 'ZenFone 3 Max (ZC520TL)' ], @@ -1896,9 +1909,11 @@ 'X00LD' => [ 'Asus', 'ZenFone 4 Selfie (ZD553KL)' ], 'X00T' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00TD' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], + 'X00TDB' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00DE' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00QD' => [ 'Asus', 'ZenFone 5 (ZE620KL)' ], 'X01AD' => [ 'Asus', 'ZenFone Max M2 (ZB633KL)' ], + 'X01BDA' => [ 'Asus', 'ZenFone Max Pro M2 (ZB631KL)' ], 'X013D' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X013DA' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X013DB' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], @@ -1909,6 +1924,7 @@ 'ZB551KL' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], 'X00ID' => [ 'Asus', 'ZenFone 4 Max (ZC554KL)' ], 'X014D' => [ 'Asus', 'ZenFone Go (ZB452KG)' ], + 'X018D' => [ 'Asus', 'ZenFone Max Plus M1 (ZB570TL)' ], 'Z002' => [ 'Asus', 'ZenFone 6 (A601CG)' ], 'Z007' => [ 'Asus', 'ZenFone C (ZC451CG)' ], 'ZenFone 2' => [ 'Asus', 'ZenFone 2 (ZE550ML)' ], @@ -1970,6 +1986,7 @@ 'Z01HDA' => [ 'Asus', 'ZenFone 3 Zoom (ZE553KL)' ], 'Z01KD' => [ 'Asus', 'ZenFone 4 (ZE554KL)' ], 'Z01KDA' => [ 'Asus', 'ZenFone 4 (ZE554KL)' ], + 'Z01MD' => [ 'Asus', 'ZenFone 4 Selfie Pro (ZD552KL)' ], 'Z01MDA' => [ 'Asus', 'ZenFone 4 Selfie Pro (ZD552KL)' ], 'Z01RD' => [ 'Asus', 'ZenFone 5z (ZS620KL)' ], 'Z01QD' => [ 'Asus', 'ROG Phone' ], @@ -1985,6 +2002,7 @@ 'ZE552KL' => [ 'Asus', 'ZenFone 3 (ZE552KL)' ], 'ZE553KL' => [ 'Asus', 'ZenFone 3 Zoom (ZE553KL)' ], 'ZE554KL' => [ 'Asus', 'ZenFone 4 (ZE554KL)' ], + 'ZS671KS' => [ 'Asus', 'ZenFone 7 Pro (ZS671KS)' ], 'Z00YD' => [ 'Asus', 'Live' ], 'X002' => [ 'Asus', 'Pegasus' ], @@ -2278,15 +2296,21 @@ 'BBE100-[0-9]!' => [ 'BlackBerry', '"BBE100"' ], 'BBF100-[0-9]!' => [ 'BlackBerry', 'KEY2' ], + 'A80Plus' => [ 'Blackview', 'A80 Plus' ], + 'A80Pro' => [ 'Blackview', 'A80 Pro' ], 'BL6000Pro' => [ 'Blackview', 'BL6000 Pro' ], 'BV4900Pro' => [ 'Blackview', 'BV4900 Pro' ], 'BV5900' => [ 'Blackview', 'BV5900' ], 'BV6300Pro' => [ 'Blackview', 'BV6300 Pro' ], + 'BV6600' => [ 'Blackview', 'BV6600' ], 'BV8000Pro' => [ 'Blackview', 'BV8000 Pro' ], 'BV9100' => [ 'Blackview', 'BV9100' ], 'BV9500' => [ 'Blackview', 'BV9500' ], 'BV9500Plus' => [ 'Blackview', 'BV9500 Plus' ], 'BV9600E' => [ 'Blackview', 'BV9600E' ], + 'BV9600Pro' => [ 'Blackview', 'BV9600 Pro' ], + 'BV9800Pro' => [ 'Blackview', 'BV9800 Pro' ], + 'BV9900E' => [ 'Blackview', 'BV9900E' ], 'BV9900Pro' => [ 'Blackview', 'BV9900 Pro' ], 'P2Lite' => [ 'Blackview', 'P2 Lite' ], @@ -3490,6 +3514,7 @@ 'CROSSCALL WILD' => [ 'Crosscall', 'WILD' ], ], + 'Core-M5' => [ 'Crosscall', 'Core-M5' ], 'Action-X3' => [ 'Crosscall', 'Action-X3' ], 'TREKKER-X3' => [ 'Crosscall', 'Trekker-X3' ], 'Trekker-X4' => [ 'Crosscall', 'Trekker-X4' ], @@ -3520,6 +3545,8 @@ 'CUBOT S108' => [ 'Cubot', 'S108' ], 'CUBOT S222' => [ 'Cubot', 'S222' ], 'CUBOT X6' => [ 'Cubot', 'X6' ], + 'CUBOT X18 Plus' => [ 'Cubot', 'X18 Plus' ], + 'CUBOT POWER' => [ 'Cubot', 'Power' ], ], 'S222' => [ 'Cubot', 'S222' ], @@ -4049,6 +4076,7 @@ ], 'Doro 8030' => [ 'Doro', 'Liberto 822' ], + 'Doro 8040' => [ 'Doro', '8040' ], 'Doro 824' => [ 'Doro', 'Liberto 824' ], '825 T-Mobile' => [ 'Doro', 'Liberto 825' ], 'Doro PhoneEasy 745' => [ 'Doro', 'PhoneEasy 745' ], @@ -4285,6 +4313,9 @@ 'E8051HD' => [ 'Evertek', 'Everpad E8051HD', DeviceType::TABLET ], ], + 'EVOLVEO StrongPhone G7' => [ 'EVOLVEO', 'StrongPhone G7' ], + 'EVOLVEO StrongPhone G9' => [ 'EVOLVEO', 'StrongPhone G9' ], + 'P10AN' => [ 'Exper', 'Easypad P10AN', DeviceType::TABLET ], '(Explay|X-tremer|ActiveD|Informer|Surfer)!!' => [ @@ -4788,12 +4819,14 @@ ], 'GS110' => [ 'Gigaset', 'GS110' ], + 'GS185' => [ 'Gigaset', 'GS185' ], 'GS190' => [ 'Gigaset', 'GS190' ], 'GS195' => [ 'Gigaset', 'GS195' ], 'GS270' => [ 'Gigaset', 'GS270' ], 'GS270 plus' => [ 'Gigaset', 'GS270 Plus' ], 'GS280' => [ 'Gigaset', 'GS280' ], 'GS290' => [ 'Gigaset', 'GS290' ], + 'GS370 Plus' => [ 'Gigaset', 'GS370 Plus' ], 'E940-2795-00' => [ 'Gigaset', 'GS4' ], 'E940-2796-00' => [ 'Gigaset', 'GS4' ], @@ -5052,9 +5085,12 @@ 'X710d' => [ 'Haipai', 'X710D' ], 'X720D' => [ 'Haipai', 'X720D' ], + 'Hammer Blade2 PRO' => [ 'Hammer', 'Blade 2 Pro' ], 'Hammer Blade 3' => [ 'Hammer', 'Blade 3' ], + 'Hammer Energy' => [ 'Hammer', 'Energy' ], 'Hammer Energy 2' => [ 'Hammer', 'Energy 2' ], 'Hammer Explorer' => [ 'Hammer', 'Explorer' ], + 'Hammer Explorer Pro' => [ 'Hammer', 'Explorer Pro' ], 'SN[0-9]!!' => [ 'SN10T1' => [ 'HANNspree', 'HANNSpad SN10T1', DeviceType::TABLET ], @@ -5285,7 +5321,9 @@ 'Hisense HS-E910' => [ 'Hisense', 'E910' ], 'Hisense EG909' => [ 'Hisense', 'EG909' ], 'HS-Hisense F20T' => [ 'Hisense', 'F20T' ], + 'Hisense F24' => [ 'Hisense', 'F24' ], 'Hisense F31' => [ 'Hisense', 'F31' ], + 'Hisense Infinity H12' => [ 'Hisense', 'Infinity H12' ], 'HS-Hisense I632T' => [ 'Hisense', 'I632T' ], 'HS-Hisense I635T' => [ 'Hisense', 'I635T' ], 'HS-Hisense I639T' => [ 'Hisense', 'I639T' ], @@ -5873,6 +5911,7 @@ 'HTC M9(e|pt|px|u|w)!' => [ 'HTC', 'One (M9)' ], 'HTC One M9PLUS' => [ 'HTC', 'One (M9 Plus)' ], 'HTC One M9PLUS Prime Camera Edition' => [ 'HTC', 'One (M9 Plus)' ], + 'HTC One M9 Prime Camera Edition' => [ 'HTC', 'One (M9 Prime)' ], 'HTC M9pw' => [ 'HTC', 'One (M9 Plus)' ], 'HTC 0PK71' => [ 'HTC', 'One (M9 Plus)' ], 'HTC 0PK72' => [ 'HTC', 'One (M9 Plus)' ], @@ -6076,6 +6115,7 @@ 'One V' => [ 'HTC', 'One V' ], 'One' => [ 'HTC', 'One' ], 'One M7' => [ 'HTC', 'One' ], + 'One Max' => [ 'HTC', 'One Max' ], 'EndeavorU' => [ 'HTC', 'One X' ], '2PQ93' => [ 'HTC', 'One (A9)' ], 'm8wl' => [ 'HTC', 'One (M8)' ], @@ -6211,9 +6251,6 @@ 'Huawei MediaPad T1 8.0 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], 'Huawei MediaPad T1 10 4G' => [ 'Huawei', 'MediaPad T1', DeviceType::TABLET ], - 'SHT-W09' => [ 'Huawei', 'MediaPad M5', DeviceType::TABLET ], - 'AGS2-W09' => [ 'Huawei', 'MediaPad T5', DeviceType::TABLET ], - 'MediaPad!!' => [ 'MediaPad' => [ 'Huawei', 'MediaPad', DeviceType::TABLET ], 'MediaPad 7 FHD' => [ 'Huawei', 'MediaPad 7', DeviceType::TABLET ], @@ -6283,14 +6320,19 @@ 'BGO-(DL09|L03)!' => [ 'Huawei', 'MediaPad T2', DeviceType::TABLET ], 'KOB-(L09|W09)!' => [ 'Huawei', 'MediaPad T3', DeviceType::TABLET ], 'AGS-(L09|W09)!' => [ 'Huawei', 'MediaPad T3', DeviceType::TABLET ], - 'BG2-(U01)!' => [ 'Huawei', 'MediaPad T3', DeviceType::TABLET ], + 'BG2-(U01|W09)!' => [ 'Huawei', 'MediaPad T3', DeviceType::TABLET ], + 'AGS2-(L09|W09)!' => [ 'Huawei', 'MediaPad T5', DeviceType::TABLET ], + 'KOB2-(W09)!' => [ 'Huawei', 'MediaPad T8', DeviceType::TABLET ], 'BTV-(DL09|W09)!' => [ 'Huawei', 'MediaPad M3', DeviceType::TABLET ], 'CPN-(W09|AL00|L09)!' => [ 'Huawei', 'MediaPad M3 Lite', DeviceType::TABLET ], 'BAH-(W09|AL00|L09)!' => [ 'Huawei', 'MediaPad M3 Lite', DeviceType::TABLET ], + 'SHT-W09' => [ 'Huawei', 'MediaPad M5', DeviceType::TABLET ], 'CMR-(AL09|AL19|W09|W19)!' => [ 'Huawei', 'MediaPad M5', DeviceType::TABLET ], 'BAH2-(AL10|L09|W09|W19)!' => [ 'Huawei', 'MediaPad M5 Lite', DeviceType::TABLET ], 'SCM-(AL09|W09)!' => [ 'Huawei', 'MediaPad M6', DeviceType::TABLET ], + 'BAH3-(W09)!' => [ 'Huawei', 'MatePad 10.4', DeviceType::TABLET ], + 'JDN-W09' => [ 'Huawei', 'Honor Pad 2', DeviceType::TABLET ], 'JDN2-AL00HN' => [ 'Huawei', 'Honor Tab 5', DeviceType::TABLET ], 'JDN2-W09HN' => [ 'Huawei', 'Honor Tab 5', DeviceType::TABLET ], @@ -6332,7 +6374,7 @@ '(HW-|HUAWEI )?DVC-(AN20)!' => [ 'Huawei', 'Enjoy 20 Pro' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6351,6 +6393,7 @@ '(HW-|HUAWEI )?PE-(CL00|TL00|TL00M|TL10|TL20|UL00)!' => [ 'Huawei', 'Honor 6 Plus' ], '(HW-|HUAWEI |HONOR )?PLK-(L01|AL10|CL00|UL00|TL00|TL01H)!' => [ 'Huawei', 'Honor 7' ], '(HW-|HUAWEI )?ATH-(AL00|CL00|TL00|TL00H|UL00)!' => [ 'Huawei', 'Honor 7i' ], + '(HW-|HUAWEI )?AUM-(L29)!' => [ 'Huawei', 'Honor 7A' ], '(HW-|HUAWEI )?DUA-(L22)!' => [ 'Huawei', 'Honor 7S' ], '(HW-|HUAWEI )?BND-(AL00|AL10|L21|L24|L31|L34|TL10)!' => [ 'Huawei', 'Honor 7X' ], '(HW-|HUAWEI )?DUA-(AL00|TL00)!' => [ 'Huawei', 'Honor 7 Play' ], @@ -6435,7 +6478,7 @@ '(HW-|HUAWEI )?LUA-(L01|L02|L03|L13|L21|L22|L23|U02|U03|U22|U23)!' => [ 'Huawei', 'Y3 II' ], '(HW-|HUAWEI )?CUN-(AL00|L01|L02|L03|L21|L22|L23|L33|TL00|U29)!' => [ 'Huawei', 'Y5 II' ], '(HW-|HUAWEI )?MYA-(AL10|L02|L03|L11|L13|L22|L23|L41|TL10)!' => [ 'Huawei', 'Y5 (2017)' ], - '(HW-|HUAWEI )?AMN-(LX9)!' => [ 'Huawei', 'Y5 (2019)' ], + '(HW-|HUAWEI )?AMN-(LX2|LX9)!' => [ 'Huawei', 'Y5 (2019)' ], '(HW-|HUAWEI )?SCC-(U21)!' => [ 'Huawei', 'Y6' ], '(HW-|HUAWEI )?SCU-(U31)!' => [ 'Huawei', 'Y6C' ], '(HW-|HUAWEI )?CAM-(L01|L03|L11|L21|L23|L32|AL00|CL00|TL00|UL00)!' => [ 'Huawei', 'Y6 II' ], @@ -7614,6 +7657,7 @@ 'IVIO DE38' => [ 'Ivio', 'DE38' ], ], + 'MC401 GWL' => [ 'iWaylink', 'MC401' ], 'iwoo i900' => [ 'iwoo', 'i900' ], '(JIAYU|JY)!!' => [ @@ -8201,6 +8245,7 @@ 'W880' => [ 'K-Touch', 'W880' ], 'Land Rover Explore' => [ 'Land Rover', 'Explore' ], + 'Land Rover Explore R' => [ 'Land Rover', 'Explore R' ], '(Lanix )?(Ilium|llium)!!' => [ 'ILIUM L400' => [ 'Lanix', 'Ilium L400' ], @@ -8568,6 +8613,9 @@ 'Lenovo TB-7304F' => [ 'Lenovo', 'Tab 7 Essential', DeviceType::TABLET ], 'Lenovo TB-7305F' => [ 'Lenovo', 'Tab M7', DeviceType::TABLET ], + 'Lenovo TB-8304F1' => [ 'Lenovo', 'Tab 8', DeviceType::TABLET ], + 'Lenovo TB-8505FS' => [ 'Lenovo', 'Smart Tab M8', DeviceType::TABLET ], + 'Lenovo TB-8704X' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], 'Lenovo TB-8705F' => [ 'Lenovo', 'Tab M8', DeviceType::TABLET ], 'Lenovo TB-J606F' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], 'Lenovo TB-J606L' => [ 'Lenovo', 'Tab P11', DeviceType::TABLET ], @@ -8781,6 +8829,7 @@ 'Lenovo K50t5' => [ 'Lenovo', 'K3 Note' ], 'Lenovo K520' => [ 'Lenovo', 'S5' ], 'Lenovo K6' => [ 'Lenovo', 'K6' ], + 'Lenovo L78071' => [ 'Lenovo', 'Z5S' ], 'Lenovo L79031' => [ 'Lenovo', 'Legion Pro' ], 'Lenovo N300' => [ 'Lenovo', 'N300', DeviceType::DESKTOP ], 'Lenovo N308' => [ 'Lenovo', 'N308', DeviceType::DESKTOP ], @@ -9574,6 +9623,7 @@ 'LM-G900!' => [ 'LG', 'Velvet' ], 'LM-G910!' => [ 'LG', 'Velvet 4G' ], 'LM-K200!' => [ 'LG', 'K22' ], + 'LM-K410!' => [ 'LG', 'K41S' ], 'LM-K420!' => [ 'LG', 'K42' ], 'LM-K520!' => [ 'LG', 'K52' ], 'LM-Q610!' => [ 'LG', 'Q7' ], @@ -9600,6 +9650,7 @@ 'LM-X410!' => [ 'LG', 'X4' ], 'LM-X415!' => [ 'LG', 'X4+' ], 'LM-X420!' => [ 'LG', 'X4 (2019)' ], + 'LM-X430!' => [ 'LG', 'K40S' ], 'LM-X510!' => [ 'LG', 'X5' ], 'LM-X525!' => [ 'LG', 'K12 Prime' ], 'LM-X540!' => [ 'LG', 'K50S' ], @@ -10082,11 +10133,13 @@ 'LIFETAB E1042X' => [ 'Medion', 'Lifetab E1042X', DeviceType::TABLET ], 'LIFETAB E1070X' => [ 'Medion', 'Lifetab E1070X', DeviceType::TABLET ], 'LIFETAB E1071X' => [ 'Medion', 'Lifetab E1071X', DeviceType::TABLET ], + 'LIFETAB E1080X' => [ 'Medion', 'Lifetab E1080X', DeviceType::TABLET ], 'LIFETAB E1091X' => [ 'Medion', 'Lifetab E1091X', DeviceType::TABLET ], 'LIFETAB P733X' => [ 'Medion', 'Lifetab P733X', DeviceType::TABLET ], 'LIFETAB P831X' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], 'LIFETAB P831X.2' => [ 'Medion', 'Lifetab P831X', DeviceType::TABLET ], 'LIFETAB P891X' => [ 'Medion', 'Lifetab P891X', DeviceType::TABLET ], + 'LIFETAB P970X' => [ 'Medion', 'Lifetab P970X', DeviceType::TABLET ], 'LIFETAB P1034X' => [ 'Medion', 'Lifetab P1034X', DeviceType::TABLET ], 'LIFETAB P1071X' => [ 'Medion', 'Lifetab P1071X', DeviceType::TABLET ], 'LIFETAB S7316' => [ 'Medion', 'Lifetab S7316', DeviceType::TABLET ], @@ -10854,6 +10907,7 @@ ], 'motorola one' => [ 'Motorola', 'One' ], + 'motorola one 5G ace' => [ 'Motorola', 'One Ace' ], 'motorola one action' => [ 'Motorola', 'One Action' ], 'motorola one fusion+' => [ 'Motorola', 'One Fusion+' ], 'motorola one hyper' => [ 'Motorola', 'One Hyper' ], @@ -11560,8 +11614,9 @@ 'ONEPLUS A6003' => [ 'OnePlus', '6' ], 'ONEPLUS A6010' => [ 'OnePlus', '6T' ], 'ONEPLUS A6013' => [ 'OnePlus', '6T' ], - 'HD190[013]!' => [ 'OnePlus', '7T' ], + 'HD190[0135]!' => [ 'OnePlus', '7T' ], 'HD191[037]!' => [ 'OnePlus', '7T Pro' ], + 'OnePlus 7T Pro' => [ 'OnePlus', '7T Pro' ], 'GM190[0135]!' => [ 'OnePlus', '7' ], 'GM191[01357]!' => [ 'OnePlus', '7 Pro' ], 'IN201[01357]!' => [ 'OnePlus', '8' ], @@ -11704,9 +11759,12 @@ 'CPH1911' => [ 'Oppo', 'F11' ], 'CPH1917' => [ 'Oppo', 'Reno' ], 'CPH1919' => [ 'Oppo', 'Reno 10x Zoom' ], + 'CPH1920' => [ 'Oppo', 'A5s' ], 'CPH1931' => [ 'Oppo', 'A5 (2020)' ], + 'CPH1933' => [ 'Oppo', 'A5 (2020)' ], 'CPH1951' => [ 'Oppo', 'Reno 2Z' ], 'CPH1969' => [ 'Oppo', 'F11 Pro' ], + 'CPH1989' => [ 'Oppo', 'Reno 2 F' ], 'CPH2005' => [ 'Oppo', 'Find X2 Lite' ], 'CPH2009' => [ 'Oppo', 'Find X2 Neo' ], 'CPH2021' => [ 'Oppo', 'A91' ], @@ -11719,6 +11777,7 @@ 'CPH2083' => [ 'Oppo', 'A12' ], 'CPH2089' => [ 'Oppo', 'Reno 4 Pro' ], 'CPH2091' => [ 'Oppo', 'Reno 4' ], + 'CPH2125' => [ 'Oppo', 'Reno 4 Lite' ], 'CPH2127' => [ 'Oppo', 'A53' ], 'CPH2135' => [ 'Oppo', 'A53s' ], 'CPH2145' => [ 'Oppo', 'Find X3 Lite' ], @@ -11962,6 +12021,7 @@ 'Bucare Y330-U05' => [ 'Orinoquia', 'Bucare Y330' ], 'Kavak Y625-U03' => [ 'Orinoquia', 'Kavak Y625' ], + 'C15 Pro' => [ 'Oukitel', 'C15 Pro' ], 'C21 Pro' => [ 'Oukitel', 'C21 Pro' ], 'K10000 Pro' => [ 'Oukitel', 'K10000 Pro' ], @@ -11991,6 +12051,7 @@ 'Vertis Famy' => [ 'Overmax', 'Vertis Famy' ], ], + 'OV10274G' => [ 'Overmax', '1027' ], 'Arctic450' => [ 'Oysters', 'Arctic 450' ], 'Oysters Pacific 800' => [ 'Oysters', 'Pacific 800' ], 'Oysters T3 3G' => [ 'Oysters', 'T3' ], @@ -13101,6 +13162,9 @@ ], 'RoverPad 3W T71D' => [ 'RoverPad', '3W T71D', DeviceType::TABLET ], + 'RG650' => [ 'RugGear', 'RG650' ], + 'RG655' => [ 'RugGear', 'RG655' ], + 'RG725' => [ 'RugGear', 'RG725' ], 'Snexian!!' => [ 'Snexian Mi320' => [ 'S Nexian', 'Chronos Mi320' ], @@ -13624,6 +13688,7 @@ 'SM-F707!' => [ 'Samsung', 'Galaxy Z Flip 5G' ], 'SM-F711!' => [ 'Samsung', 'Galaxy Z Flip3 5G' ], 'SM-F900!' => [ 'Samsung', 'Galaxy Fold' ], + 'SM-F907!' => [ 'Samsung', 'Galaxy Fold 5G' ], 'SM-F910!' => [ 'Samsung', 'Galaxy Z Fold2' ], 'SM-F916!' => [ 'Samsung', 'Galaxy Z Fold2 5G' ], 'SM-F926!' => [ 'Samsung', 'Galaxy Z Fold3 5G' ], @@ -13780,6 +13845,7 @@ ], 'SM-M[0-9]{3,4}!!' => [ + 'SM-M015!' => [ 'Samsung', 'Galaxy M01' ], 'SM-M105!' => [ 'Samsung', 'Galaxy M10' ], 'SM-M115!' => [ 'Samsung', 'Galaxy M11' ], 'SM-M127!' => [ 'Samsung', 'Galaxy M12' ], @@ -14212,6 +14278,8 @@ 'EB-L76G-B' => [ 'Sharp', 'EB-L76G-B', DeviceType::TABLET ], 'RW107' => [ 'Sharp', 'RW-T107', DeviceType::TABLET ], + 'FS8032' => [ 'Sharp', 'AQUOS S3 FS8032' ], + 'SBM[0-9]0[0-9]SH!!' => [ 'SBM003SH' => [ 'Sharp', 'GALAPAGOS 003SH', 'carrier' => 'Softbank' ], 'SBM005SH' => [ 'Sharp', 'GALAPAGOS 005SH', 'carrier' => 'Softbank' ], @@ -14262,6 +14330,7 @@ 'SH-M02' => [ 'Sharp', 'AQUOS SH-M02' ], 'SH-M02-EVA20' => [ 'Sharp', 'AQUOS SH-M02' ], 'SH-M03' => [ 'Sharp', 'AQUOS mini SH-M03' ], + 'SH-M05' => [ 'Sharp', 'AQUOS sense lite SH-M05' ], 'SH-M07' => [ 'Sharp', 'AQUOS sense plus SH-M07' ], 'SH-RM02' => [ 'Sharp', 'AQUOS SH-RM02' ], 'SH-Z01' => [ 'Sharp', 'AQUOS C10 SH-Z01' ], @@ -14411,6 +14480,7 @@ 'SPX-6' => [ 'Simvalley', 'SPX-6' ], 'SPX-12' => [ 'Simvalley', 'SPX-12' ], 'X720' => [ 'Simmtronics', 'XPAD X-720', DeviceType::TABLET ], + 'FINNEY U1' => [ 'Sirin Labs', 'Finney U1' ], 'HYPER X BLADE' => [ 'SKK Mobile', 'Hyper X Blade' ], 'Elite 5.5L+' => [ 'Sky Devices', 'Elite 5.5L+' ], @@ -15371,6 +15441,7 @@ 'T671H' => [ 'TCL', '20 SE' ], 'T774H' => [ 'TCL', '20L' ], 'T775H' => [ 'TCL', '20L+' ], + 'T790Y' => [ 'TCL', '10' ], 'TCL!!' => [ 'TCL-309T' => [ 'TCL', '309T' ], @@ -15674,6 +15745,7 @@ 'G18d 3G四核(D3A2)' => [ 'Teclast', 'G18d', DeviceType::TABLET ], 'G18d mini(FV2C)' => [ 'Teclast', 'G18d mini', DeviceType::TABLET ], 'M40 EEA' => [ 'Teclast', 'M40', DeviceType::TABLET ], + 'M40(N9H3)' => [ 'Teclast', 'M40', DeviceType::TABLET ], 'P10HD??(E6NA)' => [ 'Teclast', 'P10HD', DeviceType::TABLET ], 'P11HD' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], 'P11HD四核(G9X6)' => [ 'Teclast', 'P11HD', DeviceType::TABLET ], @@ -15853,6 +15925,7 @@ 'Telpad QS' => [ 'Telpad', 'Quad S', DeviceType::TABLET ], 'T3696' => [ 'Telsda', 'T3696' ], 'Tensent S9000' => [ 'Tensent', 'S9000' ], + 'Teracube 2e' => [ 'Teracube', '2e' ], 'Hudl HT7S3' => [ 'Tesco', 'Hudl', DeviceType::TABLET ], 'Hudl 2' => [ 'Tesco', 'Hudl 2', DeviceType::TABLET ], 'TM-3200R' => [ 'teXet', 'TM-3200R' ], @@ -16200,7 +16273,10 @@ ], 'A6S' => [ 'TWM', 'Amazing A6S' ], + 'Armor 2' => [ 'Ulefone', 'Armor 2' ], 'Armor 3W' => [ 'Ulefone', 'Armor 3W' ], + 'Armor 3WT' => [ 'Ulefone', 'Armor 3WT' ], + 'Armor 6E' => [ 'Ulefone', 'Armor 6E' ], 'Armor 7' => [ 'Ulefone', 'Armor 7' ], 'Armor 8' => [ 'Ulefone', 'Armor 8' ], 'Armor 9' => [ 'Ulefone', 'Armor 9' ], @@ -16215,6 +16291,8 @@ 'Power Armor 13' => [ 'Ulefone', 'Power Armor 13' ], 'Be Touch 2' => [ 'Ulefone', 'Be Touch 2' ], 'Ulefone Be Touch2' => [ 'Ulefone', 'Be Touch 2' ], + 'Note 7P' => [ 'Ulefone', 'Note 7P' ], + 'Note 8P' => [ 'Ulefone', 'Note 8P' ], 'Note 9P' => [ 'Ulefone', 'Note 9P' ], 'TB100' => [ 'Unitech', 'TB100', DeviceType::TABLET ], 'M70014' => [ 'United Star Technology', 'M70014', DeviceType::TABLET ], @@ -16225,6 +16303,7 @@ 'UMI-R1' => [ 'UMI', 'R1' ], 'UMI-R1(TD)' => [ 'UMI', 'R1' ], 'UMI S1' => [ 'UMI', 'S1' ], + 'UMIDIGI X' => [ 'UMI', 'X' ], 'UMI X1' => [ 'UMI', 'X1' ], 'UMI X1S' => [ 'UMI', 'X1s' ], 'UMI X1-PRO' => [ 'UMI', 'X1' ], @@ -16247,11 +16326,15 @@ 'UMI ZERO' => [ 'UMI', 'Zero' ], ], + 'A9 Pro' => [ 'UMI', 'A9 Pro' ], 'A11 Pro Max' => [ 'UMI', 'A11 Pro Max' ], + 'BISON' => [ 'UMI', 'Bison' ], + 'BISON Pro' => [ 'UMI', 'Bison Pro' ], 'BISON GT' => [ 'UMI', 'Bison GT' ], 'eMAX mini' => [ 'UMI', 'eMax mini' ], 'Plus E' => [ 'UMI', 'Plus E' ], 'Jelly2' => [ 'Unihertz', 'Jelly 2' ], + 'Titan pocket' => [ 'Unihertz', 'Titan Pocket' ], 'U1203' => [ 'Uniscope', 'U1203' ], 'Unusual!!' => [ @@ -16412,6 +16495,7 @@ 'Venus V3 5580' => [ 'Vestel', 'Venus V3 5580' ], 'VSP250g' => [ 'Vestel', 'Venus V5' ], 'VSP250s' => [ 'Vestel', 'Venus V5' ], + 'Venus Z20' => [ 'Vestel', 'Venus Z20' ], 'VT6078' => [ 'VIA', 'ALTA DS', DeviceType::SIGNAGE ], 'victorys s8' => [ 'Victory\'s', 'S8' ], @@ -16593,7 +16677,9 @@ 'vivo 1611' => [ 'Vivo', 'V5 Plus' ], 'vivo 1718' => [ 'Vivo', 'V7' ], 'vivo 1716' => [ 'Vivo', 'V7 Plus' ], + 'vivo 1804' => [ 'Vivo', 'V11 Pro' ], 'vivo 1816' => [ 'Vivo', 'Y91' ], + 'vivo 1818' => [ 'Vivo', 'V15 Pro' ], 'vivo 1902' => [ 'Vivo', 'Y17' ], 'vivo X1' => [ 'Vivo', 'X1' ], 'vivo X1S' => [ 'Vivo', 'X1S' ], @@ -16766,7 +16852,11 @@ 'V1916A' => [ 'Vivo', 'iQOO Pro' ], 'V2023' => [ 'Vivo', 'V20 SE' ], + 'V2028' => [ 'Vivo', 'Y11s' ], + 'V2041' => [ 'Vivo', 'Y72' ], 'V2056A' => [ 'Vivo', 'X60 Pro+' ], + 'V2109' => [ 'Vivo', 'Y33s' ], + 'V2141A' => [ 'Vivo', 'iQOO 8 Pro' ], 'VTAB1008' => [ 'Vizio', 'VTAB1008', DeviceType::TABLET ], 'VTAB3010' => [ 'Vizio', 'VTAB3010', DeviceType::TABLET ], @@ -17029,15 +17119,20 @@ 'FEVER' => [ 'Wiko', 'Fever' ], 'GETAWAY' => [ 'Wiko', 'Getaway' ], 'GOA' => [ 'Wiko', 'Goa' ], + 'HARRY' => [ 'Wiko', 'Harry' ], + 'W-V600' => [ 'Wiko', 'Harry 2' ], 'HIGHWAY' => [ 'Wiko', 'Highway' ], 'HIGHWAY PURE' => [ 'Wiko', 'Highway Pure' ], 'HIGHWAY SIGNS' => [ 'Wiko', 'Highway Signs' ], 'IGGY' => [ 'Wiko', 'Iggy' ], 'JIMMY' => [ 'Wiko', 'Jimmy' ], + 'W K300' => [ 'Wiko', 'Jerry 3' ], 'KITE' => [ 'Wiko', 'Kite' ], 'LENNY' => [ 'Wiko', 'Lenny' ], 'LENNY2' => [ 'Wiko', 'Lenny 2' ], 'LENNY3' => [ 'Wiko', 'Lenny 3' ], + 'Lenny4' => [ 'Wiko', 'Lenny 4' ], + 'W K400' => [ 'Wiko', 'Lenny 5' ], 'OZZY' => [ 'Wiko', 'Ozzy' ], 'PULP' => [ 'Wiko', 'Pulp' ], 'PULP 4G' => [ 'Wiko', 'Pulp' ], @@ -17054,18 +17149,28 @@ 'SUBLIM' => [ 'Wiko', 'Sublim' ], 'SUNSET' => [ 'Wiko', 'Sunset' ], 'SUNSET2' => [ 'Wiko', 'Sunset 2' ], + 'U FEEL LITE' => [ 'Wiko', 'U Feel Lite' ], + 'U FEEL PRIME' => [ 'Wiko', 'U Feel Prime' ], + 'U PULSE LITE' => [ 'Wiko', 'U Pulse Lite' ], + 'View' => [ 'Wiko', 'View' ], + 'View XL' => [ 'Wiko', 'View XL' ], 'W P200' => [ 'Wiko', 'View Max' ], + 'W C800' => [ 'Wiko', 'View2' ], 'View2 Go' => [ 'Wiko', 'View2 Go' ], 'W C860' => [ 'Wiko', 'View2 Pro' ], + 'View2 Plus' => [ 'Wiko', 'View2 Plus' ], 'W-P311-EEA' => [ 'Wiko', 'View3' ], + 'W-V800-EEA' => [ 'Wiko', 'View3 Lite' ], 'W-V830-EEA' => [ 'Wiko', 'View4' ], 'W-V730-EEA' => [ 'Wiko', 'View4 Lite' ], 'WAX' => [ 'Wiko', 'Wax' ], + 'WIM Lite' => [ 'Wiko', 'Wim Lite' ], 'Wileyfox Spark' => [ 'Wileyfox', 'Spark' ], 'Wileyfox Spark +' => [ 'Wileyfox', 'Spark +' ], 'Wileyfox Spark X' => [ 'Wileyfox', 'Spark X' ], 'Wileyfox Storm' => [ 'Wileyfox', 'Storm' ], 'Wileyfox Swift' => [ 'Wileyfox', 'Swift' ], + 'Swift 2' => [ 'Wileyfox', 'Swift 2' ], 'Swift 2 Plus' => [ 'Wileyfox', 'Swift 2 Plus' ], 'Swift 2 X' => [ 'Wileyfox', 'Swift 2 X' ], 'N5PRO2jingying' => [ 'Window', 'N5 Pro 2', DeviceType::MEDIA ], @@ -17160,6 +17265,7 @@ 'WM8850-mid' => [ 'WonderMedia', 'WM8850', DeviceType::TABLET ], 'PAD1001' => [ 'Wortmann', 'TERRA MOBILE PAD 1001', DeviceType::TABLET ], 'TERRA PAD 1004' => [ 'Wortmann', 'TERRA PAD 1004', DeviceType::TABLET ], + 'TERRA PAD 1005' => [ 'Wortmann', 'TERRA PAD 1005', DeviceType::TABLET ], 'Woxter!!' => [ 'Woxter android box 500' => [ 'Woxter', 'Android TV 500', DeviceType::TELEVISION ], @@ -17399,6 +17505,7 @@ 'M2002J9G' => [ 'Xiaomi', 'Mi 10 Lite' ], 'M2003J15SC' => [ 'Xiaomi', 'Redmi Note 9' ], 'M2004J19C' => [ 'Xiaomi', 'Redmi 9' ], + 'M2004J7BC' => [ 'Xiaomi', 'Redmi 10X Pro' ], 'M2006C3LG' => [ 'Xiaomi', 'Redmi 9A' ], 'M2006C3MG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2006C3MNG' => [ 'Xiaomi', 'Redmi 9C' ], @@ -17413,6 +17520,7 @@ 'M2011K2C' => [ 'Xiaomi', 'Mi 11' ], 'M2011K2G' => [ 'Xiaomi', 'Mi 11' ], 'M2012K11AG' => [ 'Xiaomi', 'Poco F3' ], + 'M2012K10C' => [ 'Xiaomi', 'Redmi K40 Gaming' ], 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], 'M2101K6P' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], @@ -17437,13 +17545,19 @@ 'POCOPHONE F1' => [ 'Xiaomi', 'Pocophone F1' ], 'POCO F1' => [ 'Xiaomi', 'Pocophone F1' ], 'POCO F2 Pro' => [ 'Xiaomi', 'Poco F2 Pro' ], + 'POCO X2' => [ 'Xiaomi', 'Poco X2' ], + 'POCO X3 NFC' => [ 'Xiaomi', 'Poco X3' ], + 'POCO X3 Pro' => [ 'Xiaomi', 'Poco X3 Pro' ], + 'SKR-H0' => [ 'Xiaomi', 'Black Shark' ], + 'DLT-H0' => [ 'Xiaomi', 'Black Shark 2 Pro' ], 'SHARK PRS-H0' => [ 'Xiaomi', 'Black Shark 4' ], 'Xiaomi MDT2!' => [ 'Xiaomi', 'Mi 5x' ], 'Xiaomi MCT1!' => [ 'Xiaomi', 'Mi 6' ], 'Xiaomi MAT136!' => [ 'Xiaomi', 'Redmi 4X' ], 'Xiaomi MBT6A5!' => [ 'Xiaomi', 'Redmi Note 4X' ], + 'Xiaomi 11 Lite 5G NE' => [ 'Xiaomi', '11 Lite' ], 'Xiaomi 11T Pro' => [ 'Xiaomi', '11T Pro' ], 'aqua' => [ 'Xiaomi', 'Mi 4s' ], @@ -18051,6 +18165,7 @@ 'NX569H' => [ 'ZTE', 'Nubia Z17 Mini' ], 'NX513J' => [ 'ZTE', 'Nubia My Prague' ], 'NX601J' => [ 'ZTE', 'Nubia X6' ], + 'NX659J' => [ 'ZTE', 'Nubia Red Magic' ], 'NX669J' => [ 'ZTE', 'Nubia Red Magic 6' ], ], @@ -19364,12 +19479,14 @@ 'Z4 mini' => [ 'Q-Mobile', 'Noir Quatro Z4 mini' ], + 'RMX1911' => [ 'Realme', '5' ], 'RMX1931' => [ 'Realme', 'X2 Pro' ], 'RMX1971' => [ 'Realme', '5 Pro' ], 'RMX1993' => [ 'Realme', 'X2' ], 'RMX2001' => [ 'Realme', '6' ], 'RMX2002' => [ 'Realme', '6i' ], 'RMX2020' => [ 'Realme', 'C3' ], + 'RMX2030' => [ 'Realme', '5i' ], 'RMX2063' => [ 'Realme', '6 Pro' ], 'RMX2075' => [ 'Realme', 'X50 Pro' ], 'RMX2086' => [ 'Realme', 'X3 SuperZoom' ], @@ -19381,8 +19498,10 @@ 'RMX2202' => [ 'Realme', 'GT' ], 'RMX3081' => [ 'Realme', '8 Pro' ], 'RMX3085' => [ 'Realme', '8' ], + 'RMX3201' => [ 'Realme', 'C21' ], 'RMX3241' => [ 'Realme', '8 5G' ], 'RMX3242' => [ 'Realme', 'Narzo 30' ], + 'RMX3263' => [ 'Realme', 'C21Y' ], 'RMX3301' => [ 'Realme', 'GT 2 Pro' ], 'RMX3311' => [ 'Realme', 'GT 2' ], 'RMX3363' => [ 'Realme', 'GT Master' ], @@ -19590,4 +19709,4 @@ 'VFD 1300' => [ 'Vodafone', 'Tab N8', DeviceType::TABLET ], 'VFD 1400' => [ 'Vodafone', 'Tab Prime 7', DeviceType::TABLET ], 'VFD1400' => [ 'Vodafone', 'Tab Prime 7', DeviceType::TABLET ], -]; +]; \ No newline at end of file From 3f1d72a6c995f4ecfa47daca1cb74f7e12fd5fbc Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 13 Apr 2022 10:13:14 +0200 Subject: [PATCH 530/540] Support older versions of the reduced Chrome UA string --- src/Analyser/Header/Useragent/Browser.php | 2 +- src/Analyser/Header/Useragent/Os.php | 6 +++--- tests/data/mobile/browser-chrome.yaml | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Analyser/Header/Useragent/Browser.php b/src/Analyser/Header/Useragent/Browser.php index 5cc73c275..9c9ace956 100644 --- a/src/Analyser/Header/Useragent/Browser.php +++ b/src/Analyser/Header/Useragent/Browser.php @@ -142,7 +142,7 @@ private function detectChrome($ua) $version = $match[1]; } - if (preg_match('/Chrome\/(95|96|97|98|99|[1-9][0-9][0-9])\.0\.0\.0 /u', $ua)) { + if (preg_match('/Chrome\/([789][0-9]|[1-9][0-9][0-9])\.0\.0\.0 /u', $ua)) { $reduced = true; } diff --git a/src/Analyser/Header/Useragent/Os.php b/src/Analyser/Header/Useragent/Os.php index 26e9495a8..2018d1b07 100644 --- a/src/Analyser/Header/Useragent/Os.php +++ b/src/Analyser/Header/Useragent/Os.php @@ -260,7 +260,7 @@ private function detectAndroid($ua) if (preg_match('/;\+? ?(?:\*\*)?([^;]*[^;\s]);?\s+(?:BUILD|Build|build)/u', $ua, $match)) { $candidates[] = $match[1]; } - } elseif (preg_match('/\(Linux; Android [0-9\.]+; ([^\/]+)\) AppleWebKit/u', $ua, $match)) { + } elseif (preg_match('/\(Linux; Android [0-9\.]+; ([^\/]+)(; wv)?\) AppleWebKit/u', $ua, $match)) { /* New style minimal Android useragent string */ $candidates[] = $match[1]; @@ -307,9 +307,9 @@ private function detectAndroid($ua) continue; } - /* Ignore "K" as a device, as it is a dummy value used by Chrome UA reduction */ + /* Ignore "K" or "Unspecified Device" as a device, as it is a dummy value used by Chrome UA reduction */ - if ($candidates[$c] == 'K') { + if ($candidates[$c] == 'K' || $candidates[$c] == 'Unspecified Device') { unset($candidates[$c]); continue; } diff --git a/tests/data/mobile/browser-chrome.yaml b/tests/data/mobile/browser-chrome.yaml index ac78e8659..45ae90165 100644 --- a/tests/data/mobile/browser-chrome.yaml +++ b/tests/data/mobile/browser-chrome.yaml @@ -302,3 +302,7 @@ headers: 'User-Agent: Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Mobile Safari/537.36' readable: 'Chrome 97 on Android 10' result: { browser: { name: Chrome, version: '97', type: browser }, engine: { name: Blink }, os: { name: Android, version: '10' }, device: { type: mobile, subtype: smart } } +- + headers: 'User-Agent: Mozilla/5.0 (Linux; Android 9; Unspecified Device) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.0.0 Mobile Safari/537.36' + readable: 'Chrome 90 on Android 9' + result: { browser: { name: Chrome, version: '90', type: browser }, engine: { name: Blink }, os: { name: Android, version: '9' }, device: { type: mobile, subtype: smart } } From 1044880bc792dbce5948fbff22ae731c43c280d9 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Tue, 19 Apr 2022 22:14:54 +0200 Subject: [PATCH 531/540] Android model update --- data/indices/models-android.php | 878 +++++++++++++++++--------------- data/models-android.php | 61 ++- 2 files changed, 519 insertions(+), 420 deletions(-) diff --git a/data/indices/models-android.php b/data/indices/models-android.php index f74236480..0b6478c26 100644 --- a/data/indices/models-android.php +++ b/data/indices/models-android.php @@ -138,9 +138,10 @@ ), '@22' => array ( - 0 => '2201122G', - 1 => '2201123G', - 2 => '2201116PG', + 0 => '2201117TY', + 1 => '2201122G', + 2 => '2201123G', + 3 => '2201116PG', ), '@2P' => array ( @@ -364,14 +365,15 @@ 1 => '8030[BY]!', 2 => 8063, 3 => 8082, - 4 => '8094[X]!', - 5 => 8022, - 6 => '801ES', - 7 => '80-1', - 8 => '801a', - 9 => '801s', - 10 => '802w', - 11 => '800P31C', + 4 => '8082 EEA', + 5 => '8094[X]!', + 6 => 8022, + 7 => '801ES', + 8 => '80-1', + 9 => '801a', + 10 => '801s', + 11 => '802w', + 12 => '800P31C', ), '@81' => array ( @@ -993,18 +995,20 @@ 33 => 'Armor 2', 34 => 'Armor 3W', 35 => 'Armor 3WT', - 36 => 'Armor 6E', - 37 => 'Armor 7', - 38 => 'Armor 8', - 39 => 'Armor 9', - 40 => 'Armor 9E', - 41 => 'Armor 10 5G', - 42 => 'Armor 11 5G', - 43 => 'Armor 11T 5G', - 44 => 'Armor X5', - 45 => 'Armor X7', - 46 => 'Armor X7 Pro', - 47 => 'Armor X8', + 36 => 'Armor 5S', + 37 => 'Armor 6E', + 38 => 'Armor 7', + 39 => 'Armor 7E', + 40 => 'Armor 8', + 41 => 'Armor 9', + 42 => 'Armor 9E', + 43 => 'Armor 10 5G', + 44 => 'Armor 11 5G', + 45 => 'Armor 11T 5G', + 46 => 'Armor X5', + 47 => 'Armor X7', + 48 => 'Armor X7 Pro', + 49 => 'Armor X8', ), '@AS' => array ( @@ -1051,7 +1055,7 @@ 14 => 'AT7E', 15 => 'ATP515CKIT', 16 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 17 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 17 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 18 => 'aTab9.7 IPS', 19 => 'AT735', 20 => 'Atrix 2', @@ -1093,7 +1097,7 @@ array ( 0 => 'Aurora-II', 1 => 'AUX!!', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => '(Aura|iberry|AUXUS)!!', 4 => 'AURUS III', ), @@ -1123,6 +1127,10 @@ 1 => 'B15', 2 => 'B15Q', ), + '@B2' => + array ( + 0 => 'B2021', + ), '@B3' => array ( 0 => 'B3-A10', @@ -1135,6 +1143,10 @@ 7 => 'B3-A50FHD', 8 => 'B3000', ), + '@B5' => + array ( + 0 => 'B5532', + ), '@B9' => array ( 0 => 'B916C', @@ -1256,7 +1268,7 @@ '@BK' => array ( 0 => '(BDS|BHX|BKO)\\-!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BL' => array ( @@ -1271,7 +1283,7 @@ 8 => 'Blaze S180', 9 => 'BLADE LE 70', 10 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 13 => '(BLF-)?lephone!!', 14 => 'Blackphone 2', @@ -1297,7 +1309,7 @@ 6 => '(NOOK )?BNTV(800)!', 7 => 'BN Nook HD', 8 => 'BN NookHD+', - 9 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 9 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@BO' => array ( @@ -1400,18 +1412,20 @@ '@BV' => array ( 0 => 'BV4900Pro', - 1 => 'BV5900', - 2 => 'BV6300Pro', - 3 => 'BV6600', - 4 => 'BV8000Pro', - 5 => 'BV9100', - 6 => 'BV9500', - 7 => 'BV9500Plus', - 8 => 'BV9600E', - 9 => 'BV9600Pro', - 10 => 'BV9800Pro', - 11 => 'BV9900E', - 12 => 'BV9900Pro', + 1 => 'BV5500Plus', + 2 => 'BV5900', + 3 => 'BV6300Pro', + 4 => 'BV6600', + 5 => 'BV6900', + 6 => 'BV8000Pro', + 7 => 'BV9100', + 8 => 'BV9500', + 9 => 'BV9500Plus', + 10 => 'BV9600E', + 11 => 'BV9600Pro', + 12 => 'BV9800Pro', + 13 => 'BV9900E', + 14 => 'BV9900Pro', ), '@C1' => array ( @@ -1470,7 +1484,7 @@ 10 => 'Casper VIA!!', 11 => 'CAT!!', 12 => 'Candy TV', - 13 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 13 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 14 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 15 => '(HW-|HUAWEI )?CAZ-(AL10|TL10|TL20)!', 16 => '(HW-|HUAWEI )?CAN-(L01|L11|L12)!', @@ -1509,7 +1523,7 @@ 11 => 'Cherry w500', 12 => 'CHUWI!!', 13 => 'CHONG!!', - 14 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 14 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 15 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 16 => 'chagall', 17 => 'chiron', @@ -1584,7 +1598,7 @@ 16 => 'Connect-2G-2.0', 17 => '(Highscreen|Alpha|Bay|Boost|Cosmo|Explosion|Power|Prime|Zera)!!', 18 => 'Coquettish Red', - 19 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 19 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 20 => 'Comet', 21 => 'Corvair', 22 => 'COOLPIX S800c', @@ -1631,49 +1645,51 @@ 35 => 'CPH1917', 36 => 'CPH1919', 37 => 'CPH1920', - 38 => 'CPH1931', - 39 => 'CPH1933', - 40 => 'CPH1951', - 41 => 'CPH1969', - 42 => 'CPH1989', - 43 => 'CPH2005', - 44 => 'CPH2009', - 45 => 'CPH2021', - 46 => 'CPH2023', - 47 => 'CPH2025', - 48 => 'CPH2043', - 49 => 'CPH2065', - 50 => 'CPH2067', - 51 => 'CPH2069', - 52 => 'CPH2083', - 53 => 'CPH2089', - 54 => 'CPH2091', - 55 => 'CPH2125', - 56 => 'CPH2127', - 57 => 'CPH2135', - 58 => 'CPH2145', - 59 => 'CPH2161', - 60 => 'CPH2173', - 61 => 'CPH2185', - 62 => 'CPH2195', - 63 => 'CPH2197', - 64 => 'CPH2205', - 65 => 'CPH2207', - 66 => 'CPH2211', - 67 => 'CPH2219', - 68 => 'CPH2247', - 69 => 'CPH2251', - 70 => 'CPH2269', - 71 => 'CPH2271', - 72 => 'CPH2273', - 73 => 'CPH2305', - 74 => 'CPH2307', - 75 => 'CPH2371', - 76 => 'CPH1721', - 77 => 'CPH1611', - 78 => 'CPH1879', - 79 => 'CPH1861', - 80 => 'CPH1979', + 38 => 'CPH1923', + 39 => 'CPH1931', + 40 => 'CPH1933', + 41 => 'CPH1951', + 42 => 'CPH1969', + 43 => 'CPH1989', + 44 => 'CPH2005', + 45 => 'CPH2009', + 46 => 'CPH2021', + 47 => 'CPH2023', + 48 => 'CPH2025', + 49 => 'CPH2043', + 50 => 'CPH2065', + 51 => 'CPH2067', + 52 => 'CPH2069', + 53 => 'CPH2083', + 54 => 'CPH2089', + 55 => 'CPH2091', + 56 => 'CPH2121', + 57 => 'CPH2125', + 58 => 'CPH2127', + 59 => 'CPH2135', + 60 => 'CPH2145', + 61 => 'CPH2161', + 62 => 'CPH2173', + 63 => 'CPH2185', + 64 => 'CPH2195', + 65 => 'CPH2197', + 66 => 'CPH2205', + 67 => 'CPH2207', + 68 => 'CPH2211', + 69 => 'CPH2219', + 70 => 'CPH2247', + 71 => 'CPH2251', + 72 => 'CPH2269', + 73 => 'CPH2271', + 74 => 'CPH2273', + 75 => 'CPH2305', + 76 => 'CPH2307', + 77 => 'CPH2371', + 78 => 'CPH1721', + 79 => 'CPH1611', + 80 => 'CPH1879', + 81 => 'CPH1861', + 82 => 'CPH1979', ), '@CR' => array ( @@ -1688,8 +1704,9 @@ ), '@CS' => array ( - 0 => 'CS-1A13', - 1 => '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!', + 0 => 'CS45XA', + 1 => 'CS-1A13', + 2 => '(CSL[- ])?(Spice[- ]?)?Mi(-| )?[0-9]{3,3}!!', ), '@CT' => array ( @@ -1870,7 +1887,7 @@ 1 => 'DL8006', 2 => 'DLX', 3 => 'DLXU', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'dL1', 6 => 'DLT-H0', ), @@ -1961,6 +1978,7 @@ array ( 0 => 'Dslide!!', 1 => 'DSB-0220', + 2 => 'DSB-0230', ), '@DT' => array ( @@ -1969,7 +1987,7 @@ ), '@DU' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', ), '@DV' => @@ -2085,12 +2103,13 @@ array ( 0 => 'EBEN!!', 1 => 'EBEST!!', - 2 => 'EB2103', - 3 => 'EB-4063-X', - 4 => 'EB-A71GJ', - 5 => 'EB-W51GJ', - 6 => 'EB-WX1GJ', - 7 => 'EB-L76G-B', + 2 => 'EB2101', + 3 => 'EB2103', + 4 => 'EB-4063-X', + 5 => 'EB-A71GJ', + 6 => 'EB-W51GJ', + 7 => 'EB-WX1GJ', + 8 => 'EB-L76G-B', ), '@EC' => array ( @@ -2103,7 +2122,7 @@ array ( 0 => '(bq|Aquaris|Edison|Maxwell)!!', 1 => 'edgejr', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'edenTAB ET-701', ), '@EE' => @@ -2403,7 +2422,7 @@ '@FR' => array ( 0 => 'Freelander I20', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(MODECOM )?FreeTAB!!', ), '@FS' => @@ -2839,7 +2858,8 @@ ), '@GX' => array ( - 0 => 'GX1210V TV', + 0 => 'GX290', + 1 => 'GX1210V TV', ), '@H1' => array ( @@ -2851,11 +2871,11 @@ ), '@H3' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H6' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@H7' => array ( @@ -2886,16 +2906,17 @@ 5 => 'Hammer Blade 3', 6 => 'Hammer Energy', 7 => 'Hammer Energy 2', - 8 => 'Hammer Explorer', - 9 => 'Hammer Explorer Pro', - 10 => 'Hasee E50 S1', - 11 => 'Hasee H45 T2', - 12 => 'Hasee W50 T2', - 13 => 'Hasee-X50TS', - 14 => 'HannsComb', - 15 => 'Hannspadd', - 16 => 'Hayabusa', - 17 => 'HARRY', + 8 => 'Hammer Energy 18x9', + 9 => 'Hammer Explorer', + 10 => 'Hammer Explorer Pro', + 11 => 'Hasee E50 S1', + 12 => 'Hasee H45 T2', + 13 => 'Hasee W50 T2', + 14 => 'Hasee-X50TS', + 15 => 'HannsComb', + 16 => 'Hannspadd', + 17 => 'Hayabusa', + 18 => 'HARRY', ), '@HB' => array ( @@ -2908,9 +2929,9 @@ 0 => 'HD2', 1 => 'HD2 LEO', 2 => 'HD7 Pro', - 3 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 4 => 'HD190[0135]!', - 5 => 'HD191[037]!', + 5 => 'HD191[0137]!', ), '@HE' => array ( @@ -2946,7 +2967,7 @@ '@HL' => array ( 0 => 'HLV-T!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HM' => array ( @@ -2960,12 +2981,12 @@ ), '@HN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HO' => array ( 0 => 'HOSIN!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => 'Honor3c2G-T', 3 => 'Honor Bee', 4 => 'HOMESYNCT2WIFI', @@ -2980,7 +3001,7 @@ ), '@HR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@HS' => array ( @@ -3028,7 +3049,7 @@ 8 => 'HUAWEI GEM-703L', 9 => '(HUAWEI )?(ALP|BLA|CRR|EVR|HMA|LIO|LON|LYA|MATE|MHA|MT1|MT2|MT7|M200|NOH|NXT|SNE|TAS|Z100)!!', 10 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 11 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 12 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 13 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 14 => 'HUAWEI A168-(AL10|DL09|L09|L29)!', @@ -3058,7 +3079,7 @@ '@HW' => array ( 0 => '(HW-|HUAWEI )?(ATU|DRA|DVC|FLA|JKM|TIT|TAG||MRD|NCE|POT|TRT|SLA)!!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', 3 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 4 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', @@ -3308,7 +3329,7 @@ ), '@JA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'Jaguar3', 2 => 'Jaguar7', ), @@ -3343,7 +3364,7 @@ ), '@JM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JN' => array ( @@ -3357,7 +3378,7 @@ ), '@JS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@JT' => array ( @@ -3425,6 +3446,10 @@ 2 => 'K30-W', 3 => 'K3 Note', ), + '@K6' => + array ( + 0 => 'K6000 Pro', + ), '@K8' => array ( 0 => '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!', @@ -3485,12 +3510,13 @@ '@KI' => array ( 0 => 'Kindle Fire', - 1 => 'KINGKONG MINI2', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', - 3 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', - 4 => 'KIOTO 793', - 5 => 'KITE', - 6 => '(ZTE )?Kis!!', + 1 => 'KINGKONG 5 Pro', + 2 => 'KINGKONG MINI2', + 3 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI )?(BLL|CHC|TAG|KII)!!', + 5 => 'KIOTO 793', + 6 => 'KITE', + 7 => '(ZTE )?Kis!!', ), '@KM' => array ( @@ -3498,7 +3524,7 @@ ), '@KN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@KO' => array ( @@ -3520,9 +3546,13 @@ ), '@KS' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'KSP8000', ), + '@KT' => + array ( + 0 => 'KT-101-A', + ), '@KU' => array ( 0 => 'Kurio!!', @@ -3685,75 +3715,76 @@ 76 => '(Lenovo )?(Tab ?)?(2 ?)?[AS](7|8|10)!!', 77 => 'Lenovo TB-7304F', 78 => 'Lenovo TB-7305F', - 79 => 'Lenovo TB-8304F1', - 80 => 'Lenovo TB-8505FS', - 81 => 'Lenovo TB-8704X', - 82 => 'Lenovo TB-8705F', - 83 => 'Lenovo TB-J606F', - 84 => 'Lenovo TB-J606L', - 85 => 'Lenovo TB-J607Z', - 86 => 'Lenovo TB-J616F', - 87 => 'Lenovo TB-J706F', - 88 => 'Lenovo TB-J716F', - 89 => 'Lenovo TB-X104F', - 90 => 'Lenovo TB-X304L', - 91 => 'Lenovo TB-X306F', - 92 => 'Lenovo TB-X306X', - 93 => 'Lenovo TB-X505F', - 94 => 'Lenovo TB-X605F', - 95 => 'Lenovo TB-X605L', - 96 => 'Lenovo TB-X606F', - 97 => 'Lenovo TB-X606X', - 98 => 'Lenovo TB-X6C6F', - 99 => 'Lenovo TB-X103F', - 100 => 'Lenovo TB2-X30F', - 101 => 'Lenovo TB2-X30L', - 102 => 'Lenovo TB3-730X', - 103 => 'Lenovo TB3-710F', - 104 => 'Lenovo TB3-710I', - 105 => 'Lenovo TB-7703X', - 106 => 'Lenovo TB3-850F', - 107 => 'Lenovo TB3-850M', - 108 => 'Lenovo TB3-X70F', - 109 => 'Lenovo TB3-X70L', - 110 => 'Lenovo TB-8504F', - 111 => 'Lenovo TB-8504X', - 112 => 'Lenovo TB-8505F', - 113 => 'Lenovo TB-8703F', - 114 => 'Lenovo TB-8704F', - 115 => 'Lenovo TB-X304F', - 116 => 'Lenovo TB-X704F', - 117 => 'Lenovo TB-X704L', - 118 => 'Lenovo TB-X705F', - 119 => 'Lenovo TB-X705L', - 120 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', - 121 => 'Lenovo Pad A4', - 122 => 'Lenovo', - 123 => 'lepad 001b', - 124 => 'lepad 001n', - 125 => '(Lenovo |Lephone )?3GC101!', - 126 => '(Lenovo |Lephone )?3GW100!', - 127 => '(Lenovo |Lephone )?3GW101!', - 128 => '(Lenovo )?S1[- ]37AH0!', - 129 => '(Lenovo )?S2[- ]38A(H0|T0)!', - 130 => 'Lenovo!!', - 131 => 'LenovoTV 40S9', - 132 => 'LenovoTV 50S52', - 133 => 'Lenovo Z2', - 134 => '(BLF-)?lephone!!', - 135 => 'Le Pan Mini', - 136 => 'Le Pan TC802A', - 137 => 'Le Pan TC1010', - 138 => 'Le Pan TC1020', - 139 => 'LePanII', - 140 => 'Le Pan S', - 141 => 'LE2101', - 142 => 'LE211[0135]!', - 143 => 'LE212[01357]!', - 144 => 'LENNY', - 145 => 'LENNY2', - 146 => 'LENNY3', - 147 => 'Lenny4', + 79 => 'Lenovo TB-7305X', + 80 => 'Lenovo TB-8304F1', + 81 => 'Lenovo TB-8505FS', + 82 => 'Lenovo TB-8704X', + 83 => 'Lenovo TB-8705F', + 84 => 'Lenovo TB-J606F', + 85 => 'Lenovo TB-J606L', + 86 => 'Lenovo TB-J607Z', + 87 => 'Lenovo TB-J616F', + 88 => 'Lenovo TB-J706F', + 89 => 'Lenovo TB-J716F', + 90 => 'Lenovo TB-X104F', + 91 => 'Lenovo TB-X304L', + 92 => 'Lenovo TB-X306F', + 93 => 'Lenovo TB-X306X', + 94 => 'Lenovo TB-X505F', + 95 => 'Lenovo TB-X605F', + 96 => 'Lenovo TB-X605L', + 97 => 'Lenovo TB-X606F', + 98 => 'Lenovo TB-X606X', + 99 => 'Lenovo TB-X6C6F', + 100 => 'Lenovo TB-X103F', + 101 => 'Lenovo TB2-X30F', + 102 => 'Lenovo TB2-X30L', + 103 => 'Lenovo TB3-730X', + 104 => 'Lenovo TB3-710F', + 105 => 'Lenovo TB3-710I', + 106 => 'Lenovo TB-7703X', + 107 => 'Lenovo TB3-850F', + 108 => 'Lenovo TB3-850M', + 109 => 'Lenovo TB3-X70F', + 110 => 'Lenovo TB3-X70L', + 111 => 'Lenovo TB-8504F', + 112 => 'Lenovo TB-8504X', + 113 => 'Lenovo TB-8505F', + 114 => 'Lenovo TB-8703F', + 115 => 'Lenovo TB-8704F', + 116 => 'Lenovo TB-X304F', + 117 => 'Lenovo TB-X704F', + 118 => 'Lenovo TB-X704L', + 119 => 'Lenovo TB-X705F', + 120 => 'Lenovo TB-X705L', + 121 => '(Lenovo ?)?(IdeaTab ?)?[KSV][0-9]{4,4}!!', + 122 => 'Lenovo Pad A4', + 123 => 'Lenovo', + 124 => 'lepad 001b', + 125 => 'lepad 001n', + 126 => '(Lenovo |Lephone )?3GC101!', + 127 => '(Lenovo |Lephone )?3GW100!', + 128 => '(Lenovo |Lephone )?3GW101!', + 129 => '(Lenovo )?S1[- ]37AH0!', + 130 => '(Lenovo )?S2[- ]38A(H0|T0)!', + 131 => 'Lenovo!!', + 132 => 'LenovoTV 40S9', + 133 => 'LenovoTV 50S52', + 134 => 'Lenovo Z2', + 135 => '(BLF-)?lephone!!', + 136 => 'Le Pan Mini', + 137 => 'Le Pan TC802A', + 138 => 'Le Pan TC1010', + 139 => 'Le Pan TC1020', + 140 => 'LePanII', + 141 => 'Le Pan S', + 142 => 'LE2101', + 143 => 'LE211[0135]!', + 144 => 'LE212[01357]!', + 145 => 'LENNY', + 146 => 'LENNY2', + 147 => 'LENNY3', + 148 => 'Lenny4', ), '@LG' => array ( @@ -3844,7 +3875,7 @@ ), '@LL' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(Lanix )?(Ilium|llium)!!', ), '@LM' => @@ -3860,37 +3891,39 @@ 8 => 'LM-K200!', 9 => 'LM-K410!', 10 => 'LM-K420!', - 11 => 'LM-K520!', - 12 => 'LM-Q610!', - 13 => 'LM-Q617!', - 14 => 'LM-Q630!', - 15 => 'LM-Q710!', - 16 => 'LM-Q720!', - 17 => 'LM-Q725!', - 18 => 'LM-Q815!', - 19 => 'LM-Q850!', - 20 => 'LM-Q910!', - 21 => 'LM-Q925!', - 22 => 'LM-V350!', - 23 => 'LM-V40[59]!', - 24 => 'LM-V450!', - 25 => 'LM-V500!', - 26 => 'LM-V510!', - 27 => 'LM-V600!', - 28 => 'LM-X120!', - 29 => 'LM-X210!', - 30 => 'LM-X212!', - 31 => 'LM-X220!', - 32 => 'LM-X320!', - 33 => 'LM-X410!', - 34 => 'LM-X415!', - 35 => 'LM-X420!', - 36 => 'LM-X430!', - 37 => 'LM-X510!', - 38 => 'LM-X525!', - 39 => 'LM-X540!', - 40 => 'LM-X625!', - 41 => 'LM-Y110!', + 11 => 'LM-K510!', + 12 => 'LM-K520!', + 13 => 'LM-Q610!', + 14 => 'LM-Q617!', + 15 => 'LM-Q630!', + 16 => 'LM-Q710!', + 17 => 'LM-Q720!', + 18 => 'LM-Q725!', + 19 => 'LM-Q815!', + 20 => 'LM-Q850!', + 21 => 'LM-Q910!', + 22 => 'LM-Q925!', + 23 => 'LM-V350!', + 24 => 'LM-V40[59]!', + 25 => 'LM-V450!', + 26 => 'LM-V500!', + 27 => 'LM-V510!', + 28 => 'LM-V600!', + 29 => 'LM-X120!', + 30 => 'LM-X210!', + 31 => 'LM-X212!', + 32 => 'LM-X220!', + 33 => 'LM-X320!', + 34 => 'LM-X410!', + 35 => 'LM-X415!', + 36 => 'LM-X420!', + 37 => 'LM-X430!', + 38 => 'LM-X510!', + 39 => 'LM-X520!', + 40 => 'LM-X525!', + 41 => 'LM-X540!', + 42 => 'LM-X625!', + 43 => 'LM-Y110!', ), '@LO' => array ( @@ -3900,7 +3933,7 @@ ), '@LR' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@LS' => array ( @@ -4027,36 +4060,40 @@ 7 => 'M2004J19C', 8 => 'M2004J7BC', 9 => 'M2006C3LG', - 10 => 'M2006C3MG', - 11 => 'M2006C3MNG', - 12 => 'M2007J17G', - 13 => 'M2007J1SC', - 14 => 'M2007J20CG', - 15 => 'M2007J22G', - 16 => 'M2007J3SG', - 17 => 'M2007J3SY', - 18 => 'M2010J19CG', - 19 => 'M2010J19SY', - 20 => 'M2011K2C', - 21 => 'M2011K2G', - 22 => 'M2012K11AG', - 23 => 'M2012K10C', - 24 => 'M2012K11G', - 25 => 'M2101K6G', - 26 => 'M2101K6P', - 27 => 'M2101K7AG', - 28 => 'M2101K7BG', - 29 => 'M2101K7BNY', - 30 => 'M2101K9AG', - 31 => 'M2101K9C', - 32 => 'M2101K9G', - 33 => 'M2102J20SG', - 34 => 'M2102J20SI', - 35 => 'M2102K1AC', - 36 => 'M2102K1C', - 37 => 'M2102K1G', - 38 => 'M2103K19G', - 39 => 'M2103K19PG', + 10 => 'M2006C3LVG', + 11 => 'M2006C3MG', + 12 => 'M2006C3MII', + 13 => 'M2006C3MNG', + 14 => 'M2007J17G', + 15 => 'M2007J1SC', + 16 => 'M2007J20CG', + 17 => 'M2007J22G', + 18 => 'M2007J3SG', + 19 => 'M2007J3SY', + 20 => 'M2010J19CG', + 21 => 'M2010J19SG', + 22 => 'M2010J19SY', + 23 => 'M2011K2C', + 24 => 'M2011K2G', + 25 => 'M2012K11AG', + 26 => 'M2012K11AC', + 27 => 'M2012K10C', + 28 => 'M2012K11G', + 29 => 'M2101K6G', + 30 => 'M2101K6P', + 31 => 'M2101K7AG', + 32 => 'M2101K7BG', + 33 => 'M2101K7BNY', + 34 => 'M2101K9AG', + 35 => 'M2101K9C', + 36 => 'M2101K9G', + 37 => 'M2102J20SG', + 38 => 'M2102J20SI', + 39 => 'M2102K1AC', + 40 => 'M2102K1C', + 41 => 'M2102K1G', + 42 => 'M2103K19G', + 43 => 'M2103K19PG', ), '@M3' => array ( @@ -4287,26 +4324,27 @@ 48 => 'Mi 10 Pro', 49 => 'Mi 10 Lite 5G', 50 => 'Mi 10T Lite', - 51 => 'Mi 11 Lite 5G', - 52 => 'Mi Note 10', - 53 => 'Mi Note 10 Lite', - 54 => 'Mi Note 10 Pro', - 55 => '(Xiaomi|Xiaomi Mi|MI) Note!!', - 56 => '(Xiaomi )?(MI )?MAX$!', - 57 => '(Xiaomi )?(MI )?MAX 2$!', - 58 => '(Xiaomi )?(MI )?MAX 3$!', - 59 => '(Xiaomi )?(MI )?MIX$!', - 60 => '(Xiaomi )?(MI )?MIX 2$!', - 61 => '(Xiaomi )?(MI )?MIX 2S$!', - 62 => 'MIX 3', - 63 => 'Mi MIX 3', - 64 => 'Mi MIX 3 5G', - 65 => 'MI PLAY', - 66 => 'mido', - 67 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', - 68 => '(Xiaomi|Xiaomi Mi|MI)Box!!', - 69 => '(Xiaomi|Xiaomi Mi|MI)TV!!', - 70 => '(ZTE )?(Grand|Mimosa)!!', + 51 => 'Mi 11', + 52 => 'Mi 11 Lite 5G', + 53 => 'Mi Note 10', + 54 => 'Mi Note 10 Lite', + 55 => 'Mi Note 10 Pro', + 56 => '(Xiaomi|Xiaomi Mi|MI) Note!!', + 57 => '(Xiaomi )?(MI )?MAX$!', + 58 => '(Xiaomi )?(MI )?MAX 2$!', + 59 => '(Xiaomi )?(MI )?MAX 3$!', + 60 => '(Xiaomi )?(MI )?MIX$!', + 61 => '(Xiaomi )?(MI )?MIX 2$!', + 62 => '(Xiaomi )?(MI )?MIX 2S$!', + 63 => 'MIX 3', + 64 => 'Mi MIX 3', + 65 => 'Mi MIX 3 5G', + 66 => 'MI PLAY', + 67 => 'mido', + 68 => '(Xiaomi|Xiaomi Mi|MI) Pad!!', + 69 => '(Xiaomi|Xiaomi Mi|MI)Box!!', + 70 => '(Xiaomi|Xiaomi Mi|MI)TV!!', + 71 => '(ZTE )?(Grand|Mimosa)!!', ), '@MK' => array ( @@ -4385,88 +4423,91 @@ 49 => 'moto e6s', 50 => 'moto e6 play', 51 => 'moto e(6) plus', - 52 => 'moto e(7) plus', - 53 => 'moto e(7) power', - 54 => 'moto e(7i) power', - 55 => 'moto e20', - 56 => 'moto e30', - 57 => 'moto e40', - 58 => '(Moto)?G3$!', - 59 => '(Moto)?G3-TE$!', - 60 => 'Moto G 2015', - 61 => 'Moto G (2015)', - 62 => 'Moto G (2014', - 63 => 'MOTOROLA MOTOG', - 64 => 'Moto G Play', - 65 => 'Moto G Turbo', - 66 => 'moto g 5G', - 67 => 'moto g 5G plus', - 68 => 'moto g pro', - 69 => 'Moto G4', - 70 => 'Moto G (4', - 71 => 'Moto G (4)', - 72 => 'Moto G4 Plus', - 73 => 'Moto G 5', - 74 => 'Moto G (5', - 75 => 'Moto G (5)', - 76 => 'Moto G (5) Plus', - 77 => 'Moto G (5S', - 78 => 'Moto G (5S)', - 79 => 'Moto G (5S) Plus', - 80 => 'moto g(6', - 81 => 'moto g(6)', - 82 => 'moto g(6) (XT1925DL)', - 83 => 'moto g(6) forge', - 84 => 'moto g(6) play', - 85 => 'moto g(6) plus', - 86 => 'moto g(7', - 87 => 'moto g(7)', - 88 => 'moto g(7) optimo (XT1952DL)', - 89 => 'moto g(7) play', - 90 => 'moto g(7) plus', - 91 => 'moto g(7) power', - 92 => 'moto g(7) supra', - 93 => 'moto g(8', - 94 => 'moto g(8)', - 95 => 'moto g(8) plus', - 96 => 'moto g(8) power', - 97 => 'moto g(8) power lite', - 98 => 'moto g(9) play', - 99 => 'moto g(9) plus', - 100 => 'moto g(9) power', - 101 => 'moto g(10)', - 102 => 'moto g(20)', - 103 => 'moto g(30)', - 104 => 'moto g31(w)', - 105 => 'moto g(50)', - 106 => 'moto g51 5G', - 107 => 'moto g(60)', - 108 => 'moto g(60)s', - 109 => 'moto g(100)', - 110 => 'moto g200 5G', - 111 => 'Moto Z (2)', - 112 => 'Moto Z2 Play', - 113 => 'Moto Z3 Play', - 114 => 'Moto X Pro', - 115 => 'moto x4', - 116 => 'moto z4', - 117 => 'Moto Backflip', - 118 => 'motorola razr 5G', - 119 => 'MOTOROLA XOOM MZ606', - 120 => 'MOTOROLA RAZR', - 121 => 'MOTWX435KT', - 122 => '(PLOYER-)?MOMO!!', - 123 => 'MOB-5045', - 124 => 'Mobii 7', - 125 => 'MoFing', - 126 => 'mocha', - 127 => 'MO-01J', - 128 => 'MO-01K', - 129 => 'Movistar Express', - 130 => 'Movistar Link', - 131 => 'Movistar Motion', - 132 => 'Movistar Prime', - 133 => 'MOVE', + 52 => 'moto e(7)', + 53 => 'moto e(7) plus', + 54 => 'moto e(7) power', + 55 => 'moto e(7i) power', + 56 => 'moto e20', + 57 => 'moto e30', + 58 => 'moto e40', + 59 => '(Moto)?G3$!', + 60 => '(Moto)?G3-TE$!', + 61 => 'Moto G 2015', + 62 => 'Moto G (2015)', + 63 => 'Moto G (2014', + 64 => 'MOTOROLA MOTOG', + 65 => 'Moto G Play', + 66 => 'moto g power', + 67 => 'Moto G Turbo', + 68 => 'moto g 5G', + 69 => 'moto g 5G plus', + 70 => 'moto g pro', + 71 => 'Moto G4', + 72 => 'Moto G (4', + 73 => 'Moto G (4)', + 74 => 'Moto G4 Plus', + 75 => 'Moto G 5', + 76 => 'Moto G (5', + 77 => 'Moto G (5)', + 78 => 'Moto G (5) Plus', + 79 => 'Moto G (5S', + 80 => 'Moto G (5S)', + 81 => 'Moto G (5S) Plus', + 82 => 'Moto G (5S) Plus (XT1805)', + 83 => 'moto g(6', + 84 => 'moto g(6)', + 85 => 'moto g(6) (XT1925DL)', + 86 => 'moto g(6) forge', + 87 => 'moto g(6) play', + 88 => 'moto g(6) plus', + 89 => 'moto g(7', + 90 => 'moto g(7)', + 91 => 'moto g(7) optimo (XT1952DL)', + 92 => 'moto g(7) play', + 93 => 'moto g(7) plus', + 94 => 'moto g(7) power', + 95 => 'moto g(7) supra', + 96 => 'moto g(8', + 97 => 'moto g(8)', + 98 => 'moto g(8) plus', + 99 => 'moto g(8) power', + 100 => 'moto g(8) power lite', + 101 => 'moto g(9) play', + 102 => 'moto g(9) plus', + 103 => 'moto g(9) power', + 104 => 'moto g(10)', + 105 => 'moto g(20)', + 106 => 'moto g(30)', + 107 => 'moto g31(w)', + 108 => 'moto g(50)', + 109 => 'moto g51 5G', + 110 => 'moto g(60)', + 111 => 'moto g(60)s', + 112 => 'moto g(100)', + 113 => 'moto g200 5G', + 114 => 'Moto Z (2)', + 115 => 'Moto Z2 Play', + 116 => 'Moto Z3 Play', + 117 => 'Moto X Pro', + 118 => 'moto x4', + 119 => 'moto z4', + 120 => 'Moto Backflip', + 121 => 'motorola razr 5G', + 122 => 'MOTOROLA XOOM MZ606', + 123 => 'MOTOROLA RAZR', + 124 => 'MOTWX435KT', + 125 => '(PLOYER-)?MOMO!!', + 126 => 'MOB-5045', + 127 => 'Mobii 7', + 128 => 'MoFing', + 129 => 'mocha', + 130 => 'MO-01J', + 131 => 'MO-01K', + 132 => 'Movistar Express', + 133 => 'Movistar Link', + 134 => 'Movistar Motion', + 135 => 'Movistar Prime', + 136 => 'MOVE', ), '@MP' => array ( @@ -4798,7 +4839,7 @@ 30 => '(BLU|DASH|LIFE|NEO|STUDIO|VIVO)!!', 31 => 'NexusHD2', 32 => 'Nexus HD2', - 33 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 33 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 34 => 'Neon7', 35 => 'Neon9', 36 => '(NetTab|NT-)!!', @@ -4890,7 +4931,7 @@ ), '@NM' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NMP|MBR|XDK|XDS|XMP)\\-!!', ), '@NO' => @@ -4988,8 +5029,9 @@ 90 => 'Note 7P', 91 => 'Note 8P', 92 => 'Note 9P', - 93 => 'Noble TAB07-485', - 94 => '(QMobile|QTab|Q-Smart|Noir)!!', + 93 => 'Note 11P', + 94 => 'Noble TAB07-485', + 95 => '(QMobile|QTab|Q-Smart|Noir)!!', ), '@NP' => array ( @@ -5005,7 +5047,7 @@ ), '@NT' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => '(NetTab|NT-)!!', ), '@NU' => @@ -5438,7 +5480,7 @@ ), '@OX' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@OY' => array ( @@ -5687,7 +5729,7 @@ 1 => '(DNS )?(Airtab )?(E|ES|M|MA|MC|MF|MW|P|PC|PF)[0-9]{2,4}!!', 2 => '(HTC|PCD|USCC)?ADR[0-9]{4,4}!!', 3 => 'PC36100!', - 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 4 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 5 => 'PC-TE307N1W', 6 => 'PC-TE508BAW', 7 => 'PC-TS508FAM', @@ -5705,7 +5747,7 @@ ), '@PE' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 1 => 'PEDI', 2 => 'Penta!!', 3 => 'Pentagram!!', @@ -5849,7 +5891,7 @@ array ( 0 => 'PLE-701L', 1 => 'PLE-703L', - 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 2 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 3 => 'Planet II v2', 4 => 'PLANET', 5 => 'Playboy PB-S3', @@ -6416,6 +6458,7 @@ 0 => 'RG650', 1 => 'RG655', 2 => 'RG725', + 3 => 'RG850', ), '@RH' => array ( @@ -6505,7 +6548,7 @@ ), '@RN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@RO' => array ( @@ -6644,7 +6687,7 @@ '@SC' => array ( 0 => 'SCM-(AL09|W09)!', - 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 1 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 2 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 3 => '(HW-|HUAWEI )?(AMN|ART|AQM|CRO|LUA|CUN|DUB|SCC|SCU|CAM|LDN|LYO|MED|MYA)!!', 4 => 'SCH-[iI][0-9]{3,3}!!', @@ -6718,20 +6761,21 @@ 19 => 'SH01D', 20 => 'SH-A01', 21 => 'SH-C02', - 22 => 'SH-M01', - 23 => 'SH-M02', - 24 => 'SH-M02-EVA20', - 25 => 'SH-M03', - 26 => 'SH-M05', - 27 => 'SH-M07', - 28 => 'SH-RM02', - 29 => 'SH-Z01', - 30 => 'SH-[01][0-9][A-Z]!!', - 31 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', - 32 => 'SH[FLTV][0-9]{2,2}!!', - 33 => 'SHARP-ADS1', - 34 => 'SHIFT6m', - 35 => 'SHARK PRS-H0', + 22 => 'SH-D01', + 23 => 'SH-M01', + 24 => 'SH-M02', + 25 => 'SH-M02-EVA20', + 26 => 'SH-M03', + 27 => 'SH-M05', + 28 => 'SH-M07', + 29 => 'SH-RM02', + 30 => 'SH-Z01', + 31 => 'SH-[01][0-9][A-Z]!!', + 32 => '(SHP-)?(SHARP )?SH[0-9]{2,3}!!', + 33 => 'SH[FLTV][0-9]{2,2}!!', + 34 => 'SHARP-ADS1', + 35 => 'SHIFT6m', + 36 => 'SHARK PRS-H0', ), '@SI' => array ( @@ -6901,7 +6945,7 @@ 12 => 'ST7001', 13 => 'ST8000', 14 => 'ST9001', - 15 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 15 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', 16 => '(HW-|HUAWEI )?(ALE|ANA|ANE|CDY|CLT|D2|DAV|ELE|ELS|EML|EVA|FIG|G6|G7|GRA|JNY|MAR|M100|P2|P6|P7|PPA|PRA|RIO|SC|Sophia|STK|VIE|VKY|VNS|VOG|VTR|WAS)!!', 17 => 'ST10', 18 => 'ST940I-UP', @@ -7065,7 +7109,8 @@ ), '@T2' => array ( - 0 => 'T20', + 0 => 'T20-Plus', + 1 => 'T20', ), '@T3' => array ( @@ -7222,6 +7267,7 @@ 15 => 'TC70', 16 => 'TC75', 17 => 'TCL!!', + 18 => 'TC26', ), '@TD' => array ( @@ -7365,7 +7411,7 @@ ), '@TN' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@TO' => array ( @@ -7540,11 +7586,12 @@ 11 => 'Ultimate10', 12 => 'Ultimate10-Android4.0', 13 => 'Ultimate 10', - 14 => 'Ulefone Be Touch2', - 15 => 'ultrafone!!', - 16 => 'Ultym 5', - 17 => 'Ultym 5L', - 18 => 'Ultym 5.2', + 14 => 'Ulefone Armor 5', + 15 => 'Ulefone Be Touch2', + 16 => 'ultrafone!!', + 17 => 'Ultym 5', + 18 => 'Ultym 5L', + 19 => 'Ultym 5.2', ), '@UM' => array ( @@ -7950,6 +7997,7 @@ 2 => 'W-V800-EEA', 3 => 'W-V830-EEA', 4 => 'W-V730-EEA', + 5 => 'W-V851-EEA', ), '@W1' => array ( @@ -8184,20 +8232,21 @@ 21 => 'X00TDB', 22 => 'X00DE', 23 => 'X00QD', - 24 => 'X01AD', - 25 => 'X01BDA', - 26 => 'X013D', - 27 => 'X013DA', - 28 => 'X013DB', - 29 => 'X013DC', - 30 => 'X015D', - 31 => 'X00ID', - 32 => 'X014D', - 33 => 'X018D', - 34 => 'X002', - 35 => 'X003', - 36 => 'X005', - 37 => 'X008', + 24 => 'X00QSA', + 25 => 'X01AD', + 26 => 'X01BDA', + 27 => 'X013D', + 28 => 'X013DA', + 29 => 'X013DB', + 30 => 'X013DC', + 31 => 'X015D', + 32 => 'X00ID', + 33 => 'X014D', + 34 => 'X018D', + 35 => 'X002', + 36 => 'X003', + 37 => 'X005', + 38 => 'X008', ), '@X1' => array ( @@ -8528,8 +8577,9 @@ 5 => 'XQ-BQ52', 6 => 'XQ-AU52', 7 => 'XQ-BT52', - 8 => 'XQ-AD52', - 9 => 'XQ-BE52', + 8 => 'XQ-AD51', + 9 => 'XQ-AD52', + 10 => 'XQ-BE52', ), '@XT' => array ( @@ -8583,7 +8633,7 @@ ), '@YA' => array ( - 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', + 0 => '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!', ), '@YD' => array ( diff --git a/data/models-android.php b/data/models-android.php index 49912597c..e249207da 100644 --- a/data/models-android.php +++ b/data/models-android.php @@ -1121,6 +1121,7 @@ '8030[BY]!' => [ 'Alcatel', 'One Touch Hero 2' ], '8063' => [ 'Alcatel', 'Pixi 4' ], '8082' => [ 'Alcatel', '1T', DeviceType::TABLET ], + '8082 EEA' => [ 'Alcatel', '1T', DeviceType::TABLET ], '8094[X]!' => [ 'Alcatel', '3T 10', DeviceType::TABLET ], '9001[DIX]!' => [ 'Alcatel', 'One Touch Pixi 4 (6)' ], '9002[AWX]!' => [ 'Alcatel', 'One Touch Pixi 3 (7)', DeviceType::TABLET ], @@ -1710,6 +1711,7 @@ 'ARCHOS Core 101 Wifi' => [ 'Archos', 'Core 101', DeviceType::TABLET ], 'Archos Core 101 3G' => [ 'Archos', 'Core 101', DeviceType::TABLET ], 'Archos Oxygen 63' => [ 'Archos', 'Oxygen 63' ], + 'Archos Saphir 50X' => [ 'Archos', 'Saphir 50X' ], 'Archos Sense 55 DC' => [ 'Archos', 'Sense 55' ], 'Archos Sense 55 S' => [ 'Archos', 'Sense 55' ], ], @@ -1912,6 +1914,7 @@ 'X00TDB' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00DE' => [ 'Asus', 'ZenFone Max Pro M1 (ZB601KL)' ], 'X00QD' => [ 'Asus', 'ZenFone 5 (ZE620KL)' ], + 'X00QSA' => [ 'Asus', 'ZenFone 5 (ZE620KL)' ], 'X01AD' => [ 'Asus', 'ZenFone Max M2 (ZB633KL)' ], 'X01BDA' => [ 'Asus', 'ZenFone Max Pro M2 (ZB631KL)' ], 'X013D' => [ 'Asus', 'ZenFone Go (ZB551KL)' ], @@ -2300,9 +2303,11 @@ 'A80Pro' => [ 'Blackview', 'A80 Pro' ], 'BL6000Pro' => [ 'Blackview', 'BL6000 Pro' ], 'BV4900Pro' => [ 'Blackview', 'BV4900 Pro' ], + 'BV5500Plus' => [ 'Blackview', 'BV5500 Plus' ], 'BV5900' => [ 'Blackview', 'BV5900' ], 'BV6300Pro' => [ 'Blackview', 'BV6300 Pro' ], 'BV6600' => [ 'Blackview', 'BV6600' ], + 'BV6900' => [ 'Blackview', 'BV6900' ], 'BV8000Pro' => [ 'Blackview', 'BV8000 Pro' ], 'BV9100' => [ 'Blackview', 'BV9100' ], 'BV9500' => [ 'Blackview', 'BV9500' ], @@ -3551,6 +3556,7 @@ 'S222' => [ 'Cubot', 'S222' ], 'S308' => [ 'Cubot', 'S308' ], + 'KINGKONG 5 Pro' => [ 'Cubot', 'King Kong 5 Pro' ], 'KINGKONG MINI2' => [ 'Cubot', 'King Kong Mini 2' ], '(CUBE ?)?(K8|U1|U2|U3|U5|U6|U8|U9)[0-9]?GT!!' => [ @@ -3676,6 +3682,7 @@ ], 'Cydle M7!' => [ 'Cydle', 'M7 MultiPAD', DeviceType::TABLET ], + 'CS45XA' => [ 'Cyrus', 'CS45XA' ], 'EVDO1000' => [ 'Cyrus', 'EVDO 1000' ], 'GloryG1000' => [ 'Cyrus', 'Glory G1000' ], 'TVPAD Slim K3409' => [ 'Cyrus', 'TVPad Slim K3409', DeviceType::TABLET ], @@ -4081,6 +4088,7 @@ '825 T-Mobile' => [ 'Doro', 'Liberto 825' ], 'Doro PhoneEasy 745' => [ 'Doro', 'PhoneEasy 745' ], 'DSB-0220' => [ 'Doro', '8080' ], + 'DSB-0230' => [ 'Doro', '8050' ], 'M975' => [ 'Double Power', 'M975', DeviceType::TABLET ], 'TD-1010' => [ 'Double Power', 'TD-1010', DeviceType::TABLET ], 'Tablet-P27' => [ 'DracoTek', 'P27 Tablet', DeviceType::TABLET ], @@ -4829,6 +4837,7 @@ 'GS370 Plus' => [ 'Gigaset', 'GS370 Plus' ], 'E940-2795-00' => [ 'Gigaset', 'GS4' ], 'E940-2796-00' => [ 'Gigaset', 'GS4' ], + 'GX290' => [ 'Gigaset', 'GX290' ], '80-1' => [ 'Gigaset', 'Maxwell 10', DeviceType::DECT ], 'SL930' => [ 'Gigaset', 'SL930', DeviceType::DECT ], @@ -5089,6 +5098,7 @@ 'Hammer Blade 3' => [ 'Hammer', 'Blade 3' ], 'Hammer Energy' => [ 'Hammer', 'Energy' ], 'Hammer Energy 2' => [ 'Hammer', 'Energy 2' ], + 'Hammer Energy 18x9' => [ 'Hammer', 'Energy 18x9' ], 'Hammer Explorer' => [ 'Hammer', 'Explorer' ], 'Hammer Explorer Pro' => [ 'Hammer', 'Explorer Pro' ], @@ -6374,7 +6384,7 @@ '(HW-|HUAWEI )?DVC-(AN20)!' => [ 'Huawei', 'Enjoy 20 Pro' ], ], - '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ + '(HW-|HUAWEI |HONOR )?(ATH|AUM|BLN|BKL|BKK|BND|CHE|CHM|COL|COR|DUA|DUK|DLI|EDI|FRD|HLK|HN3|H30|H60|HOL|HRY|JAT|JMM|JSN|LRA|KIW|KSA|LLD|NEM|NMO|NTH|NTN|OXF|PE|PCT|PLK|RNE|SCL|TNY|KNT|CAM|STF|HDN|YAL)!!' => [ 'H30 U10' => [ 'Huawei', 'Honor 3C' ], '(HW-|HUAWEI )?HN3-(U00|U01)!' => [ 'Huawei', 'Honor 3' ], '(HW-|HUAWEI |HONOR )?H30[- ](C00|L01|L02|T00|T10|U10)!' => [ 'Huawei', 'Honor 3C' ], @@ -6414,6 +6424,7 @@ '(HW-|HUAWEI )?YAL-(AL00|AL10|L21|L41)!' => [ 'Huawei', 'Honor 20' ], '(HW-|HUAWEI )?LRA-(AL00)!' => [ 'Huawei', 'Honor 20 Lite' ], '(HW-|HUAWEI )?NTH-(NX9)!' => [ 'Huawei', 'Honor 50' ], + '(HW-|HUAWEI )?NTN-(LX1)!' => [ 'Huawei', 'Honor 50 Lite' ], '(HW-|HUAWEI )?DUK-(AL20|L09|TL30)!' => [ 'Huawei', 'Honor V9' ], '(HW-|HUAWEI )?JMM-(AL00|AL10|L22|L22HN|TL00)!' => [ 'Huawei', 'Honor V9 Play' ], '(HW-|HUAWEI )?BKL-(AL00|AL20|L04|L09)!' => [ 'Huawei', 'Honor V10' ], @@ -6457,7 +6468,7 @@ '(HW-|HUAWEI )?VKY-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P10 Plus' ], '(HW-|HUAWEI )?FIG-?(AL00|AL10|LA1|LX1|LX3|TL00)!' => [ 'Huawei', 'P Smart' ], '(HW-|HUAWEI )?STK-?(L21|L22|LX1|LX3)!' => [ 'Huawei', 'P Smart Z' ], - '(HW-|HUAWEI )?PPA-?(LX2)!' => [ 'Huawei', 'P Smart (2021)' ], + '(HW-|HUAWEI )?PPA-?(LX1|LX2)!' => [ 'Huawei', 'P Smart (2021)' ], '(HW-|HUAWEI )?EML-?(AL00|L09|L29|TL00)!' => [ 'Huawei', 'P20' ], '(HW-|HUAWEI )?ANE-?(AL00|L21|LX1|LX2|LX2J|LX3)!' => [ 'Huawei', 'P20 Lite' ], '(HW-|HUAWEI )?CLT-?(AL00|AL01|L04|L09|L29|L39|TL00|TL01)!' => [ 'Huawei', 'P20 Pro' ], @@ -6467,7 +6478,7 @@ '(HW-|HUAWEI )?ANA-?(NX9)!' => [ 'Huawei', 'P40' ], '(HW-|HUAWEI )?JNY-?(LX1)!' => [ 'Huawei', 'P40 Lite' ], '(HW-|HUAWEI )?CDY-?(NX9A)!' => [ 'Huawei', 'P40 Lite' ], - '(HW-|HUAWEI )?ELS-?(NX9)!' => [ 'Huawei', 'P40 Pro' ], + '(HW-|HUAWEI )?ELS-?(N39|NX9)!' => [ 'Huawei', 'P40 Pro' ], ], 'Rock-(AL00|CL00|L01|L03)!' => [ 'Huawei', 'Ascend G7' ], @@ -8613,6 +8624,7 @@ 'Lenovo TB-7304F' => [ 'Lenovo', 'Tab 7 Essential', DeviceType::TABLET ], 'Lenovo TB-7305F' => [ 'Lenovo', 'Tab M7', DeviceType::TABLET ], + 'Lenovo TB-7305X' => [ 'Lenovo', 'Tab M7', DeviceType::TABLET ], 'Lenovo TB-8304F1' => [ 'Lenovo', 'Tab 8', DeviceType::TABLET ], 'Lenovo TB-8505FS' => [ 'Lenovo', 'Smart Tab M8', DeviceType::TABLET ], 'Lenovo TB-8704X' => [ 'Lenovo', 'Tab 4 8 Plus', DeviceType::TABLET ], @@ -8829,6 +8841,7 @@ 'Lenovo K50t5' => [ 'Lenovo', 'K3 Note' ], 'Lenovo K520' => [ 'Lenovo', 'S5' ], 'Lenovo K6' => [ 'Lenovo', 'K6' ], + 'Lenovo L38111' => [ 'Lenovo', 'Z6 Youth Edition' ], 'Lenovo L78071' => [ 'Lenovo', 'Z5S' ], 'Lenovo L79031' => [ 'Lenovo', 'Legion Pro' ], 'Lenovo N300' => [ 'Lenovo', 'N300', DeviceType::DESKTOP ], @@ -9625,6 +9638,7 @@ 'LM-K200!' => [ 'LG', 'K22' ], 'LM-K410!' => [ 'LG', 'K41S' ], 'LM-K420!' => [ 'LG', 'K42' ], + 'LM-K510!' => [ 'LG', 'K51s' ], 'LM-K520!' => [ 'LG', 'K52' ], 'LM-Q610!' => [ 'LG', 'Q7' ], 'LM-Q617!' => [ 'LG', 'Q7 BTS Edition' ], @@ -9652,6 +9666,7 @@ 'LM-X420!' => [ 'LG', 'X4 (2019)' ], 'LM-X430!' => [ 'LG', 'K40S' ], 'LM-X510!' => [ 'LG', 'X5' ], + 'LM-X520!' => [ 'LG', 'K50' ], 'LM-X525!' => [ 'LG', 'K12 Prime' ], 'LM-X540!' => [ 'LG', 'K50S' ], 'LM-X625!' => [ 'LG', 'X6 (2019)' ], @@ -10164,6 +10179,7 @@ 'MD LIFETAB P9516' => [ 'Medion', 'Lifetab P9516', DeviceType::TABLET ], ], + 'B5532' => [ 'Medion', 'B5532' ], 'E1050X' => [ 'Medion', 'Lifetab E1050X', DeviceType::TABLET ], 'E1051X' => [ 'Medion', 'Lifetab E1051X', DeviceType::TABLET ], 'E1060X' => [ 'Medion', 'Lifetab E1060X', DeviceType::TABLET ], @@ -10902,7 +10918,7 @@ 'XT17(89)!' => [ 'Motorola', 'Moto Z2 Force' ], 'XT17(90)!' => [ 'Motorola', 'Moto G5S' ], 'XT18(02)!' => [ 'Motorola', 'Moto G5S Plus TV' ], - 'XT18(06)!' => [ 'Motorola', 'Moto G5S Plus' ], + 'XT18(05|06)!' => [ 'Motorola', 'Moto G5S Plus' ], 'XT19(02)!' => [ 'Lenovo', 'K8 Note' ], ], @@ -10988,6 +11004,7 @@ 'moto e6s' => [ 'Motorola', 'Moto E6s' ], 'moto e6 play' => [ 'Motorola', 'Moto E6 Play' ], 'moto e(6) plus' => [ 'Motorola', 'Moto E6 Plus' ], + 'moto e(7)' => [ 'Motorola', 'Moto E7' ], 'moto e(7) plus' => [ 'Motorola', 'Moto E7 Plus' ], 'moto e(7) power' => [ 'Motorola', 'Moto E7 Power' ], 'moto e(7i) power' => [ 'Motorola', 'Moto E7i Power' ], @@ -11001,6 +11018,7 @@ 'Moto G (2014' => [ 'Motorola', 'Moto G' ], 'MOTOROLA MOTOG' => [ 'Motorola', 'Moto G' ], 'Moto G Play' => [ 'Motorola', 'Moto G Play' ], + 'moto g power' => [ 'Motorola', 'Moto G Power' ], 'Moto G Turbo' => [ 'Motorola', 'Moto G Turbo' ], 'moto g 5G' => [ 'Motorola', 'Moto G 5G' ], 'moto g 5G plus' => [ 'Motorola', 'Moto G 5G Plus' ], @@ -11016,6 +11034,7 @@ 'Moto G (5S' => [ 'Motorola', 'Moto G5S' ], 'Moto G (5S)' => [ 'Motorola', 'Moto G5S' ], 'Moto G (5S) Plus' => [ 'Motorola', 'Moto G5S Plus' ], + 'Moto G (5S) Plus (XT1805)' => [ 'Motorola', 'Moto G5S Plus' ], 'moto g(6' => [ 'Motorola', 'Moto G6' ], 'moto g(6)' => [ 'Motorola', 'Moto G6' ], 'moto g(6) (XT1925DL)' => [ 'Motorola', 'Moto G6' ], @@ -11482,6 +11501,7 @@ 'Nokia 10.1' => [ 'Nokia', '10.1' ], 'Nokia N9' => [ 'Nokia', 'N9' ], 'Nokia N900' => [ 'Nokia', 'N900' ], + 'T20-Plus' => [ 'Nokia', 'T20 Plus' ], 'Nokia X' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], 'Nokia X Dual SIM' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], 'RM-980' => [ 'Nokia', 'X', DeviceType::MOBILE, Flag::NOKIAX ], @@ -11615,7 +11635,7 @@ 'ONEPLUS A6010' => [ 'OnePlus', '6T' ], 'ONEPLUS A6013' => [ 'OnePlus', '6T' ], 'HD190[0135]!' => [ 'OnePlus', '7T' ], - 'HD191[037]!' => [ 'OnePlus', '7T Pro' ], + 'HD191[0137]!' => [ 'OnePlus', '7T Pro' ], 'OnePlus 7T Pro' => [ 'OnePlus', '7T Pro' ], 'GM190[0135]!' => [ 'OnePlus', '7' ], 'GM191[01357]!' => [ 'OnePlus', '7 Pro' ], @@ -11635,6 +11655,7 @@ 'DN2101' => [ 'OnePlus', 'Nord 2' ], 'DN2103' => [ 'OnePlus', 'Nord 2' ], 'oneplus Nord 2 5G' => [ 'OnePlus', 'Nord 2' ], + 'EB2101' => [ 'OnePlus', 'Nord CE' ], 'EB2103' => [ 'OnePlus', 'Nord CE' ], 'IV2201' => [ 'OnePlus', 'Nord CE 2' ], 'BE202[69]!' => [ 'OnePlus', 'Nord N10' ], @@ -11760,6 +11781,7 @@ 'CPH1917' => [ 'Oppo', 'Reno' ], 'CPH1919' => [ 'Oppo', 'Reno 10x Zoom' ], 'CPH1920' => [ 'Oppo', 'A5s' ], + 'CPH1923' => [ 'Oppo', 'A1k' ], 'CPH1931' => [ 'Oppo', 'A5 (2020)' ], 'CPH1933' => [ 'Oppo', 'A5 (2020)' ], 'CPH1951' => [ 'Oppo', 'Reno 2Z' ], @@ -11777,6 +11799,7 @@ 'CPH2083' => [ 'Oppo', 'A12' ], 'CPH2089' => [ 'Oppo', 'Reno 4 Pro' ], 'CPH2091' => [ 'Oppo', 'Reno 4' ], + 'CPH2121' => [ 'Oppo', 'A93' ], 'CPH2125' => [ 'Oppo', 'Reno 4 Lite' ], 'CPH2127' => [ 'Oppo', 'A53' ], 'CPH2135' => [ 'Oppo', 'A53s' ], @@ -12023,6 +12046,8 @@ 'C15 Pro' => [ 'Oukitel', 'C15 Pro' ], 'C21 Pro' => [ 'Oukitel', 'C21 Pro' ], + 'B2021' => [ 'Oukitel', 'B2021' ], + 'K6000 Pro' => [ 'Oukitel', 'K6000 Pro' ], 'K10000 Pro' => [ 'Oukitel', 'K10000 Pro' ], '(OV-|Overmax|Vertis)!!' => [ @@ -13165,6 +13190,7 @@ 'RG650' => [ 'RugGear', 'RG650' ], 'RG655' => [ 'RugGear', 'RG655' ], 'RG725' => [ 'RugGear', 'RG725' ], + 'RG850' => [ 'RugGear', 'RG850' ], 'Snexian!!' => [ 'Snexian Mi320' => [ 'S Nexian', 'Chronos Mi320' ], @@ -14326,6 +14352,7 @@ 'SH-A01' => [ 'Sharp', 'B10 SH-A01' ], 'SH-C02' => [ 'Sharp', 'AQUOS V SH-C02' ], + 'SH-D01' => [ 'Sharp', 'AQUOS D10 SH-D01' ], 'SH-M01' => [ 'Sharp', 'AQUOS SH-M01' ], 'SH-M02' => [ 'Sharp', 'AQUOS SH-M02' ], 'SH-M02-EVA20' => [ 'Sharp', 'AQUOS SH-M02' ], @@ -14735,6 +14762,7 @@ 'XQ-BQ52' => [ 'Sony', 'Xperia 5 III' ], 'XQ-AU52' => [ 'Sony', 'Xperia 10 II' ], 'XQ-BT52' => [ 'Sony', 'Xperia 10 III' ], + 'XQ-AD51' => [ 'Sony', 'Xperia L4' ], 'XQ-AD52' => [ 'Sony', 'Xperia L4' ], 'XQ-BE52' => [ 'Sony', 'Xperia Pro-I' ], @@ -15641,6 +15669,7 @@ 'TECNO-J7' => [ 'Tecno', 'J7' ], 'TECNO J7' => [ 'Tecno', 'J7' ], 'TECNO-J8' => [ 'Tecno', 'J8' ], + 'TECNO KC6S' => [ 'Tecno', 'Spark 4 Air' ], 'TECNO L3' => [ 'Tecno', 'L3' ], 'TECNO-L5' => [ 'Tecno', 'L5' ], 'TECNO L6' => [ 'Tecno', 'L6' ], @@ -16276,8 +16305,11 @@ 'Armor 2' => [ 'Ulefone', 'Armor 2' ], 'Armor 3W' => [ 'Ulefone', 'Armor 3W' ], 'Armor 3WT' => [ 'Ulefone', 'Armor 3WT' ], + 'Ulefone Armor 5' => [ 'Ulefone', 'Armor 5' ], + 'Armor 5S' => [ 'Ulefone', 'Armor 5S' ], 'Armor 6E' => [ 'Ulefone', 'Armor 6E' ], 'Armor 7' => [ 'Ulefone', 'Armor 7' ], + 'Armor 7E' => [ 'Ulefone', 'Armor 7E' ], 'Armor 8' => [ 'Ulefone', 'Armor 8' ], 'Armor 9' => [ 'Ulefone', 'Armor 9' ], 'Armor 9E' => [ 'Ulefone', 'Armor 9E' ], @@ -16294,6 +16326,7 @@ 'Note 7P' => [ 'Ulefone', 'Note 7P' ], 'Note 8P' => [ 'Ulefone', 'Note 8P' ], 'Note 9P' => [ 'Ulefone', 'Note 9P' ], + 'Note 11P' => [ 'Ulefone', 'Note 11P' ], 'TB100' => [ 'Unitech', 'TB100', DeviceType::TABLET ], 'M70014' => [ 'United Star Technology', 'M70014', DeviceType::TABLET ], 'QOOQ' => [ 'Unowhy', 'QOOQ', DeviceType::TABLET ], @@ -16336,6 +16369,7 @@ 'Jelly2' => [ 'Unihertz', 'Jelly 2' ], 'Titan pocket' => [ 'Unihertz', 'Titan Pocket' ], 'U1203' => [ 'Uniscope', 'U1203' ], + 'KT-101-A' => [ 'Uniscom', 'KT-101-A', DeviceType::TABLET ], 'Unusual!!' => [ 'UNUSUAL U7X' => [ 'Unusual', 'U7X', DeviceType::TABLET ], @@ -16677,7 +16711,9 @@ 'vivo 1611' => [ 'Vivo', 'V5 Plus' ], 'vivo 1718' => [ 'Vivo', 'V7' ], 'vivo 1716' => [ 'Vivo', 'V7 Plus' ], + 'vivo 1724' => [ 'Vivo', 'Y71' ], 'vivo 1804' => [ 'Vivo', 'V11 Pro' ], + 'vivo 1805' => [ 'Vivo', 'NEX' ], 'vivo 1816' => [ 'Vivo', 'Y91' ], 'vivo 1818' => [ 'Vivo', 'V15 Pro' ], 'vivo 1902' => [ 'Vivo', 'Y17' ], @@ -17163,6 +17199,7 @@ 'W-V800-EEA' => [ 'Wiko', 'View3 Lite' ], 'W-V830-EEA' => [ 'Wiko', 'View4' ], 'W-V730-EEA' => [ 'Wiko', 'View4 Lite' ], + 'W-V851-EEA' => [ 'Wiko', 'View5' ], 'WAX' => [ 'Wiko', 'Wax' ], 'WIM Lite' => [ 'Wiko', 'Wim Lite' ], 'Wileyfox Spark' => [ 'Wileyfox', 'Spark' ], @@ -17381,6 +17418,7 @@ 'Mi 10 Pro' => [ 'Xiaomi', 'Mi 10 Pro' ], 'Mi 10 Lite 5G' => [ 'Xiaomi', 'Mi 10 Lite' ], 'Mi 10T Lite' => [ 'Xiaomi', 'Mi 10T Lite' ], + 'Mi 11' => [ 'Xiaomi', 'Mi 11' ], 'Mi 11 Lite 5G' => [ 'Xiaomi', 'Mi 11 Lite' ], 'Mi Note 10' => [ 'Xiaomi', 'Mi Note 10' ], 'Mi Note 10 Lite' => [ 'Xiaomi', 'Mi Note 10 Lite' ], @@ -17440,6 +17478,7 @@ '(Xiaomi )?(Redmi|HM) ?7A!' => [ 'Xiaomi', 'Redmi 7A' ], '(Xiaomi )?(Redmi|HM) ?8$!' => [ 'Xiaomi', 'Redmi 8' ], '(Xiaomi )?(Redmi|HM) ?8A!' => [ 'Xiaomi', 'Redmi 8A' ], + '(Xiaomi )?(Redmi|HM) ?9C!' => [ 'Xiaomi', 'Redmi 9C' ], '(Xiaomi )?(Redmi|HM) ?9T!' => [ 'Xiaomi', 'Redmi 9T' ], '(Xiaomi )?Redmi[ \-]K20$!' => [ 'Xiaomi', 'Redmi K20' ], '(Xiaomi )?Redmi[ \-]K20 Pro!' => [ 'Xiaomi', 'Redmi K20 Pro' ], @@ -17448,6 +17487,7 @@ '(Xiaomi )?Redmi[ \-]S2$!' => [ 'Xiaomi', 'Redmi S2' ], '(Xiaomi )?Redmi[ \-]Y1$!' => [ 'Xiaomi', 'Redmi Y1' ], '(Xiaomi )?Redmi[ \-]Y1 Lite!' => [ 'Xiaomi', 'Redmi Y1 Lite' ], + '(Xiaomi )?Redmi[ \-]Y2$!' => [ 'Xiaomi', 'Redmi Y2' ], '(Xiaomi )?Redmi[ \-]Go$!' => [ 'Xiaomi', 'Redmi Go' ], ], @@ -17493,11 +17533,13 @@ ], '21061119DG' => [ 'Xiaomi', 'Redmi 10' ], + '2201117TY' => [ 'Xiaomi', 'Redmi Note 11' ], + '2107113SG' => [ 'Xiaomi', 'Mi 11T Pro' ], '21081111RG' => [ 'Xiaomi', 'Mi 11T' ], '2201122G' => [ 'Xiaomi', 'Mi 12 Pro' ], '2201123G' => [ 'Xiaomi', 'Mi 12' ], - + '21091116AG' => [ 'Xiaomi', 'Poco M4 Pro' ], '2201116PG' => [ 'Xiaomi', 'Poco X4 Pro' ], @@ -17507,7 +17549,9 @@ 'M2004J19C' => [ 'Xiaomi', 'Redmi 9' ], 'M2004J7BC' => [ 'Xiaomi', 'Redmi 10X Pro' ], 'M2006C3LG' => [ 'Xiaomi', 'Redmi 9A' ], + 'M2006C3LVG' => [ 'Xiaomi', 'Redmi 9AT' ], 'M2006C3MG' => [ 'Xiaomi', 'Redmi 9C' ], + 'M2006C3MII' => [ 'Xiaomi', 'Redmi 9' ], 'M2006C3MNG' => [ 'Xiaomi', 'Redmi 9C' ], 'M2007J17G' => [ 'Xiaomi', 'Mi 10T Lite' ], 'M2007J1SC' => [ 'Xiaomi', 'Mi 10 Ultra' ], @@ -17516,10 +17560,12 @@ 'M2007J3SG' => [ 'Xiaomi', 'Mi 10T Pro' ], 'M2007J3SY' => [ 'Xiaomi', 'Mi 10T' ], 'M2010J19CG' => [ 'Xiaomi', 'Poco M3' ], + 'M2010J19SG' => [ 'Xiaomi', 'Redmi 9T' ], 'M2010J19SY' => [ 'Xiaomi', 'Redmi 9T' ], 'M2011K2C' => [ 'Xiaomi', 'Mi 11' ], 'M2011K2G' => [ 'Xiaomi', 'Mi 11' ], 'M2012K11AG' => [ 'Xiaomi', 'Poco F3' ], + 'M2012K11AC' => [ 'Xiaomi', 'Redmi K40' ], 'M2012K10C' => [ 'Xiaomi', 'Redmi K40 Gaming' ], 'M2012K11G' => [ 'Xiaomi', 'Mi 11i' ], 'M2101K6G' => [ 'Xiaomi', 'Redmi Note 10 Pro' ], @@ -18166,6 +18212,7 @@ 'NX513J' => [ 'ZTE', 'Nubia My Prague' ], 'NX601J' => [ 'ZTE', 'Nubia X6' ], 'NX659J' => [ 'ZTE', 'Nubia Red Magic' ], + 'NX629J' => [ 'ZTE', 'Nubia Red Magic 3' ], 'NX669J' => [ 'ZTE', 'Nubia Red Magic 6' ], ], @@ -19709,4 +19756,6 @@ 'VFD 1300' => [ 'Vodafone', 'Tab N8', DeviceType::TABLET ], 'VFD 1400' => [ 'Vodafone', 'Tab Prime 7', DeviceType::TABLET ], 'VFD1400' => [ 'Vodafone', 'Tab Prime 7', DeviceType::TABLET ], + + 'TC26' => [ 'Zebra', 'TC26', DeviceType::POS ], ]; \ No newline at end of file From 90b0e6da96f295a835e7faf134f604dec6ccccb5 Mon Sep 17 00:00:00 2001 From: javer Date: Sun, 2 Oct 2022 18:57:11 +0300 Subject: [PATCH 532/540] Add PHP 8.2 compatibility --- .github/workflows/build.yml | 2 +- src/Analyser/Header/Baidu.php | 2 ++ src/Analyser/Header/BrowserId.php | 2 ++ src/Analyser/Header/OperaMini.php | 2 ++ src/Analyser/Header/Puffin.php | 2 ++ src/Analyser/Header/UCBrowserNew.php | 2 ++ src/Analyser/Header/UCBrowserOld.php | 2 ++ src/Analyser/Header/Useragent.php | 4 ++++ src/Analyser/Header/Wap.php | 2 ++ src/Model/Primitive/Base.php | 1 + 10 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f87090f60..55eab3be0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] + php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2'] steps: - name: Checkout source diff --git a/src/Analyser/Header/Baidu.php b/src/Analyser/Header/Baidu.php index 09607f86a..5daa15d9e 100644 --- a/src/Analyser/Header/Baidu.php +++ b/src/Analyser/Header/Baidu.php @@ -4,6 +4,8 @@ class Baidu { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Analyser/Header/BrowserId.php b/src/Analyser/Header/BrowserId.php index 6b57b76c2..9e33223ce 100644 --- a/src/Analyser/Header/BrowserId.php +++ b/src/Analyser/Header/BrowserId.php @@ -9,6 +9,8 @@ class BrowserId { + private $data; + public function __construct($header, &$data) { if ($header == 'XMLHttpRequest') { diff --git a/src/Analyser/Header/OperaMini.php b/src/Analyser/Header/OperaMini.php index d8525bdf6..ab8981cc1 100644 --- a/src/Analyser/Header/OperaMini.php +++ b/src/Analyser/Header/OperaMini.php @@ -7,6 +7,8 @@ class OperaMini { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Analyser/Header/Puffin.php b/src/Analyser/Header/Puffin.php index fdd34891b..d2a96d6be 100644 --- a/src/Analyser/Header/Puffin.php +++ b/src/Analyser/Header/Puffin.php @@ -6,6 +6,8 @@ class Puffin { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Analyser/Header/UCBrowserNew.php b/src/Analyser/Header/UCBrowserNew.php index d3f20c72c..3ec856364 100644 --- a/src/Analyser/Header/UCBrowserNew.php +++ b/src/Analyser/Header/UCBrowserNew.php @@ -8,6 +8,8 @@ class UCBrowserNew { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Analyser/Header/UCBrowserOld.php b/src/Analyser/Header/UCBrowserOld.php index 12caa9a1f..95b71bed7 100644 --- a/src/Analyser/Header/UCBrowserOld.php +++ b/src/Analyser/Header/UCBrowserOld.php @@ -7,6 +7,8 @@ class UCBrowserOld { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Analyser/Header/Useragent.php b/src/Analyser/Header/Useragent.php index ebfa20010..d950f98f4 100644 --- a/src/Analyser/Header/Useragent.php +++ b/src/Analyser/Header/Useragent.php @@ -6,6 +6,10 @@ class Useragent { use Useragent\Os, Useragent\Device, Useragent\Browser, Useragent\Application, Useragent\Using, Useragent\Engine, Useragent\Bot; + private $data; + + private $options; + public function __construct($header, &$data, &$options) { $this->data =& $data; diff --git a/src/Analyser/Header/Wap.php b/src/Analyser/Header/Wap.php index 727feeeb7..ea5018a12 100644 --- a/src/Analyser/Header/Wap.php +++ b/src/Analyser/Header/Wap.php @@ -7,6 +7,8 @@ class Wap { + private $data; + public function __construct($header, &$data) { $this->data =& $data; diff --git a/src/Model/Primitive/Base.php b/src/Model/Primitive/Base.php index 352fd7d80..d29dd6829 100644 --- a/src/Model/Primitive/Base.php +++ b/src/Model/Primitive/Base.php @@ -6,6 +6,7 @@ * @internal */ +#[\AllowDynamicProperties] class Base { /** From 9c6c5a115531ed0cea4392e25a1d936c39ae80e0 Mon Sep 17 00:00:00 2001 From: Gaurang Kumar <16745273+gaurangkumar@users.noreply.github.com> Date: Sun, 30 Oct 2022 10:20:41 +0530 Subject: [PATCH 533/540] Syntax error fixed --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7755ec5e2..be328b290 100644 --- a/README.md +++ b/README.md @@ -154,7 +154,7 @@ Or access parts of these properties directly: $result->browser->name; // Chrome -$result->browser->name . ' ' . $result->browser->version.toString(); +$result->browser->name . ' ' . $result->browser->version->toString(); // Chrome 27 $result->browser->version->value; From 29e6c8378aa4b9bec699687fa003b3a63e3166ee Mon Sep 17 00:00:00 2001 From: Jeremy Herve Date: Thu, 23 Mar 2023 10:49:17 +0100 Subject: [PATCH 534/540] Do not autoload the tests, they are not shipped w/ stable --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b860c52fd..039c50ef1 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "autoload": { "psr-4": { - "WhichBrowser\\": [ "src/", "tests/src/" ] + "WhichBrowser\\": [ "src/" ] } }, From eb23836e0561f5762d7b142c6f8b055698733549 Mon Sep 17 00:00:00 2001 From: Jeremy Herve Date: Thu, 23 Mar 2023 10:49:50 +0100 Subject: [PATCH 535/540] Bootstrap tests independently from the main package Fixes #679 --- phpunit.xml | 2 +- tests/src/bootstrap.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 tests/src/bootstrap.php diff --git a/phpunit.xml b/phpunit.xml index afec3790f..da8f7c52e 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,5 +1,5 @@ Date: Fri, 24 Mar 2023 11:33:20 +0100 Subject: [PATCH 536/540] Fix runner.php See https://github.com/WhichBrowser/Parser-PHP/pull/680#discussion_r1146623976 --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 039c50ef1..f594ad43e 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,8 @@ "autoload-dev": { "psr-4": { - "WhichBrowserTest\\": "tests/unit" + "WhichBrowserTest\\": "tests/unit", + "WhichBrowser\\": [ "tests/src/" ] }, "files": [ "tests/src/polyfills.php" ] From 99c2347cb6ddc2d2792da9106836195ec09cca7a Mon Sep 17 00:00:00 2001 From: Franck VANHOUCKE <32266803+thanatos-vf-2000@users.noreply.github.com> Date: Thu, 13 Jul 2023 11:53:19 +0200 Subject: [PATCH 537/540] Update browsers-chrome.php stable v101 to v115 Update browsers-chrome.php stable v101 to v115 --- data/browsers-chrome.php | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/data/browsers-chrome.php b/data/browsers-chrome.php index 7e855c91e..8e4a185a6 100644 --- a/data/browsers-chrome.php +++ b/data/browsers-chrome.php @@ -103,7 +103,22 @@ '97.0.4692' => 'stable', '98.0.4758' => 'stable', '99.0.4844' => 'stable', - '100.0.4896' => 'stable' + '100.0.4896' => 'stable', + '101.0.4951' => 'stable', + '102.0.5005' => 'stable', + '103.0.5060' => 'stable', + '104.0.5112' => 'stable', + '105.0.5195' => 'stable', + '106.0.5249' => 'stable', + '107.0.5304' => 'stable', + '108.0.5359' => 'stable', + '109.0.5414' => 'stable', + '110.0.5481' => 'stable', + '111.0.5563' => 'stable', + '112.0.5615' => 'stable', + '113.0.5672' => 'stable', + '114.0.5735' => 'stable', + '115.0.5790' => 'stable' ]; Chrome::$MOBILE = [ @@ -180,5 +195,20 @@ '97.0.4692' => 'stable', '98.0.4758' => 'stable', '99.0.4844' => 'stable', - '100.0.4896' => 'stable' + '100.0.4896' => 'stable', + '101.0.4951' => 'stable', + '102.0.5005' => 'stable', + '103.0.5060' => 'stable', + '104.0.5112' => 'stable', + '105.0.5195' => 'stable', + '106.0.5249' => 'stable', + '107.0.5304' => 'stable', + '108.0.5359' => 'stable', + '109.0.5414' => 'stable', + '110.0.5481' => 'stable', + '111.0.5563' => 'stable', + '112.0.5615' => 'stable', + '113.0.5672' => 'stable', + '114.0.5735' => 'stable', + '115.0.5790' => 'stable' ]; From 9608721a74664ff60171f674a6d7640f0040a8ce Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 17 Apr 2024 14:08:54 +0200 Subject: [PATCH 538/540] Hide macOS version, if it is a known fixed number --- src/Analyser/Corrections.php | 27 +++++++++++++++++++++++++ tests/data/desktop/browser-chrome.yaml | 8 ++++++-- tests/data/desktop/browser-edge.yaml | 4 ++++ tests/data/desktop/browser-firefox.yaml | 4 ++++ tests/data/desktop/browser-safari.yaml | 4 ++++ 5 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/Analyser/Corrections.php b/src/Analyser/Corrections.php index 7debbfae6..c41d37997 100644 --- a/src/Analyser/Corrections.php +++ b/src/Analyser/Corrections.php @@ -41,10 +41,37 @@ private function &applyCorrections() $this->hideFamilyIfEqualToBrowser(); } + if (isset($this->data->browser->name) && isset($this->data->os->name) && isset($this->data->os->version)) { + $this->hideOsVersionIfFixed(); + } + return $this; } + private function hideOsVersionIfFixed() + { + if ($this->data->os->name == 'OS X') { + $name = $this->data->browser->name; + + if (isset($this->data->browser->family)) { + $name = $this->data->browser->family->name; + } + + if ($name == 'Chrome' && $this->data->os->version->value == "10.15.7") { + $this->data->os->version = null; + } + + if ($name == 'Safari' && $this->data->os->version->value == "10.15.7") { + $this->data->os->version = null; + } + + if ($name == 'Firefox' && $this->data->os->version->value == "10.15") { + $this->data->os->version = null; + } + } + } + private function hideFamilyIfEqualToBrowser() { if ($this->data->browser->name == $this->data->browser->family->name) { diff --git a/tests/data/desktop/browser-chrome.yaml b/tests/data/desktop/browser-chrome.yaml index 5da08c695..29e56e344 100644 --- a/tests/data/desktop/browser-chrome.yaml +++ b/tests/data/desktop/browser-chrome.yaml @@ -68,5 +68,9 @@ readable: 'Chrome 87 on macOS Big Sur 11.0' - headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' - readable: 'Chrome 100 on macOS Catalina 10.15' - result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } + readable: 'Chrome 100 on macOS' + result: { browser: { name: Chrome, version: '100', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36' + readable: 'Chrome 123 on macOS' + result: { browser: { name: Chrome, version: '123', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } diff --git a/tests/data/desktop/browser-edge.yaml b/tests/data/desktop/browser-edge.yaml index 159f0b421..f5e489ebb 100644 --- a/tests/data/desktop/browser-edge.yaml +++ b/tests/data/desktop/browser-edge.yaml @@ -38,3 +38,7 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3782.0 Safari/537.36 Edg/76.0.152.0' readable: 'Edge 76 on macOS Mojave 10.14' result: { browser: { name: Edge, family: { name: Chrome, version: 76 }, version: '76', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS, version: { value: '10.14', nickname: Mojave } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0' + readable: 'Edge 123 on macOS' + result: { browser: { name: Edge, family: { name: Chrome, version: 123 }, version: '123', type: browser }, engine: { name: Blink }, os: { name: 'OS X', alias: macOS }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } diff --git a/tests/data/desktop/browser-firefox.yaml b/tests/data/desktop/browser-firefox.yaml index 1fc8aa8da..b977b7d5d 100644 --- a/tests/data/desktop/browser-firefox.yaml +++ b/tests/data/desktop/browser-firefox.yaml @@ -254,3 +254,7 @@ headers: 'User-Agent: Mozilla/5.0 (X11; U; Darwin i386; en-US; rv:1.9.1.4) Gecko/20100311 Shiretoko/3.5.5' readable: 'Firefox Shiretoko 3.5.5 on Darwin' result: { browser: { name: Firefox, version: 3.5.5, type: browser }, engine: { name: Gecko, version: 1.9.1 }, os: { name: Darwin }, device: { type: desktop } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:123.0) Gecko/20100101 Firefox/123.0' + readable: 'Firefox 123.0 on macOS' + result: { browser: { name: Firefox, version: '123.0', type: browser }, engine: { name: Gecko, version: '123.0' }, os: { name: 'OS X', alias: macOS }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } diff --git a/tests/data/desktop/browser-safari.yaml b/tests/data/desktop/browser-safari.yaml index 7fef8ac90..1e65fe6b5 100644 --- a/tests/data/desktop/browser-safari.yaml +++ b/tests/data/desktop/browser-safari.yaml @@ -234,3 +234,7 @@ headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15' readable: 'Safari 14.0.1 on macOS Catalina 10.15' result: { browser: { name: Safari, version: 14.0.1, type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', alias: macOS, version: { value: '10.15', nickname: Catalina } }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } +- + headers: 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15' + readable: 'Safari 17.5 on macOS' + result: { browser: { name: Safari, version: '17.5', type: browser }, engine: { name: Webkit, version: 605.1.15 }, os: { name: 'OS X', alias: macOS }, device: { type: desktop, manufacturer: Apple, model: Macintosh } } From 2efbc4777b240a1ce28f45075cf51468d9b5d60f Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 17 Apr 2024 14:47:24 +0200 Subject: [PATCH 539/540] Add new macOS nicknames --- src/Analyser/Derive.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Analyser/Derive.php b/src/Analyser/Derive.php index e61c024fb..29345a357 100644 --- a/src/Analyser/Derive.php +++ b/src/Analyser/Derive.php @@ -492,6 +492,14 @@ private function deriveBasedOnOperatingSystem() if ($this->data->os->version->is('12')) { $this->data->os->version->nickname = 'Monterey'; } + + if ($this->data->os->version->is('13')) { + $this->data->os->version->nickname = 'Ventura'; + } + + if ($this->data->os->version->is('14')) { + $this->data->os->version->nickname = 'Sonoma'; + } } } } From 581d614d686bfbec3529ad60562a5213ac5d8d72 Mon Sep 17 00:00:00 2001 From: Niels Leenheer Date: Wed, 17 Apr 2024 14:47:41 +0200 Subject: [PATCH 540/540] Add new Darwin versions for translating to macOS and iOS --- data/os-darwin.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/data/os-darwin.php b/data/os-darwin.php index f50461154..8fc6fd7d1 100644 --- a/data/os-darwin.php +++ b/data/os-darwin.php @@ -15,6 +15,14 @@ '13' => [ 'value' =>'10.9' ], '14' => [ 'value' =>'10.10' ], '15' => [ 'value' =>'10.11' ], + '16' => [ 'value' =>'10.12' ], + '17' => [ 'value' =>'10.13' ], + '18' => [ 'value' =>'10.14' ], + '19' => [ 'value' =>'10.15' ], + '20' => [ 'value' =>'11' ], + '21' => [ 'value' =>'12' ], + '22' => [ 'value' =>'13' ], + '23' => [ 'value' =>'14' ], ]; Darwin::$IOS = [ @@ -24,4 +32,12 @@ '13' => [ 'value' =>'6' ], '14' => [ 'value' =>'7' ], '15' => [ 'value' =>'9' ], + '16' => [ 'value' =>'10' ], + '17' => [ 'value' =>'11' ], + '18' => [ 'value' =>'12' ], + '19' => [ 'value' =>'13' ], + '20' => [ 'value' =>'14' ], + '21' => [ 'value' =>'15' ], + '22' => [ 'value' =>'16' ], + '23' => [ 'value' =>'17' ], ];