user_agent_parser 2.17.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/vendor/uap-core/regexes.yaml +99 -13
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ab744225e30c5d7b104c90cbfc58113edbeb9d4ea9f11273e88dd260619ba3eb
|
|
4
|
+
data.tar.gz: 0a6e00fa9452546627f2a753a35617d6c72ad8d69c1afc50aa46060db3c53ee5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36330441c91ddfe3fcfe35c31da5aa188ef5f902078a1dc8ec0731c6e8e90a8617a50c975ed1ea666fd7f48e69be8bcc4aafad05a12e4c4d4fd60e75eafb497b
|
|
7
|
+
data.tar.gz: 505a97655bbcc6d7e838577baf1e30e1bfddec25ba3e50820620d73cdc85c974bb530cff89cda473c2a4f2c6b1759feccd213ec6d7958c0104e3df70cbe66ae4
|
|
@@ -378,6 +378,29 @@ user_agent_parsers:
|
|
|
378
378
|
- regex: '(Nintendo 3DS)'
|
|
379
379
|
family_replacement: 'NetFront NX'
|
|
380
380
|
|
|
381
|
+
# Huawei Browser, should go before Safari and Chrome Mobile
|
|
382
|
+
- regex: '(HuaweiBrowser)/(\d+)\.(\d+)\.(\d+)\.\d+'
|
|
383
|
+
family_replacement: 'Huawei Browser'
|
|
384
|
+
|
|
385
|
+
# AVG
|
|
386
|
+
- regex: '(AVG)/(\d+)\.(\d+)\.(\d+)\.\d+'
|
|
387
|
+
family_replacement: 'AVG'
|
|
388
|
+
|
|
389
|
+
# Avast
|
|
390
|
+
- regex: '(AvastSecureBrowser|Avast)/(\d+)\.(\d+)\.(\d+)'
|
|
391
|
+
family_replacement: 'Avast Secure Browser'
|
|
392
|
+
|
|
393
|
+
# Instabridge
|
|
394
|
+
- regex: '(Instabridge)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
395
|
+
|
|
396
|
+
# Aloha Browser
|
|
397
|
+
- regex: '(AlohaBrowser)/(\d+)\.(\d+)\.(\d+)(?:\.(\d+)|)'
|
|
398
|
+
family_replacement: 'Aloha Browser'
|
|
399
|
+
|
|
400
|
+
# Brave Browser https://brave.com/ , should go before Safari and Chrome Mobile
|
|
401
|
+
- regex: '((?:B|b)rave(?:\sChrome)?)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
402
|
+
family_replacement: 'Brave'
|
|
403
|
+
|
|
381
404
|
# Amazon Silk, should go before Safari and Chrome Mobile
|
|
382
405
|
- regex: '(Silk)/(\d+)\.(\d+)(?:\.([0-9\-]+)|)'
|
|
383
406
|
family_replacement: 'Amazon Silk'
|
|
@@ -450,8 +473,14 @@ user_agent_parsers:
|
|
|
450
473
|
family_replacement: 'QQ Browser'
|
|
451
474
|
|
|
452
475
|
# DuckDuckGo
|
|
453
|
-
- regex: '
|
|
476
|
+
- regex: 'Mozilla.{1,200}Mobile.{1,100}(DuckDuckGo)/(\d+)'
|
|
477
|
+
family_replacement: 'DuckDuckGo Mobile'
|
|
478
|
+
- regex: 'Mozilla.{1,200}(DuckDuckGo)/(\d+)'
|
|
479
|
+
family_replacement: 'DuckDuckGo'
|
|
480
|
+
- regex: 'Mozilla.{1,200}Mobile.{1,100}(Ddg)/(\d+)(?:\.(\d+)|)'
|
|
454
481
|
family_replacement: 'DuckDuckGo Mobile'
|
|
482
|
+
- regex: 'Mozilla.{1,200}(Ddg)/(\d+)(?:\.(\d+)|)'
|
|
483
|
+
family_replacement: 'DuckDuckGo'
|
|
455
484
|
|
|
456
485
|
# Tenta Browser
|
|
457
486
|
- regex: '(Tenta/)(\d+)\.(\d+)\.(\d+)'
|
|
@@ -502,6 +531,8 @@ user_agent_parsers:
|
|
|
502
531
|
# Yandex Browser
|
|
503
532
|
- regex: '(YaBrowser)/(\d+)\.(\d+)\.(\d+)'
|
|
504
533
|
family_replacement: 'Yandex Browser'
|
|
534
|
+
- regex: '(YaSearchBrowser)/(\d+)\.(\d+)\.(\d+)'
|
|
535
|
+
family_replacement: 'Yandex Browser'
|
|
505
536
|
|
|
506
537
|
# Mail.ru Amigo/Internet Browser (Chromium-based)
|
|
507
538
|
- regex: '(Chrome)/(\d+)\.(\d+)\.(\d+).{0,100} MRCHROME'
|
|
@@ -606,18 +637,14 @@ user_agent_parsers:
|
|
|
606
637
|
- regex: 'Superhuman'
|
|
607
638
|
family_replacement: 'Superhuman'
|
|
608
639
|
|
|
609
|
-
# Vivaldi
|
|
610
|
-
- regex: '(Vivaldi)/(\d+)
|
|
640
|
+
# Vivaldi
|
|
641
|
+
- regex: '(Vivaldi)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
611
642
|
|
|
612
643
|
# Edge/major_version.minor_version
|
|
613
644
|
# Edge with chromium Edg/major_version.minor_version.patch.minor_patch
|
|
614
645
|
- regex: '(Edge?)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
615
646
|
family_replacement: 'Edge'
|
|
616
647
|
|
|
617
|
-
# Brave Browser https://brave.com/
|
|
618
|
-
- regex: '(brave)/(\d+)\.(\d+)\.(\d+) Chrome'
|
|
619
|
-
family_replacement: 'Brave'
|
|
620
|
-
|
|
621
648
|
# Iron Browser ~since version 50
|
|
622
649
|
- regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)[\d.]{0,100} Iron[^/]'
|
|
623
650
|
family_replacement: 'Iron'
|
|
@@ -1118,6 +1145,29 @@ os_parsers:
|
|
|
1118
1145
|
# Special case for new ArcGIS Mobile products
|
|
1119
1146
|
- regex: 'ArcGISRuntime-(?:Android|iOS)\/\d+\.\d+(?:\.\d+|) \((Android|iOS) (\d+)(?:\.(\d+)(?:\.(\d+)|)|);'
|
|
1120
1147
|
|
|
1148
|
+
##########
|
|
1149
|
+
# Chromecast
|
|
1150
|
+
##########
|
|
1151
|
+
# Ex: Mozilla/5.0 (Linux; Android 12.0; Build/STTL.240206.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.0 Safari/537.36 CrKey/1.56.500000 DeviceType/AndroidTV
|
|
1152
|
+
# These are the newer Android-based "Google TV" Chromecast devices.
|
|
1153
|
+
# Google stopped updating the Chromecast firmware version in these, so they always say CrKey/1.56.500000. Therefore we extract the more useful Android version instead.
|
|
1154
|
+
- regex: '(Android) (\d+)(?:\.(\d+)).*CrKey'
|
|
1155
|
+
os_replacement: 'Chromecast Android'
|
|
1156
|
+
|
|
1157
|
+
# Ex: Mozilla/5.0 (Fuchsia) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 CrKey/1.56.500000
|
|
1158
|
+
# These are some intermediate "Nest Hub" Chromecast devices running Fuchsia.
|
|
1159
|
+
- regex: 'Fuchsia.*(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|)'
|
|
1160
|
+
os_replacement: 'Chromecast Fuchsia'
|
|
1161
|
+
|
|
1162
|
+
# Ex: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.225 Safari/537.36 CrKey/1.56.500000 DeviceType/SmartSpeaker
|
|
1163
|
+
- regex: 'Linux.*(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|).*DeviceType/SmartSpeaker'
|
|
1164
|
+
os_replacement: 'Chromecast SmartSpeaker'
|
|
1165
|
+
|
|
1166
|
+
# Ex: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.225 Safari/537.36 CrKey/1.56.500000 DeviceType/Chromecast
|
|
1167
|
+
# These are the oldest Chromecast devices that ran Linux.
|
|
1168
|
+
- regex: 'Linux.*(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|)'
|
|
1169
|
+
os_replacement: 'Chromecast Linux'
|
|
1170
|
+
|
|
1121
1171
|
##########
|
|
1122
1172
|
# Android
|
|
1123
1173
|
# can actually detect rooted android os. do we care?
|
|
@@ -1281,6 +1331,10 @@ os_parsers:
|
|
|
1281
1331
|
##########
|
|
1282
1332
|
- regex: '(Tizen)[/ ](\d+)\.(\d+)'
|
|
1283
1333
|
|
|
1334
|
+
# Chrome and Edge on iOS with desktop mode contains Mac OS X, so it must be before any Mac OS check
|
|
1335
|
+
- regex: 'Intel Mac OS X.+(CriOS|EdgiOS)/\d+'
|
|
1336
|
+
os_replacement: 'iOS'
|
|
1337
|
+
|
|
1284
1338
|
##########
|
|
1285
1339
|
# Mac OS
|
|
1286
1340
|
# @ref: http://en.wikipedia.org/wiki/Mac_OS_X#Versions
|
|
@@ -1795,12 +1849,6 @@ os_parsers:
|
|
|
1795
1849
|
|
|
1796
1850
|
- regex: '(WebTV)/(\d+).(\d+)'
|
|
1797
1851
|
|
|
1798
|
-
##########
|
|
1799
|
-
# Chromecast
|
|
1800
|
-
##########
|
|
1801
|
-
- regex: '(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|)'
|
|
1802
|
-
os_replacement: 'Chromecast'
|
|
1803
|
-
|
|
1804
1852
|
##########
|
|
1805
1853
|
# Misc mobile
|
|
1806
1854
|
##########
|
|
@@ -2434,6 +2482,39 @@ device_parsers:
|
|
|
2434
2482
|
brand_replacement: 'ChangJia'
|
|
2435
2483
|
model_replacement: '$1'
|
|
2436
2484
|
|
|
2485
|
+
##########
|
|
2486
|
+
# Chromecast
|
|
2487
|
+
# @ref: https://en.wikipedia.org/wiki/Chromecast#Hardware_and_design
|
|
2488
|
+
##########
|
|
2489
|
+
# Ex: Mozilla/5.0 (Linux; Android 12.0; Build/STTL.240206.002) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.0 Safari/537.36 CrKey/1.56.500000 DeviceType/AndroidTV
|
|
2490
|
+
# Ex: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.225 Safari/537.36 CrKey/1.56.500000 DeviceType/SmartSpeaker
|
|
2491
|
+
# Ex: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.225 Safari/537.36 CrKey/1.56.500000 DeviceType/Chromecast
|
|
2492
|
+
# These are the newer Chromecast devices, such as smart speakers, Google TVs, etc. that have an explicit device type.
|
|
2493
|
+
- regex: 'CrKey.*DeviceType/([^/]*)'
|
|
2494
|
+
brand_replacement: 'Google'
|
|
2495
|
+
device_replacement: 'Chromecast'
|
|
2496
|
+
model_replacement: '$1'
|
|
2497
|
+
|
|
2498
|
+
# Ex: Mozilla/5.0 (Fuchsia) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 CrKey/1.56.500000
|
|
2499
|
+
# These are some intermediate "Nest Hub" Chromecast devices running Fuchsia.
|
|
2500
|
+
- regex: 'Fuchsia.*CrKey'
|
|
2501
|
+
brand_replacement: 'Google'
|
|
2502
|
+
device_replacement: 'Chromecast'
|
|
2503
|
+
model_replacement: 'Nest Hub'
|
|
2504
|
+
|
|
2505
|
+
# Ex: Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.47 Safari/537.36 CrKey/1.36.159268
|
|
2506
|
+
# These are the first generation of Chromecast devices that ran Linux. They don't specify a device type.
|
|
2507
|
+
- regex: 'Linux.*CrKey/1.36'
|
|
2508
|
+
brand_replacement: 'Google'
|
|
2509
|
+
device_replacement: 'Chromecast'
|
|
2510
|
+
model_replacement: 'First Generation'
|
|
2511
|
+
|
|
2512
|
+
# We have no data on the user agent strings of other models, except that they all report CrKey/
|
|
2513
|
+
- regex: 'CrKey/'
|
|
2514
|
+
brand_replacement: 'Google'
|
|
2515
|
+
device_replacement: 'Chromecast'
|
|
2516
|
+
model_replacement: 'Chromecast'
|
|
2517
|
+
|
|
2437
2518
|
#########
|
|
2438
2519
|
# Cloudfone
|
|
2439
2520
|
# @ref: http://www.cloudfonemobile.com/
|
|
@@ -3590,6 +3671,11 @@ device_parsers:
|
|
|
3590
3671
|
# Meta
|
|
3591
3672
|
# @ref: https://www.meta.com
|
|
3592
3673
|
#########
|
|
3674
|
+
- regex: 'Quest 3'
|
|
3675
|
+
device_replacement: 'Quest'
|
|
3676
|
+
brand_replacement: 'Meta'
|
|
3677
|
+
model_replacement: 'Quest 3'
|
|
3678
|
+
|
|
3593
3679
|
- regex: 'Quest 2'
|
|
3594
3680
|
device_replacement: 'Quest'
|
|
3595
3681
|
brand_replacement: 'Meta'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: user_agent_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.18.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Lucas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: |
|
|
14
14
|
A simple, comprehensive Ruby gem for parsing user agent strings
|
|
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
49
|
version: '0'
|
|
50
50
|
requirements: []
|
|
51
|
-
rubygems_version: 3.5.
|
|
51
|
+
rubygems_version: 3.5.11
|
|
52
52
|
signing_key:
|
|
53
53
|
specification_version: 4
|
|
54
54
|
summary: Parsing user agent strings with the help of BrowserScope's UA database
|