user_agent_parser 2.16.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 +115 -21
- 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
|
|
@@ -217,7 +217,7 @@ user_agent_parsers:
|
|
|
217
217
|
family_replacement: 'Twitter'
|
|
218
218
|
|
|
219
219
|
# Phantom app
|
|
220
|
-
- regex: 'Mozilla.{1,200}Mobile.{1,100}(Phantom\/ios|android).(\d+)\.(\d+)\.(\d+)'
|
|
220
|
+
- regex: 'Mozilla.{1,200}Mobile.{1,100}(Phantom\/ios|Phantom\/android).(\d+)\.(\d+)\.(\d+)'
|
|
221
221
|
family_replacement: 'Phantom'
|
|
222
222
|
|
|
223
223
|
# aspiegel.com spider (owned by Huawei, later called PetalBot)
|
|
@@ -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'
|
|
@@ -388,7 +411,7 @@ user_agent_parsers:
|
|
|
388
411
|
# Edge Mobile
|
|
389
412
|
- regex: 'Windows Phone .{0,200}(Edge)/(\d+)\.(\d+)'
|
|
390
413
|
family_replacement: 'Edge Mobile'
|
|
391
|
-
- regex: '(EdgiOS|EdgA)/(\d+)
|
|
414
|
+
- regex: '(EdgiOS|EdgA)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
392
415
|
family_replacement: 'Edge Mobile'
|
|
393
416
|
|
|
394
417
|
# Oculus Browser, should go before Samsung Internet
|
|
@@ -450,13 +473,25 @@ 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+)'
|
|
458
487
|
family_replacement: 'Tenta Browser'
|
|
459
488
|
|
|
489
|
+
# Ecosia on iOS / Android
|
|
490
|
+
- regex: '(Ecosia) ios@(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
491
|
+
family_replacement: 'Ecosia iOS'
|
|
492
|
+
- regex: '(Ecosia) android@(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
493
|
+
family_replacement: 'Ecosia Android'
|
|
494
|
+
|
|
460
495
|
# Chrome Mobile
|
|
461
496
|
- regex: 'Version/.{1,300}(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
462
497
|
family_replacement: 'Chrome Mobile WebView'
|
|
@@ -464,7 +499,7 @@ user_agent_parsers:
|
|
|
464
499
|
family_replacement: 'Chrome Mobile WebView'
|
|
465
500
|
- regex: '(CrMo)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
|
466
501
|
family_replacement: 'Chrome Mobile'
|
|
467
|
-
- regex: '(CriOS)/(\d+)
|
|
502
|
+
- regex: '(CriOS)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
468
503
|
family_replacement: 'Chrome Mobile iOS'
|
|
469
504
|
- regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)\.(\d+) Mobile(?:[ /]|$)'
|
|
470
505
|
family_replacement: 'Chrome Mobile'
|
|
@@ -496,6 +531,8 @@ user_agent_parsers:
|
|
|
496
531
|
# Yandex Browser
|
|
497
532
|
- regex: '(YaBrowser)/(\d+)\.(\d+)\.(\d+)'
|
|
498
533
|
family_replacement: 'Yandex Browser'
|
|
534
|
+
- regex: '(YaSearchBrowser)/(\d+)\.(\d+)\.(\d+)'
|
|
535
|
+
family_replacement: 'Yandex Browser'
|
|
499
536
|
|
|
500
537
|
# Mail.ru Amigo/Internet Browser (Chromium-based)
|
|
501
538
|
- regex: '(Chrome)/(\d+)\.(\d+)\.(\d+).{0,100} MRCHROME'
|
|
@@ -600,18 +637,14 @@ user_agent_parsers:
|
|
|
600
637
|
- regex: 'Superhuman'
|
|
601
638
|
family_replacement: 'Superhuman'
|
|
602
639
|
|
|
603
|
-
# Vivaldi
|
|
604
|
-
- regex: '(Vivaldi)/(\d+)
|
|
640
|
+
# Vivaldi
|
|
641
|
+
- regex: '(Vivaldi)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
605
642
|
|
|
606
643
|
# Edge/major_version.minor_version
|
|
607
644
|
# Edge with chromium Edg/major_version.minor_version.patch.minor_patch
|
|
608
645
|
- regex: '(Edge?)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
609
646
|
family_replacement: 'Edge'
|
|
610
647
|
|
|
611
|
-
# Brave Browser https://brave.com/
|
|
612
|
-
- regex: '(brave)/(\d+)\.(\d+)\.(\d+) Chrome'
|
|
613
|
-
family_replacement: 'Brave'
|
|
614
|
-
|
|
615
648
|
# Iron Browser ~since version 50
|
|
616
649
|
- regex: '(Chrome)/(\d+)\.(\d+)\.(\d+)[\d.]{0,100} Iron[^/]'
|
|
617
650
|
family_replacement: 'Iron'
|
|
@@ -1022,10 +1055,12 @@ user_agent_parsers:
|
|
|
1022
1055
|
# HTTrack crawler
|
|
1023
1056
|
- regex: '\b(HTTrack) (\d+)\.(\d+)(?:[\.\-](\d+)|)'
|
|
1024
1057
|
|
|
1025
|
-
#
|
|
1026
|
-
# https://github.com/SerenityOS/serenity/blob/
|
|
1027
|
-
- regex: '
|
|
1028
|
-
|
|
1058
|
+
# Ladybird Browser (https://ladybird.dev)
|
|
1059
|
+
# https://github.com/SerenityOS/serenity/blob/6a662e0d43810c1dbd56fbf0c123f258aa1d694e/Userland/Libraries/LibWeb/Loader/ResourceLoader.h#L64
|
|
1060
|
+
- regex: '(Ladybird)\/(\d+)\.(\d+)'
|
|
1061
|
+
|
|
1062
|
+
# MullvadBrowser (https://mullvad.net/en/browser)
|
|
1063
|
+
- regex: '(MullvadBrowser)/(\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
|
1029
1064
|
|
|
1030
1065
|
os_parsers:
|
|
1031
1066
|
##########
|
|
@@ -1110,6 +1145,29 @@ os_parsers:
|
|
|
1110
1145
|
# Special case for new ArcGIS Mobile products
|
|
1111
1146
|
- regex: 'ArcGISRuntime-(?:Android|iOS)\/\d+\.\d+(?:\.\d+|) \((Android|iOS) (\d+)(?:\.(\d+)(?:\.(\d+)|)|);'
|
|
1112
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
|
+
|
|
1113
1171
|
##########
|
|
1114
1172
|
# Android
|
|
1115
1173
|
# can actually detect rooted android os. do we care?
|
|
@@ -1273,6 +1331,10 @@ os_parsers:
|
|
|
1273
1331
|
##########
|
|
1274
1332
|
- regex: '(Tizen)[/ ](\d+)\.(\d+)'
|
|
1275
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
|
+
|
|
1276
1338
|
##########
|
|
1277
1339
|
# Mac OS
|
|
1278
1340
|
# @ref: http://en.wikipedia.org/wiki/Mac_OS_X#Versions
|
|
@@ -1787,12 +1849,6 @@ os_parsers:
|
|
|
1787
1849
|
|
|
1788
1850
|
- regex: '(WebTV)/(\d+).(\d+)'
|
|
1789
1851
|
|
|
1790
|
-
##########
|
|
1791
|
-
# Chromecast
|
|
1792
|
-
##########
|
|
1793
|
-
- regex: '(CrKey)(?:[/](\d+)\.(\d+)(?:\.(\d+)|)|)'
|
|
1794
|
-
os_replacement: 'Chromecast'
|
|
1795
|
-
|
|
1796
1852
|
##########
|
|
1797
1853
|
# Misc mobile
|
|
1798
1854
|
##########
|
|
@@ -2426,6 +2482,39 @@ device_parsers:
|
|
|
2426
2482
|
brand_replacement: 'ChangJia'
|
|
2427
2483
|
model_replacement: '$1'
|
|
2428
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
|
+
|
|
2429
2518
|
#########
|
|
2430
2519
|
# Cloudfone
|
|
2431
2520
|
# @ref: http://www.cloudfonemobile.com/
|
|
@@ -3582,6 +3671,11 @@ device_parsers:
|
|
|
3582
3671
|
# Meta
|
|
3583
3672
|
# @ref: https://www.meta.com
|
|
3584
3673
|
#########
|
|
3674
|
+
- regex: 'Quest 3'
|
|
3675
|
+
device_replacement: 'Quest'
|
|
3676
|
+
brand_replacement: 'Meta'
|
|
3677
|
+
model_replacement: 'Quest 3'
|
|
3678
|
+
|
|
3585
3679
|
- regex: 'Quest 2'
|
|
3586
3680
|
device_replacement: 'Quest'
|
|
3587
3681
|
brand_replacement: 'Meta'
|
|
@@ -5615,7 +5709,7 @@ device_parsers:
|
|
|
5615
5709
|
device_replacement: 'Nintendo Wii U'
|
|
5616
5710
|
brand_replacement: 'Nintendo'
|
|
5617
5711
|
model_replacement: 'Wii U'
|
|
5618
|
-
- regex: 'Nintendo (DS|3DS|DSi|Wii);'
|
|
5712
|
+
- regex: 'Nintendo (Switch|DS|3DS|DSi|Wii);'
|
|
5619
5713
|
device_replacement: 'Nintendo $1'
|
|
5620
5714
|
brand_replacement: 'Nintendo'
|
|
5621
5715
|
model_replacement: '$1'
|
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:
|
|
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.
|
|
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
|