user_agent_parser 2.6.0 → 2.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|