user_agent_parser 2.17.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/vendor/uap-core/regexes.yaml +99 -13
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdc5b924cd5f11fa40712079c1bfa1aeed05171fcfe764293891d5692c0279c2
4
- data.tar.gz: fc490168e565d73ad85f278780536641ce519a1b45ab9a52391b85d33c45b171
3
+ metadata.gz: ab744225e30c5d7b104c90cbfc58113edbeb9d4ea9f11273e88dd260619ba3eb
4
+ data.tar.gz: 0a6e00fa9452546627f2a753a35617d6c72ad8d69c1afc50aa46060db3c53ee5
5
5
  SHA512:
6
- metadata.gz: f6cbf21d3149089e420a32e2f97f205eac6ef6189767bd3b28e42f9c9189dbbcf46c83b02ebaad5916d621a1494e4300339bfc8e2da688c7017a810cab6430a2
7
- data.tar.gz: 967b44d72866580bbc24dcd772547e53b13def915207c3848c68035d07a621ffec3bd4da76e95218fe1639316cca3458b89206dd19a1e90b497d2cc5a3957a3a
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: 'Mobile.{0,200}(DuckDuckGo)/(\d+)'
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 uses "Vivaldi"
610
- - regex: '(Vivaldi)/(\d+)\.(\d+)\.(\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.17.0
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-02-24 00:00:00.000000000 Z
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.6
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