user_agent_parser 2.6.0 → 2.7.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 +121 -14
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f36ea17c827ff0d9a4a57841e491bafed8ae2c3a5caea5af858d6cdbb580d897
|
4
|
+
data.tar.gz: 48cce3afc9daaf42f180ce5564c9fc37c5fb288c115e93bb20b6291d43ae452f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c695d6238bb7542309a94daaea5149109aca5c0f4a1205d7a078f5182eb2d02ea768bf0884803d59a0d2f4f4f57a5ddbb8750d523469f028fcdc0b88f3f56c4
|
7
|
+
data.tar.gz: 39fa0993955155d19eabb8f31356173bfda97b2e430ce469d895713421c793ad047d327a50f1165e64861064ded84ae977a782fdbef078b6229f1c347b8f2113
|
@@ -1,6 +1,50 @@
|
|
1
1
|
user_agent_parsers:
|
2
2
|
#### SPECIAL CASES TOP ####
|
3
3
|
|
4
|
+
# ESRI Server products
|
5
|
+
- regex: '(GeoEvent Server) (\d+)(?:\.(\d+)(?:\.(\d+)|)|)'
|
6
|
+
|
7
|
+
# ESRI ArcGIS Desktop Products
|
8
|
+
- regex: '(ArcGIS Pro)(?: (\d+)\.(\d+)\.([^ ]+)|)'
|
9
|
+
|
10
|
+
- regex: 'ArcGIS Client Using WinInet'
|
11
|
+
family_replacement: 'ArcMap'
|
12
|
+
|
13
|
+
- regex: '(OperationsDashboard)-(?:Windows)-(\d+)\.(\d+)\.(\d+)'
|
14
|
+
family_replacement: 'Operations Dashboard for ArcGIS'
|
15
|
+
|
16
|
+
- regex: '(arcgisearth)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
17
|
+
family_replacement: 'ArcGIS Earth'
|
18
|
+
|
19
|
+
- regex: 'com.esri.(earth).phone/(\d+)\.(\d+)(?:\.(\d+)|)'
|
20
|
+
family_replacement: 'ArcGIS Earth'
|
21
|
+
|
22
|
+
# ESRI ArcGIS Mobile Products
|
23
|
+
- regex: '(arcgis-explorer)/(\d+)\.(\d+)\.(\d+)'
|
24
|
+
family_replacement: 'Explorer for ArcGIS'
|
25
|
+
|
26
|
+
- regex: 'arcgis-(collector|aurora)/(\d+)\.(\d+)\.(\d+)'
|
27
|
+
family_replacement: 'Collector for ArcGIS'
|
28
|
+
|
29
|
+
- regex: '(arcgis-workforce)/(\d+)\.(\d+)\.(\d+)'
|
30
|
+
family_replacement: 'Workforce for ArcGIS'
|
31
|
+
|
32
|
+
- regex: '(Collector|Explorer|Workforce)-(?:Android|iOS)-(\d+)\.(\d+)(?:\.(\d+)|)'
|
33
|
+
family_replacement: '$1 for ArcGIS'
|
34
|
+
|
35
|
+
- regex: '(Explorer|Collector)/(\d+) CFNetwork'
|
36
|
+
family_replacement: '$1 for ArcGIS'
|
37
|
+
|
38
|
+
# ESRI ArcGIS Runtimes
|
39
|
+
- regex: 'ArcGISRuntime-(Android|iOS|NET|Qt)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
40
|
+
family_replacement: 'ArcGIS Runtime SDK for $1'
|
41
|
+
|
42
|
+
- regex: 'ArcGIS\.?(iOS|Android|NET|Qt)(?:-|\.)(\d+)\.(\d+)(?:\.(\d+)|)'
|
43
|
+
family_replacement: 'ArcGIS Runtime SDK for $1'
|
44
|
+
|
45
|
+
- regex: 'ArcGIS\.Runtime\.(Qt)\.(\d+)\.(\d+)(?:\.(\d+)|)'
|
46
|
+
family_replacement: 'ArcGIS Runtime SDK for $1'
|
47
|
+
|
4
48
|
# CFNetwork Podcast catcher Applications
|
5
49
|
- regex: '^(Luminary)[Stage]+/(\d+) CFNetwork'
|
6
50
|
- regex: '(ESPN)[%20| ]+Radio/(\d+)\.(\d+)\.(\d+) CFNetwork'
|
@@ -101,12 +145,24 @@ user_agent_parsers:
|
|
101
145
|
family_replacement: 'Pinterestbot'
|
102
146
|
|
103
147
|
# Bots
|
104
|
-
- regex: '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat Webbot|BotName\/\$BotVersion|123metaspider-Bot|1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\b\w{0,30}favicon\w{0,30}\b|\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?: bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s|) Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)'
|
148
|
+
- regex: '(CSimpleSpider|Cityreview Robot|CrawlDaddy|CrawlFire|Finderbots|Index crawler|Job Roboter|KiwiStatus Spider|Lijit Crawler|QuerySeekerSpider|ScollSpider|Trends Crawler|USyd-NLP-Spider|SiteCat Webbot|BotName\/\$BotVersion|123metaspider-Bot|1470\.net crawler|50\.nu|8bo Crawler Bot|Aboundex|Accoona-[A-z]{1,30}-Agent|AdsBot-Google(?:-[a-z]{1,30}|)|altavista|AppEngine-Google|archive.{0,30}\.org_bot|archiver|Ask Jeeves|[Bb]ai[Dd]u[Ss]pider(?:-[A-Za-z]{1,30})(?:-[A-Za-z]{1,30}|)|bingbot|BingPreview|blitzbot|BlogBridge|Bloglovin|BoardReader Blog Indexer|BoardReader Favicon Fetcher|boitho.com-dc|BotSeer|BUbiNG|\b\w{0,30}favicon\w{0,30}\b|\bYeti(?:-[a-z]{1,30}|)|Catchpoint(?: bot|)|[Cc]harlotte|Checklinks|clumboot|Comodo HTTP\(S\) Crawler|Comodo-Webinspector-Crawler|ConveraCrawler|CRAWL-E|CrawlConvera|Daumoa(?:-feedfetcher|)|Feed Seeker Bot|Feedbin|findlinks|Flamingo_SearchEngine|FollowSite Bot|furlbot|Genieo|gigabot|GomezAgent|gonzo1|(?:[a-zA-Z]{1,30}-|)Googlebot(?:-[a-zA-Z]{1,30}|)|Google SketchUp|grub-client|gsa-crawler|heritrix|HiddenMarket|holmes|HooWWWer|htdig|ia_archiver|ICC-Crawler|Icarus6j|ichiro(?:/mobile|)|IconSurf|IlTrovatore(?:-Setaccio|)|InfuzApp|Innovazion Crawler|InternetArchive|IP2[a-z]{1,30}Bot|jbot\b|KaloogaBot|Kraken|Kurzor|larbin|LEIA|LesnikBot|Linguee Bot|LinkAider|LinkedInBot|Lite Bot|Llaut|lycos|Mail\.RU_Bot|masscan|masidani_bot|Mediapartners-Google|Microsoft .{0,30} Bot|mogimogi|mozDex|MJ12bot|msnbot(?:-media {0,2}|)|msrbot|Mtps Feed Aggregation System|netresearch|Netvibes|NewsGator[^/]{0,30}|^NING|Nutch[^/]{0,30}|Nymesis|ObjectsSearch|OgScrper|Orbiter|OOZBOT|PagePeeker|PagesInventory|PaxleFramework|Peeplo Screenshot Bot|PlantyNet_WebRobot|Pompos|Qwantify|Read%20Later|Reaper|RedCarpet|Retreiver|Riddler|Rival IQ|scooter|Scrapy|Scrubby|searchsight|seekbot|semanticdiscovery|SemrushBot|Simpy|SimplePie|SEOstats|SimpleRSS|SiteCon|Slackbot-LinkExpanding|Slack-ImgProxy|Slurp|snappy|Speedy Spider|Squrl Java|Stringer|TheUsefulbot|ThumbShotsBot|Thumbshots\.ru|Tiny Tiny RSS|Twitterbot|WhatsApp|URL2PNG|Vagabondo|VoilaBot|^vortex|Votay bot|^voyager|WASALive.Bot|Web-sniffer|WebThumb|WeSEE:[A-z]{1,30}|WhatWeb|WIRE|WordPress|Wotbox|www\.almaden\.ibm\.com|Xenu(?:.s|) Link Sleuth|Xerka [A-z]{1,30}Bot|yacy(?:bot|)|YahooSeeker|Yahoo! Slurp|Yandex\w{1,30}|YodaoBot(?:-[A-z]{1,30}|)|YottaaMonitor|Yowedo|^Zao|^Zao-Crawler|ZeBot_www\.ze\.bz|ZooShot|ZyBorg|ArcGIS Hub Indexer)(?:[ /]v?(\d+)(?:\.(\d+)(?:\.(\d+)|)|)|)'
|
105
149
|
|
106
150
|
# AWS S3 Clients
|
107
151
|
# must come before "Bots General matcher" to catch "boto"/"boto3" before "bot"
|
108
152
|
- regex: '\b(Boto3?|JetS3t|aws-(?:cli|sdk-(?:cpp|go|java|nodejs|ruby2?|dotnet-(?:\d{1,2}|core)))|s3fs)/(\d+)\.(\d+)(?:\.(\d+)|)'
|
109
153
|
|
154
|
+
# SAFE FME
|
155
|
+
- regex: '(FME)\/(\d+\.\d+)\.(\d+)\.(\d+)'
|
156
|
+
|
157
|
+
# QGIS
|
158
|
+
- regex: '(QGIS)\/(\d)\.?0?(\d{1,2})\.?0?(\d{1,2})'
|
159
|
+
|
160
|
+
# JOSM
|
161
|
+
- regex: '(JOSM)/(\d+)\.(\d+)'
|
162
|
+
|
163
|
+
# Tygron Platform
|
164
|
+
- regex: '(Tygron Platform) \((\d+)\.(\d+)\.(\d+(?:\.\d+| RC \d+\.\d+))'
|
165
|
+
|
110
166
|
# Facebook
|
111
167
|
# Must come before "Bots General matcher" to catch OrangeBotswana
|
112
168
|
# Facebook Messenger must go before Facebook
|
@@ -156,6 +212,17 @@ user_agent_parsers:
|
|
156
212
|
- regex: '(Twitter for (?:iPhone|iPad)|TwitterAndroid)(?:\/(\d+)\.(\d+)|)'
|
157
213
|
family_replacement: 'Twitter'
|
158
214
|
|
215
|
+
# aspiegel.com spider (owned by Huawei)
|
216
|
+
- regex: 'Mozilla.*Mobile.*AspiegelBot'
|
217
|
+
family_replacement: 'Spider'
|
218
|
+
brand_replacement: 'Spider'
|
219
|
+
model_replacement: 'Smartphone'
|
220
|
+
|
221
|
+
- regex: 'AspiegelBot'
|
222
|
+
family_replacement: 'Spider'
|
223
|
+
brand_replacement: 'Spider'
|
224
|
+
model_replacement: 'Desktop'
|
225
|
+
|
159
226
|
# Basilisk
|
160
227
|
- regex: '(Firefox)/(\d+)\.(\d+) Basilisk/(\d+)'
|
161
228
|
family_replacement: 'Basilisk'
|
@@ -317,9 +384,7 @@ user_agent_parsers:
|
|
317
384
|
# Edge Mobile
|
318
385
|
- regex: 'Windows Phone .*(Edge)/(\d+)\.(\d+)'
|
319
386
|
family_replacement: 'Edge Mobile'
|
320
|
-
- regex: '(EdgA)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
321
|
-
family_replacement: 'Edge Mobile'
|
322
|
-
- regex: '(EdgiOS)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
387
|
+
- regex: '(EdgiOS|EdgA)/(\d+)\.(\d+)\.(\d+)\.(\d+)'
|
323
388
|
family_replacement: 'Edge Mobile'
|
324
389
|
|
325
390
|
# Samsung Internet (based on Chrome, but lacking some features)
|
@@ -406,6 +471,9 @@ user_agent_parsers:
|
|
406
471
|
- regex: '(Rackspace Monitoring)/(\d+)\.(\d+)'
|
407
472
|
family_replacement: 'RackspaceBot'
|
408
473
|
|
474
|
+
# PRTG Network Monitoring
|
475
|
+
- regex: '(PRTG Network Monitor)'
|
476
|
+
|
409
477
|
# PyAMF
|
410
478
|
- regex: '(PyAMF)/(\d+)\.(\d+)\.(\d+)'
|
411
479
|
|
@@ -611,7 +679,7 @@ user_agent_parsers:
|
|
611
679
|
# Browser major_version.minor_version.beta_version (space instead of slash)
|
612
680
|
- regex: '(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\d+)\.(\d+)\.(\d+)'
|
613
681
|
# Browser major_version.minor_version (space instead of slash)
|
614
|
-
- regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The Bat!) (\d+)
|
682
|
+
- regex: '(iCab|Lunascape|Opera|Android|Jasmine|Polaris|Microsoft SkyDriveSync|The Bat!) (\d+)(?:\.(\d+)|)(?:\.(\d+)|)'
|
615
683
|
|
616
684
|
# Kindle WebKit
|
617
685
|
- regex: '(Kindle)/(\d+)\.(\d+)'
|
@@ -839,12 +907,11 @@ user_agent_parsers:
|
|
839
907
|
family_replacement: 'Python Requests'
|
840
908
|
|
841
909
|
# headless user-agents
|
842
|
-
- regex: '\b(Windows-Update-Agent|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|PycURL|Wget|aria2|Axel|OpenBSD ftp|lftp|jupdate|insomnia|fetch libfetch|akka-http|got)(?:[ /](\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)'
|
910
|
+
- regex: '\b(Windows-Update-Agent|WindowsPowerShell|Microsoft-CryptoAPI|SophosUpdateManager|SophosAgent|Debian APT-HTTP|Ubuntu APT-HTTP|libcurl-agent|libwww-perl|urlgrabber|curl|PycURL|Wget|wget2|aria2|Axel|OpenBSD ftp|lftp|jupdate|insomnia|fetch libfetch|akka-http|got)(?:[ /](\d+)(?:\.(\d+)|)(?:\.(\d+)|)|)'
|
843
911
|
|
844
912
|
# Asynchronous HTTP Client/Server for asyncio and Python (https://aiohttp.readthedocs.io/)
|
845
913
|
- regex: '(Python/3\.\d{1,3} aiohttp)/(\d+)\.(\d+)\.(\d+)'
|
846
|
-
|
847
|
-
- regex: '(Python/3\.\d{1,3} aiohttp)/(\d+)\.(\d+)\.(\d+)'
|
914
|
+
family_replacement: 'Python aiohttp'
|
848
915
|
|
849
916
|
- regex: '(Java)[/ ]?\d+\.(\d+)\.(\d+)[_-]*([a-zA-Z0-9]+|)'
|
850
917
|
|
@@ -932,6 +999,10 @@ os_parsers:
|
|
932
999
|
# generic HbbTV, hoping to catch manufacturer name (always after 2nd comma) and the first string that looks like a 2011-2019 year
|
933
1000
|
- regex: 'HbbTV/\d+\.\d+\.\d+ \(.*; ?([a-zA-Z]+) ?;.*(201[1-9]).*\)'
|
934
1001
|
|
1002
|
+
# aspiegel.com spider (owned by Huawei)
|
1003
|
+
- regex: 'AspiegelBot'
|
1004
|
+
os_replacement: 'Other'
|
1005
|
+
|
935
1006
|
##########
|
936
1007
|
# @note: Windows Phone needs to come before Windows NT 6.1 *and* before Android to catch cases such as:
|
937
1008
|
# Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 920)...
|
@@ -946,6 +1017,12 @@ os_parsers:
|
|
946
1017
|
- regex: '(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone)[ +]+(\d+)[_\.](\d+)(?:[_\.](\d+)|).*Outlook-iOS-Android'
|
947
1018
|
os_replacement: 'iOS'
|
948
1019
|
|
1020
|
+
# Special case for old ArcGIS Mobile products
|
1021
|
+
- regex: 'ArcGIS\.?(iOS|Android)-\d+\.\d+(?:\.\d+|)(?:[^\/]+|)\/(\d+)(?:\.(\d+)(?:\.(\d+)|)|)'
|
1022
|
+
|
1023
|
+
# Special case for new ArcGIS Mobile products
|
1024
|
+
- regex: 'ArcGISRuntime-(?:Android|iOS)\/\d+\.\d+(?:\.\d+|) \((Android|iOS) (\d+)(?:\.(\d+)(?:\.(\d+)|)|);'
|
1025
|
+
|
949
1026
|
##########
|
950
1027
|
# Android
|
951
1028
|
# can actually detect rooted android os. do we care?
|
@@ -1029,11 +1106,11 @@ os_parsers:
|
|
1029
1106
|
os_replacement: 'Windows'
|
1030
1107
|
os_v1_replacement: 'XP'
|
1031
1108
|
|
1032
|
-
- regex: '(
|
1109
|
+
- regex: '(Win(?:dows NT |32NT\/)6\.1)'
|
1033
1110
|
os_replacement: 'Windows'
|
1034
1111
|
os_v1_replacement: '7'
|
1035
1112
|
|
1036
|
-
- regex: '(
|
1113
|
+
- regex: '(Win(?:dows NT |32NT\/)6\.0)'
|
1037
1114
|
os_replacement: 'Windows'
|
1038
1115
|
os_v1_replacement: 'Vista'
|
1039
1116
|
|
@@ -1045,7 +1122,7 @@ os_parsers:
|
|
1045
1122
|
os_replacement: 'Windows'
|
1046
1123
|
os_v1_replacement: 'RT'
|
1047
1124
|
|
1048
|
-
- regex: '(
|
1125
|
+
- regex: '(Win(?:dows NT |32NT\/)6\.2)'
|
1049
1126
|
os_replacement: 'Windows'
|
1050
1127
|
os_v1_replacement: '8'
|
1051
1128
|
|
@@ -1054,12 +1131,12 @@ os_parsers:
|
|
1054
1131
|
os_v1_replacement: 'RT 8'
|
1055
1132
|
os_v2_replacement: '1'
|
1056
1133
|
|
1057
|
-
- regex: '(
|
1134
|
+
- regex: '(Win(?:dows NT |32NT\/)6\.3)'
|
1058
1135
|
os_replacement: 'Windows'
|
1059
1136
|
os_v1_replacement: '8'
|
1060
1137
|
os_v2_replacement: '1'
|
1061
1138
|
|
1062
|
-
- regex: '(
|
1139
|
+
- regex: '(Win(?:dows NT |32NT\/)6\.4)'
|
1063
1140
|
os_replacement: 'Windows'
|
1064
1141
|
os_v1_replacement: '10'
|
1065
1142
|
|
@@ -1568,6 +1645,16 @@ device_parsers:
|
|
1568
1645
|
device_replacement: 'Spider'
|
1569
1646
|
brand_replacement: 'Spider'
|
1570
1647
|
|
1648
|
+
# aspiegel.com spider (owned by Huawei)
|
1649
|
+
- regex: 'Mozilla.*Mobile.*AspiegelBot'
|
1650
|
+
device_replacement: 'Spider'
|
1651
|
+
brand_replacement: 'Spider'
|
1652
|
+
model_replacement: 'Smartphone'
|
1653
|
+
- regex: 'Mozilla.*AspiegelBot'
|
1654
|
+
device_replacement: 'Spider'
|
1655
|
+
brand_replacement: 'Spider'
|
1656
|
+
model_replacement: 'Desktop'
|
1657
|
+
|
1571
1658
|
#########
|
1572
1659
|
# WebBrowser for SmartWatch
|
1573
1660
|
# @ref: https://play.google.com/store/apps/details?id=se.vaggan.webbrowser&hl=en
|
@@ -2866,6 +2953,15 @@ device_parsers:
|
|
2866
2953
|
brand_replacement: 'Iru'
|
2867
2954
|
model_replacement: '$1'
|
2868
2955
|
|
2956
|
+
#########
|
2957
|
+
# Itel Mobile
|
2958
|
+
# @ref: https://www.itel-mobile.com/global/products/
|
2959
|
+
#########
|
2960
|
+
- regex: '; *itel ([^;/]*)(?: Build|\) AppleWebKit)'
|
2961
|
+
device_replacement: 'Itel $1'
|
2962
|
+
brand_replacement: 'Itel'
|
2963
|
+
model_replacement: '$1'
|
2964
|
+
|
2869
2965
|
#########
|
2870
2966
|
# Ivio
|
2871
2967
|
# @ref: http://www.ivio.com/mobile.php
|
@@ -3463,6 +3559,10 @@ device_parsers:
|
|
3463
3559
|
device_replacement: '$1$2$3'
|
3464
3560
|
brand_replacement: 'Nokia'
|
3465
3561
|
model_replacement: '$3'
|
3562
|
+
- regex: '; *(TA\-\d{4})(?: Build|\) AppleWebKit)'
|
3563
|
+
device_replacement: 'Nokia $1'
|
3564
|
+
brand_replacement: 'Nokia'
|
3565
|
+
model_replacement: '$1'
|
3466
3566
|
|
3467
3567
|
#########
|
3468
3568
|
# Nook
|
@@ -3519,7 +3619,7 @@ device_parsers:
|
|
3519
3619
|
# Oppo
|
3520
3620
|
# @ref: http://en.oppo.com/products/
|
3521
3621
|
#########
|
3522
|
-
- regex: '; *(Find ?(?:5|7a)|R8[012]\d{1,2}|T703\d?|U70\d{1,2}T?|X90\d{1,2})(?: Build|\) AppleWebKit)'
|
3622
|
+
- regex: '; *(Find ?(?:5|7a)|R8[012]\d{1,2}|T703\d?|U70\d{1,2}T?|X90\d{1,2}|[AFR]\d{1,2}[a-z]{1,2})(?: Build|\) AppleWebKit)'
|
3523
3623
|
device_replacement: 'Oppo $1'
|
3524
3624
|
brand_replacement: 'Oppo'
|
3525
3625
|
model_replacement: '$1'
|
@@ -3527,6 +3627,13 @@ device_parsers:
|
|
3527
3627
|
device_replacement: 'Oppo $1'
|
3528
3628
|
brand_replacement: 'Oppo'
|
3529
3629
|
model_replacement: '$1'
|
3630
|
+
- regex: '; *(CPH\d{1,4}|RMX\d{1,4}|P[A-Z]{3}\d{2})(?: Build|\) AppleWebKit)'
|
3631
|
+
device_replacement: 'Oppo $1'
|
3632
|
+
brand_replacement: 'Oppo'
|
3633
|
+
- regex: '; *(A1601)(?: Build|\) AppleWebKit)'
|
3634
|
+
device_replacement: 'Oppo F1s'
|
3635
|
+
brand_replacement: 'Oppo'
|
3636
|
+
model_replacement: '$1'
|
3530
3637
|
|
3531
3638
|
#########
|
3532
3639
|
# Odys
|
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.7.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: 2020-
|
11
|
+
date: 2020-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple, comprehensive Ruby gem for parsing user agent strings with
|
14
14
|
the help of BrowserScope's UA database
|