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.
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