device_detector 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -5
- data/CHANGELOG.md +3 -0
- data/README.md +5 -5
- data/Rakefile +13 -0
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +89 -2
- data/regexes/client/browser_engine.yml +3 -0
- data/regexes/client/browsers.yml +325 -76
- data/regexes/client/feed_readers.yml +6 -0
- data/regexes/client/libraries.yml +9 -0
- data/regexes/client/mobile_apps.yml +40 -1
- data/regexes/client/pim.yml +5 -0
- data/regexes/device/mobiles.yml +1607 -431
- data/regexes/oss.yml +1 -1
- data/regexes/vendorfragments.yml +1 -1
- data/spec/device_detector/concrete_user_agent_spec.rb +16 -17
- data/spec/device_detector/device_spec.rb +25 -25
- data/spec/device_detector/memory_cache_spec.rb +19 -19
- data/spec/device_detector/model_extractor_spec.rb +3 -3
- data/spec/device_detector/version_extractor_spec.rb +5 -6
- data/spec/device_detector_spec.rb +26 -26
- data/spec/fixtures/client/browser.yml +655 -322
- data/spec/fixtures/client/feed_reader.yml +39 -45
- data/spec/fixtures/client/library.yml +24 -11
- data/spec/fixtures/client/mediaplayer.yml +29 -28
- data/spec/fixtures/client/mobile_app.yml +100 -41
- data/spec/fixtures/client/pim.yml +32 -19
- data/spec/fixtures/detector/bots.yml +140 -23
- data/spec/fixtures/detector/camera.yml +2 -2
- data/spec/fixtures/detector/console.yml +3 -3
- data/spec/fixtures/detector/desktop.yml +312 -73
- data/spec/fixtures/detector/feature_phone.yml +48 -0
- data/spec/fixtures/detector/feed_reader.yml +141 -126
- data/spec/fixtures/detector/mediaplayer.yml +39 -38
- data/spec/fixtures/detector/mobile_apps.yml +86 -85
- data/spec/fixtures/detector/phablet.yml +715 -236
- data/spec/fixtures/detector/portable_media_player.yml +17 -0
- data/spec/fixtures/detector/smartphone-1.yml +3534 -3512
- data/spec/fixtures/detector/smartphone-10.yml +3848 -6286
- data/spec/fixtures/detector/smartphone-11.yml +5548 -3298
- data/spec/fixtures/detector/smartphone-12.yml +8655 -0
- data/spec/fixtures/detector/smartphone-2.yml +3645 -3625
- data/spec/fixtures/detector/smartphone-3.yml +4099 -4176
- data/spec/fixtures/detector/smartphone-4.yml +3861 -3865
- data/spec/fixtures/detector/smartphone-5.yml +3991 -4037
- data/spec/fixtures/detector/smartphone-6.yml +4074 -4047
- data/spec/fixtures/detector/smartphone-7.yml +4355 -4362
- data/spec/fixtures/detector/smartphone-8.yml +4087 -4136
- data/spec/fixtures/detector/smartphone-9.yml +4420 -4408
- data/spec/fixtures/detector/smartphone.yml +2900 -2904
- data/spec/fixtures/detector/tablet-1.yml +3946 -3912
- data/spec/fixtures/detector/tablet-2.yml +3593 -3617
- data/spec/fixtures/detector/tablet-3.yml +2738 -85
- data/spec/fixtures/detector/tablet.yml +3604 -3616
- data/spec/fixtures/detector/tv.yml +131 -51
- data/spec/fixtures/detector/unknown.yml +64 -27
- data/spec/fixtures/device/camera.yml +4 -3
- data/spec/fixtures/device/car_browser.yml +3 -2
- data/spec/fixtures/device/console.yml +15 -14
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d05eccb050bff6aa4688bd53d886e93df0925d5e
|
4
|
+
data.tar.gz: a197886f998a925a7cdc9f0b238556cfec2cff96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fbece6531362b1125f35d8fb578e0e559bb003026cc7f2e45a72314fc416ef0cc3bc452baadd95f0ec2129c52f4211d1660a8c0268ecedb36b8c112a26be214
|
7
|
+
data.tar.gz: 5322208277526dbbfceb78924d6c15da242a7a5c958e89b6587bfc6c5b2904f5ae2e1b378c9e23022e743e4c5111c8654204dad409c9ec1fc59344bb853d97f5
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# DeviceDetector
|
2
2
|
|
3
|
-
![
|
3
|
+
[![Build Status](https://travis-ci.org/podigee/device_detector.svg?branch=develop)](https://travis-ci.org/podigee/device_detector)
|
4
4
|
|
5
5
|
DeviceDetector is a precise and fast user agent parser and device detector written in Ruby, backed by the largest and most up-to-date user agent database.
|
6
6
|
|
@@ -134,19 +134,19 @@ useragent 4.450000 0.000000 4.450000 ( 4.452741)
|
|
134
134
|
|
135
135
|
## Detectable clients, bots and devices
|
136
136
|
|
137
|
-
Updated on 2019-
|
137
|
+
Updated on 2019-12-09
|
138
138
|
|
139
139
|
### Bots
|
140
140
|
|
141
|
-
360Spider, Aboundexbot, Acoon, AddThis.com, ADMantX, aHrefs Bot, Alexa Crawler, Alexa Site Audit, Amorank Spider, Analytics SEO Crawler, ApacheBench, Applebot, Arachni, archive.org bot, Ask Jeeves, Backlink-Check.de, BacklinkCrawler, Baidu Spider, BazQux Reader, BingBot, BitlyBot, Blekkobot, BLEXBot Crawler, Bloglovin, Blogtrottr, Bountii Bot, Browsershots, BUbiNG, Butterfly Robot, CareerBot, Castro 2, Catchpoint, ccBot crawler, Charlotte, Cliqzbot, CloudFlare Always Online, CloudFlare AMP Fetcher, Collectd, CommaFeed, CSS Certificate Spider,
|
141
|
+
360Spider, Aboundexbot, Acoon, AddThis.com, ADMantX, aHrefs Bot, Alexa Crawler, Alexa Site Audit, Amazon Route53 Health Check, Amorank Spider, Analytics SEO Crawler, ApacheBench, Applebot, Arachni, archive.org bot, Ask Jeeves, Backlink-Check.de, BacklinkCrawler, Baidu Spider, BazQux Reader, BingBot, BitlyBot, Blekkobot, BLEXBot Crawler, Bloglovin, Blogtrottr, BoardReader Blog Indexer, Bountii Bot, Browsershots, BUbiNG, Butterfly Robot, CareerBot, Castro 2, Catchpoint, ccBot crawler, Charlotte, Cliqzbot, CloudFlare Always Online, CloudFlare AMP Fetcher, Collectd, CommaFeed, CSS Certificate Spider, Cốc Cốc Bot, Datadog Agent, Datanyze, Dataprovider, Daum, Dazoobot, Discobot, Domain Re-Animator Bot, DotBot, DuckDuckGo Bot, Easou Spider, eCairn-Grabber, EMail Exractor, EmailWolf, evc-batch, ExaBot, ExactSeek Crawler, Ezooms, Facebook External Hit, Feed Wrangler, Feedbin, FeedBurner, Feedly, Feedspot, Fever, Findxbot, Flipboard, FreshRSS, Generic Bot, Genieo Web filter, Gigablast, Gigabot, Gluten Free Crawler, Gmail Image Proxy, Goo, Google Favicon, Google PageSpeed Insights, Google Partner Monitoring, Google Search Console, Google Structured Data Testing Tool, Googlebot, Grapeshot, Heritrix, Heureka Feed, HTTPMon, HubPages, HubSpot, ICC-Crawler, ichiro, IIS Site Analysis, Inktomi Slurp, inoreader, IP-Guide Crawler, IPS Agent, Kouio, Larbin web crawler, Let's Encrypt Validation, Lighthouse, Linkdex Bot, LinkedIn Bot, LTX71, Lycos, Magpie-Crawler, MagpieRSS, Mail.Ru Bot, masscan, Mastodon Bot, Meanpath Bot, MetaInspector, MetaJobBot, Mixrank Bot, MJ12 Bot, Mnogosearch, MojeekBot, Monitor.Us, Munin, Nagios check_http, NalezenCzBot, nbertaupete95, Netcraft Survey Bot, netEstate, NetLyzer FastProbe, NetResearchServer, Netvibes, NewsBlur, NewsGator, NLCrawler, Nmap, Nutch-based Bot, Nuzzel, Octopus, Omgili bot, Openindex Spider, OpenLinkProfiler, OpenWebSpider, Orange Bot, Outbrain, PagePeeker, PaperLiBot, Phantomas, PHP Server Monitor, Picsearch bot, Pingdom Bot, Pinterest, PocketParser, Pompos, PritTorrent, QuerySeekerSpider, Quora Link Preview, Qwantify, Rainmeter, RamblerMail Image Proxy, Reddit Bot, Riddler, Rogerbot, ROI Hunter, RSSRadio Bot, SafeDNSBot, Scooter, ScoutJet, Scrapy, Screaming Frog SEO Spider, ScreenerBot, Semrush Bot, Sensika Bot, Sentry Bot, SEOENGBot, SEOkicks-Robot, Seoscanners.net, Server Density, Seznam Bot, Seznam Email Proxy, Seznam Zbozi.cz, ShopAlike, Shopify Partner, ShopWiki, SilverReader, SimplePie, SISTRIX Crawler, SISTRIX Optimizer, Site24x7 Website Monitoring, SiteSucker, Sixy.ch, Skype URI Preview, Slackbot, Snapchat Proxy, Sogou Spider, Soso Spider, Sparkler, Speedy, Spinn3r, Spotify, Sputnik Bot, sqlmap, SSL Labs, StatusCake, Superfeedr Bot, Survey Bot, Tarmot Gezgin, TelegramBot, The Knowledge AI, theoldreader, TinEye Crawler, Tiny Tiny RSS, TLSProbe, Trendiction Bot, TurnitinBot, TweetedTimes Bot, Tweetmeme Bot, Twingly Recon, Twitterbot, UkrNet Mail Proxy, UniversalFeedParser, Uptime Robot, Uptimebot, URLAppendBot, Vagabondo, Visual Site Mapper Crawler, VK Share Button, W3C CSS Validator, W3C I18N Checker, W3C Link Checker, W3C Markup Validation Service, W3C MobileOK Checker, W3C Unified Validator, Wappalyzer, WebbCrawler, WebPageTest, WebSitePulse, WebThumbnail, WeSEE:Search, Willow Internet Crawler, WordPress, Wotbox, YaCy, Yahoo Gemini, Yahoo! Cache System, Yahoo! Link Preview, Yahoo! Slurp, Yandex Bot, Yeti/Naverbot, Yottaa Site Monitor, Youdao Bot, Yourls, Yunyun Bot, Zao, zgrab, Zookabot, ZumBot
|
142
142
|
|
143
143
|
### Clients
|
144
144
|
|
145
|
-
360 Browser, 360 Phone Browser, ABrowse, aiohttp, Airmail, Akregator, Aloha Browser, Amaya, Amiga Aweb, Amiga Voyager, Amigo, Android Browser, AndroidDownloadManager, ANT Fresco, AntennaPod, ANTGalio, AOL Shield, Apple News, Apple PubSub, Arora, Atomic Web Browser, Audacious, Avant Browser, Avast Secure Browser, B-Line, Baidu Browser, Baidu Spark, Banshee, Barca, BashPodder, Beaker Browser, Beonex, BeyondPod, BlackBerry Browser, Boxee, bPod, Brave, Breaker, BriskBard, BrowseX, Bunjalloo, Camino, Castro, Castro 2, Charon, Cheshire, Chrome, Chrome Frame, Chrome Mobile, Chrome Mobile iOS, ChromePlus, Chromium, Clementine, Coast, Coc Coc, CometBird, Comodo Dragon, Conkeror, CoolNovo, Cunaguaro, curl, Cyberfox, DAVdroid, dbrowser, Deepnet Explorer, Deezer, Dillo, DoggCatcher, Dolphin, Dooble, Dorado, Downcast, Element Browser, Elinks, Epic, Espial TV Browser, Facebook, Facebook Messenger, Faraday, FeedDemon, Feeddler RSS Reader, FeedR, Fennec, Firebird, Firefox, Firefox Focus, Firefox Mobile, Firefox Rocket, Fireweb, Fireweb Navigator, Flock, Fluid, FlyCast, Foobar2000, Galeon, GNOME Web, Go-http-client, Google Earth, Google HTTP Java Client, Google Play Newsstand, Google Plus, gPodder, Guzzle (PHP HTTP Client), Headless Chrome, HotJava, HTTP_Request2, HTTPie, IBrowse, iCab, iCab Mobile, iCatcher, IceDragon, Iceweasel, IE Mobile, Instacast, Internet Explorer, Iridium, Iron, Isivioo, iTunes, Jasmine, Java, JetBrains Omea Reader, Jig Browser, K-meleon, Kapiko, Kazehakase, Kindle Browser, Kodi, Konqueror, Kylo, LG Browser, libdnf,
|
145
|
+
2345 Browser, 360 Browser, 360 Phone Browser, ABrowse, aiohttp, Airmail, Akregator, Aloha Browser, Amaya, Amiga Aweb, Amiga Voyager, Amigo, Android Browser, AndroidDownloadManager, ANT Fresco, AntennaPod, ANTGalio, AOL Shield, Apple News, Apple PubSub, Arora, Atomic Web Browser, Audacious, Avant Browser, Avast Secure Browser, B-Line, Baidu Box App, Baidu Browser, Baidu Spark, Banshee, Barca, BashPodder, Basilisk, Beaker Browser, Beonex, BeyondPod, BingWebApp, BlackBerry Browser, Boxee, bPod, Brave, Breaker, BriskBard, BrowseX, Bunjalloo, Camino, Castro, Castro 2, Charon, Cheetah Browser, Cheshire, Chrome, Chrome Frame, Chrome Mobile, Chrome Mobile iOS, Chrome Webview, ChromePlus, Chromium, Clementine, CM Browser, Coast, Coc Coc, CometBird, Comodo Dragon, Conkeror, CoolNovo, CrosswalkApp, Cunaguaro, curl, Cyberfox, DAVdroid, dbrowser, Deepnet Explorer, Deezer, Dillo, DoggCatcher, Dolphin, Dooble, Dorado, douban App, Downcast, DuckDuckGo Privacy Browser, Ecosia, Element Browser, Elinks, Epic, Espial TV Browser, Facebook, Facebook Messenger, Faraday, FeedDemon, Feeddler RSS Reader, FeedR, Fennec, Firebird, Firefox, Firefox Focus, Firefox Mobile, Firefox Mobile iOS, Firefox Rocket, Fireweb, Fireweb Navigator, Flipboard App, Flock, Fluid, FlyCast, Foobar2000, FreeU, Galeon, GNOME Web, Go-http-client, Google Earth, Google HTTP Java Client, Google Play Newsstand, Google Plus, Google Search App, gPodder, Guzzle (PHP HTTP Client), Hawk Turbo Browser, Headless Chrome, hola! Browser, HotJava, HTTP_Request2, HTTPie, Huawei Browser, IBrowse, iCab, iCab Mobile, iCatcher, IceCat, IceDragon, Iceweasel, IE Mobile, Instacast, Instagram App, Internet Explorer, Iridium, Iron, Iron Mobile, Isivioo, iTunes, Jasmine, Java, JetBrains Omea Reader, Jig Browser, Jio Browser, K-meleon, K.Browser, Kapiko, Kazehakase, Kindle Browser, Kiwi, Kodi, Konqueror, Kylo, LG Browser, libdnf, LieBaoFast, Liferea, Line, Links, Lotus Notes, LuaKit, Lunascape, Lynx, MailBar, Maxthon, Mechanize, MediaMonkey, Mercury, MicroB, Microsoft Edge, Microsoft Outlook, Midori, Mint Browser, Miro, MIUI Browser, Mobicip, Mobile Safari, Mobile Silk, NCSA Mosaic, NetFront, NetFront Life, NetNewsWire, NetPositive, Netscape, NetSurf, NewsArticle App, Newsbeuter, NewsBlur, NewsBlur Mobile App, NexPlayer, Nightingale, Nokia Browser, Nokia OSS Browser, Nokia Ovi Browser, Nox Browser, NTENT Browser, Obigo, Oculus Browser, Odyssey Web Browser, Off By One, OkHttp, OmniWeb, ONE Browser, Openwave Mobile Browser, Opera, Opera Devices, Opera Mini, Opera Mini iOS, Opera Mobile, Opera Neon, Opera Next, Opera Touch, Oppo Browser, Oregano, Otter Browser, Outlook Express, Overcast, Pale Moon, Palm Blazer, Palm Pre, Palm WebPro, Palmscape, Perl, Phoenix, Pinterest, Player FM, Pocket Casts, Podcast & Radio Addict, Podcast Republic, Podcasts, Podcat, Podcatcher Deluxe, Podkicker, Polaris, Polarity, Postbox, PritTorrent, Puffin, Pulp, Python Requests, Python urllib, QQ Browser, QQ Browser Mini, QtWebEngine, QuickTime, QuiteRSS, QupZilla, Qutebrowser, Qwant Mobile, ReadKit, Realme Browser, Reeder, Rekonq, REST Client for Ruby, RestSharp, RockMelt, RSS Bandit, RSS Junkie, RSSOwl, RSSRadio, Safari, Sailfish Browser, Samsung Browser, SeaMonkey, SEMC-Browser, Seraphic Sraf, Seznam Browser, Shiira, Sina Weibo, Skyfire, Sleipnir, Snowshoe, Sogou Explorer, Sogou Mobile Browser, SogouSearch App, Songbird, Sputnik Browser, Stagefright, Streamy, Stringer, SubStream, Sunrise, SuperBird, Swiftfox, TenFourFox, Tenta Browser, The Bat!, Thunderbird, tieba, Tizen Browser, TweakStyle, UC Browser, UC Browser Mini, urlgrabber (yum), Vision Mobile Browser, Vivaldi, vivo Browser, VLC, Waterfox, Web Explorer, WebPositive, WeChat, WeTab Browser, Wget, Whale Browser, WhatsApp, Winamp, Windows Media Player, wOSBrowser, WWW-Mechanize, XBMC, Xiino, Yahoo! Japan, Yandex Browser, Yandex Browser Lite, Yelp Mobile, YouTube
|
146
146
|
|
147
147
|
### Devices
|
148
148
|
|
149
|
-
3Q, 4Good, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, Aiwa, Akai, Alcatel, AllCall, Allview, Altech UEC, altron, Amazon, AMGOO, Amoi, ANS, Apple, Archos, Arian Space, Ark, Arnova, ARRIS, Ask, Assistant, Asus, Audiovox, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, BGH, Bird, Bitel, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, CnM, Coby Kyros, Comio, Compal, ComTrade Tesla, Concord, ConCorde, Condor, Coolpad, Cowon, CreNova, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, Cyrus, Danew, Datang, Datsun, Dbtel, Dell, Denver, Desay, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Dune HD, E-Boda, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Elenberg, Elephone, Energizer, Energy Sistem, Ergo, Ericsson, Ericy, Essential, Essentielb, Eton, eTouch, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, FiGO, FinePower, Fly, FNB, Fondi, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gemini, Geotel, Ghia, Gigabyte, Gigaset, Ginzzu, Gionee, GOCLEVER, Goly, GoMobile, Google, Gradiente, Grape, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Hisense, Homtom, Hoozo, Hosin, HP, HTC, Huawei, Humax, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iHunt, Ikea, iKoMo, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Intek, Intex, Inverto, iOcean, iPro, Irbis, iRola, iTel, iView, JAY-Tech, Jiayu, Jolla, Just5, K-Touch, Kalley, Karbonn, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, KOPO, Koridy, KRONO,
|
149
|
+
3Q, 4Good, Acer, Advan, Advance, AGM, Ainol, Airness, Airties, AIS, Aiwa, Akai, Alcatel, AllCall, Allview, Allwinner, Altech UEC, altron, Amazon, AMGOO, Amoi, ANS, Apple, Archos, Arian Space, Ark, Arnova, ARRIS, Ask, Assistant, Asus, Audiovox, AVH, Avvio, Axxion, Azumi Mobile, BangOlufsen, Barnes & Noble, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, BGH, Bird, Bitel, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Casper, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Clarmin, CnM, Coby Kyros, Comio, Compal, ComTrade Tesla, Concord, ConCorde, Condor, Coolpad, Cowon, CreNova, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, Cyrus, Danew, Datang, Datsun, Dbtel, Dell, Denver, Desay, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, DMM, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Dune HD, E-Boda, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Elenberg, Elephone, Energizer, Energy Sistem, Ergo, Ericsson, Ericy, Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, Fly, FNB, Fondi, FORME, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asus, Gemini, Geotel, Ghia, Gigabyte, Gigaset, Ginzzu, Gionee, GOCLEVER, Goly, GoMobile, Google, Gradiente, Grape, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Hisense, Hoffmann, Homtom, Hoozo, Hosin, HP, HTC, Huawei, Humax, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iHunt, Ikea, iKoMo, iLA, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intek, Intex, Inverto, iOcean, iPro, Irbis, iRola, iTel, iView, JAY-Tech, Jiayu, Jolla, Just5, K-Touch, Kaan, Kalley, Karbonn, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Le Pan, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Lephone, Lexand, Lexibook, LG, Lingwin, Loewe, Logicom, Lumus, LYF, M.T.T., M4tel, Majestic, Manta Multimedia, Masstel, Maxwest, Maze, Mecer, Mecool, Mediacom, MediaTek, Medion, MEEG, MegaFon, Meitu, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Mio, Miray, Mitsubishi, MIXC, MLLED, Mobicel, Mobiistar, Mobiola, Mobistel, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, MYFON, MyPhone, Myria, MyWigo, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, NEXBOX, Nexian, Nextbit, NextBook, NGM, Nikon, Nintendo, NOA, Noain, Nobby, Noblex, Nokia, Nomi, Nous, NUU Mobile, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, OPPO, Opsson, Orange, Ouki, OUYA, Overmax, Oysters, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD, PCD Argentina, PEAQ, Pentagram, Philips, phoneOne, Pioneer, Pixus, Ployer, Plum, Point of View, Polaroid, PolyPad, Polytron, Pomp, Positivo, PPTV, Prestigio, Primepad, ProScan, PULID, Q-Touch, Qilive, QMobile, Qtek, Quantum, Quechua, R-TV, Ramos, RCA Tablets, Readboy, Rikomagic, RIM, Rinno, Ritmix, Riviera, Rokit, Roku, Rombica, Ross&Moor, Rover, RT Project, Safaricom, Sagem, Samsung, Sanei, Santin BiTBiZ, Sanyo, Savio, Sega, Selevision, Selfix, Sencor, Sendo, Senseit, Senwa, SFR, Sharp, Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smart, Smartfren, Smartisan, Softbank, Sonim, Sony, Spice, Star, Starway, STF Mobile, STK, Stonex, Storex, Sumvision, SunVan, SuperSonic, Supra, SWISSMOBILITY, Symphony, Syrox, T-Mobile, TB Touch, TCL, TechniSat, TechnoTrend, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, Timovi, TiPhone, Tolino, Tooky, Top House, Toplux, Toshiba, Touchmate, TrekStor, Trevi, True, Tunisie Telecom, Turbo-X, TVC, U.S. Cellular, Uhappy, Ulefone, UMIDIGI, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK, UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vestel, VGO TEL, Videocon, Videoweb, ViewSonic, Vinsoc, Vitelcom, Vivax, Vivo, Vizio, VK Mobile, Vodafone, Vonino, Vorago, Voto, Voxtel, Vulcan, Walton, Weimei, WellcoM, Wexler, Wiko, Wileyfox, Wink, Wolder, Wolfgang, Wonu, Woo, Woxter, X-TIGI, X-View, Xiaolajiao, Xiaomi, Xion, Xolo, Yandex, Yarvik, Yes, Yezz, Ytone, Yu, Yuandao, Yusun, Zeemi, Zen, Zenek, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ, öwn
|
150
150
|
|
151
151
|
## Maintainers
|
152
152
|
|
data/Rakefile
CHANGED
@@ -63,6 +63,19 @@ task :update_regexes do
|
|
63
63
|
system "cp -R #{PIWIK_CHECKOUT_LOCATION}/regexes/* #{top}/regexes"
|
64
64
|
end
|
65
65
|
|
66
|
+
desc 'fix regexes that are broken because of a bug in ruby'
|
67
|
+
task :fix_regexes do
|
68
|
+
# fix broken regexes: https://github.com/podigee/device_detector/issues/65
|
69
|
+
|
70
|
+
# modify regex to bypass ruby bug
|
71
|
+
system "sed -i '' 's/\|ImSmart \|ERGO \|X-Style Tab //g' regexes/device/mobiles.yml"
|
72
|
+
|
73
|
+
# remove fixtures that test that regex
|
74
|
+
system "sed -i '' '/X-Style Tab A101/,/^-/{d;};' spec/fixtures/**/*.yml"
|
75
|
+
system "sed -i '' '/ERGO A500 Best Build/,/^-/{d;};' spec/fixtures/**/*.yml"
|
76
|
+
system "sed -i '' '/ImSmart A501 Build.KOT49H/,/^-/{d;};' spec/fixtures/**/*.yml"
|
77
|
+
end
|
78
|
+
|
66
79
|
desc 'update fixtures from piwik project'
|
67
80
|
task :update_fixtures do
|
68
81
|
top = File.expand_path(__dir__)
|
data/regexes/bots.yml
CHANGED
@@ -61,6 +61,13 @@
|
|
61
61
|
name: 'Alexa Internet'
|
62
62
|
url: 'http://www.alexa.com'
|
63
63
|
|
64
|
+
- regex: 'Amazon[ -]Route ?53[ -]Health[ -]Check[ -]Service'
|
65
|
+
name: 'Amazon Route53 Health Check'
|
66
|
+
category: 'Service Agent'
|
67
|
+
producer:
|
68
|
+
name: 'Amazon Web Services'
|
69
|
+
url: 'https://aws.amazon.com/'
|
70
|
+
|
64
71
|
- regex: 'AmorankSpider'
|
65
72
|
name: 'Amorank Spider'
|
66
73
|
category: 'Crawler'
|
@@ -197,6 +204,13 @@
|
|
197
204
|
name: 'Blogtrottr Ltd'
|
198
205
|
url: 'https://blogtrottr.com/'
|
199
206
|
|
207
|
+
- regex: 'BoardReader Blog Indexer'
|
208
|
+
name: 'BoardReader Blog Indexer'
|
209
|
+
category: 'Crawler'
|
210
|
+
producer:
|
211
|
+
name: 'BoardReader'
|
212
|
+
url: 'http://boardreader.com/'
|
213
|
+
|
200
214
|
- regex: 'BountiiBot'
|
201
215
|
name: 'Bountii Bot'
|
202
216
|
category: 'Search bot'
|
@@ -309,6 +323,15 @@
|
|
309
323
|
name: 'Datadog'
|
310
324
|
url: 'https://www.datadoghq.com/'
|
311
325
|
|
326
|
+
- regex: 'Datanyze'
|
327
|
+
name: 'Datanyze'
|
328
|
+
url: ''
|
329
|
+
category: 'Crawler'
|
330
|
+
producer:
|
331
|
+
name: 'Datanyze'
|
332
|
+
url: 'https://www.datanyze.com'
|
333
|
+
|
334
|
+
|
312
335
|
- regex: 'Dataprovider'
|
313
336
|
name: 'Dataprovider'
|
314
337
|
category: 'Crawler'
|
@@ -357,7 +380,7 @@
|
|
357
380
|
name: 'SEOmoz, Inc.'
|
358
381
|
url: 'http://moz.com/'
|
359
382
|
|
360
|
-
- regex: 'DuckDuck'
|
383
|
+
- regex: 'DuckDuck(?:Go-Favicons-)?Bot'
|
361
384
|
name: 'DuckDuckGo Bot'
|
362
385
|
category: 'Search bot'
|
363
386
|
url: 'https://duckduckgo.com/duckduckbot'
|
@@ -373,6 +396,13 @@
|
|
373
396
|
name: 'easou ICP'
|
374
397
|
url: 'http://www.easou.com'
|
375
398
|
|
399
|
+
- regex: 'eCairn-Grabber'
|
400
|
+
name: 'eCairn-Grabber'
|
401
|
+
category: 'Crawler'
|
402
|
+
producer:
|
403
|
+
name: 'eCairn'
|
404
|
+
url: 'https://ecairn.com'
|
405
|
+
|
376
406
|
- regex: 'EMail Exractor'
|
377
407
|
name: 'EMail Exractor'
|
378
408
|
category: 'Crawler'
|
@@ -482,6 +512,11 @@
|
|
482
512
|
category: 'Crawler'
|
483
513
|
url: 'http://www.findxbot.com'
|
484
514
|
|
515
|
+
- regex: 'FreshRSS'
|
516
|
+
name: 'FreshRSS'
|
517
|
+
category: 'Feed Fetcher'
|
518
|
+
url: 'https://freshrss.org/'
|
519
|
+
|
485
520
|
- regex: 'Genieo'
|
486
521
|
name: 'Genieo Web filter'
|
487
522
|
category: ''
|
@@ -514,6 +549,10 @@
|
|
514
549
|
name: 'NTT Resonant'
|
515
550
|
url: 'http://goo.ne.jp'
|
516
551
|
|
552
|
+
- regex: 'Google Favicon'
|
553
|
+
name: 'Google Favicon'
|
554
|
+
category: 'Crawler'
|
555
|
+
|
517
556
|
- regex: 'Google Search Console'
|
518
557
|
name: 'Google Search Console'
|
519
558
|
category: 'Crawler'
|
@@ -626,6 +665,11 @@
|
|
626
665
|
name: ''
|
627
666
|
url: ''
|
628
667
|
|
668
|
+
- regex: 'inoreader.com'
|
669
|
+
name: 'inoreader'
|
670
|
+
category: 'Feed Reader'
|
671
|
+
url: 'https://www.inoreader.com'
|
672
|
+
|
629
673
|
- regex: 'iisbot'
|
630
674
|
name: 'IIS Site Analysis'
|
631
675
|
category: 'Crawler'
|
@@ -808,6 +852,10 @@
|
|
808
852
|
name: 'Nagios Plugins Development Team'
|
809
853
|
url: 'https://nagios.org'
|
810
854
|
|
855
|
+
- regex: 'nbertaupete95\(at\)gmail.com'
|
856
|
+
name: 'nbertaupete95'
|
857
|
+
category: 'Crawler'
|
858
|
+
|
811
859
|
- regex: 'Netcraft( Web Server Survey| SSL Server Survey|SurveyAgent)'
|
812
860
|
name: 'Netcraft Survey Bot'
|
813
861
|
category: 'Search bot'
|
@@ -818,7 +866,7 @@
|
|
818
866
|
|
819
867
|
- regex: 'netEstate NE Crawler'
|
820
868
|
name: 'netEstate'
|
821
|
-
category: '
|
869
|
+
category: 'Crawler'
|
822
870
|
url: 'http://www.website-datenbank.de/Impressum'
|
823
871
|
producer:
|
824
872
|
name: 'netEstate GmbH'
|
@@ -864,6 +912,13 @@
|
|
864
912
|
name: 'Nmap'
|
865
913
|
url: 'https://nmap.org/'
|
866
914
|
|
915
|
+
- regex: 'Nuzzel'
|
916
|
+
name: 'Nuzzel'
|
917
|
+
category: 'Crawler'
|
918
|
+
producer:
|
919
|
+
name: 'Nuzzel'
|
920
|
+
url: https://www.nuzzel.com/
|
921
|
+
|
867
922
|
- regex: 'Octopus [0-9]'
|
868
923
|
name: 'Octopus'
|
869
924
|
|
@@ -1111,6 +1166,14 @@
|
|
1111
1166
|
name: 'Seznam.cz, a.s.'
|
1112
1167
|
url: 'http://www.seznam.cz/'
|
1113
1168
|
|
1169
|
+
- regex: 'shopify-partner-homepage-scraper'
|
1170
|
+
name: 'Shopify Partner'
|
1171
|
+
category: 'Crawler'
|
1172
|
+
url: 'https://www.shopify.com/partners'
|
1173
|
+
producer:
|
1174
|
+
name: 'Shopify'
|
1175
|
+
url: 'https://www.shopify.com/'
|
1176
|
+
|
1114
1177
|
- regex: 'ShopWiki'
|
1115
1178
|
name: 'ShopWiki'
|
1116
1179
|
category: 'Search tools'
|
@@ -1143,6 +1206,14 @@
|
|
1143
1206
|
name: 'SISTRIX GmbH'
|
1144
1207
|
url: 'http://www.sistrix.de'
|
1145
1208
|
|
1209
|
+
- regex: 'SISTRIX Optimizer'
|
1210
|
+
name: 'SISTRIX Optimizer'
|
1211
|
+
category: 'Crawler'
|
1212
|
+
url: 'https://optimizer.sistrix.com'
|
1213
|
+
producer:
|
1214
|
+
name: 'SISTRIX GmbH'
|
1215
|
+
url: 'http://www.sistrix.de'
|
1216
|
+
|
1146
1217
|
- regex: 'SiteSucker'
|
1147
1218
|
name: 'SiteSucker'
|
1148
1219
|
category: 'Crawler'
|
@@ -1274,6 +1345,11 @@
|
|
1274
1345
|
name: ''
|
1275
1346
|
url: ''
|
1276
1347
|
|
1348
|
+
- regex: 'theoldreader.com'
|
1349
|
+
name: 'theoldreader'
|
1350
|
+
category: 'Feed Reader'
|
1351
|
+
url: 'https://theoldreader.com'
|
1352
|
+
|
1277
1353
|
- regex: 'trendictionbot'
|
1278
1354
|
name: 'Trendiction Bot'
|
1279
1355
|
category: 'Crawler'
|
@@ -1306,6 +1382,13 @@
|
|
1306
1382
|
name: 'Mediasift'
|
1307
1383
|
url: ''
|
1308
1384
|
|
1385
|
+
- regex: 'Twingly Recon'
|
1386
|
+
name: 'Twingly Recon'
|
1387
|
+
category: 'Crawler'
|
1388
|
+
producer:
|
1389
|
+
name: 'Twingly'
|
1390
|
+
url: 'https://www.twingly.com'
|
1391
|
+
|
1309
1392
|
- regex: 'Twitterbot'
|
1310
1393
|
name: 'Twitterbot'
|
1311
1394
|
category: 'Social Media Agent'
|
@@ -1737,6 +1820,10 @@
|
|
1737
1820
|
name: 'Spotify'
|
1738
1821
|
url: 'https://www.spotify.com'
|
1739
1822
|
|
1823
|
+
- regex: 'The Knowledge AI'
|
1824
|
+
name: 'The Knowledge AI'
|
1825
|
+
category: 'Crawler'
|
1826
|
+
|
1740
1827
|
# Generic detections
|
1741
1828
|
|
1742
1829
|
- regex: 'Nutch'
|
data/regexes/client/browsers.yml
CHANGED
@@ -5,6 +5,82 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
# Hawk Turbo Browser
|
9
|
+
- regex: 'Hawk/TurboBrowser(?:/v?(\d+[\.\d]+))?'
|
10
|
+
name: 'Hawk Turbo Browser'
|
11
|
+
version: '$1'
|
12
|
+
engine:
|
13
|
+
default: 'Blink'
|
14
|
+
|
15
|
+
# FreeU (https://freeu.online/)
|
16
|
+
- regex: 'FreeU(?:/(\d+[\.\d]+))?'
|
17
|
+
name: 'FreeU'
|
18
|
+
version: '$1'
|
19
|
+
engine:
|
20
|
+
default: 'Blink'
|
21
|
+
|
22
|
+
# Nox Browser (https://play.google.com/store/apps/details?id=com.noxgroup.app.browser)
|
23
|
+
- regex: 'NoxBrowser(?:/(\d+[\.\d]+))?'
|
24
|
+
name: 'Nox Browser'
|
25
|
+
version: '$1'
|
26
|
+
engine:
|
27
|
+
default: 'Blink'
|
28
|
+
|
29
|
+
# Basilisk (https://www.basilisk-browser.org/)
|
30
|
+
- regex: 'Basilisk(?:/(\d+[\.\d]+))?'
|
31
|
+
name: 'Basilisk'
|
32
|
+
version: '$1'
|
33
|
+
engine:
|
34
|
+
default: 'Gecko'
|
35
|
+
|
36
|
+
# Sputnik Browser (https://play.google.com/store/apps/details?id=ru.sputnik.browser)
|
37
|
+
- regex: 'SputnikBrowser(?:/(\d+[\.\d]+))?'
|
38
|
+
name: 'Sputnik Browser'
|
39
|
+
version: '$1'
|
40
|
+
engine:
|
41
|
+
default: 'Blink'
|
42
|
+
|
43
|
+
# K.Browser (https://play.google.com/store/apps/details?id=com.tnsua.browser)
|
44
|
+
- regex: 'TNSBrowser(?:/(\d+[\.\d]+))?'
|
45
|
+
name: 'K.Browser'
|
46
|
+
version: '$1'
|
47
|
+
engine:
|
48
|
+
default: 'Blink'
|
49
|
+
|
50
|
+
# Oculus Browser (https://developer.oculus.com/documentation/oculus-browser/latest/concepts/)
|
51
|
+
- regex: 'OculusBrowser(?:/(\d+[\.\d]+))?'
|
52
|
+
name: 'Oculus Browser'
|
53
|
+
version: '$1'
|
54
|
+
|
55
|
+
# Jio Browser (https://play.google.com/store/apps/details?id=com.jio.web)
|
56
|
+
- regex: 'JioBrowser(?:/(\d+[\.\d]+))?'
|
57
|
+
name: 'Jio Browser'
|
58
|
+
version: '$1'
|
59
|
+
engine:
|
60
|
+
default: 'Blink'
|
61
|
+
|
62
|
+
# hola! Browser (https://hola.org/browser)
|
63
|
+
- regex: 'Hola(?:/(\d+[\.\d]+))?'
|
64
|
+
name: 'hola! Browser'
|
65
|
+
version: '$1'
|
66
|
+
engine:
|
67
|
+
default: 'Blink'
|
68
|
+
|
69
|
+
# Huawei Browser
|
70
|
+
- regex: 'HuaweiBrowser(?:/(\d+[\.\d]+))?'
|
71
|
+
name: 'Huawei Browser'
|
72
|
+
version: '$1'
|
73
|
+
|
74
|
+
# vivo Browser
|
75
|
+
- regex: 'VivoBrowser(?:/(\d+[\.\d]+))?'
|
76
|
+
name: 'vivo Browser'
|
77
|
+
version: '$1'
|
78
|
+
|
79
|
+
# Realme Browser
|
80
|
+
- regex: 'RealmeBrowser(?:/(\d+[\.\d]+))?'
|
81
|
+
name: 'Realme Browser'
|
82
|
+
version: '$1'
|
83
|
+
|
8
84
|
# Beaker distributed web browser (https://beakerbrowser.com/)
|
9
85
|
- regex: 'Beaker ?Browser(?:[/ ](\d+[\.\d]+))?'
|
10
86
|
name: 'Beaker Browser'
|
@@ -18,6 +94,11 @@
|
|
18
94
|
version: '$1'
|
19
95
|
engine:
|
20
96
|
default: 'Gecko'
|
97
|
+
- regex: 'Qwant/(\d+[\.\d]+)'
|
98
|
+
name: 'Qwant Mobile'
|
99
|
+
version: '$1'
|
100
|
+
engine:
|
101
|
+
default: 'Gecko'
|
21
102
|
|
22
103
|
# TenFourFox
|
23
104
|
- regex: 'TenFourFox(?:/(\d+[\.\d]+))?'
|
@@ -80,10 +161,17 @@
|
|
80
161
|
engine:
|
81
162
|
default: 'Gecko'
|
82
163
|
|
83
|
-
#
|
84
|
-
- regex: '(
|
85
|
-
name: '
|
86
|
-
version: '$
|
164
|
+
# IceCat
|
165
|
+
- regex: 'IceCat(?:/(\d+[\.\d]+))?'
|
166
|
+
name: 'IceCat'
|
167
|
+
version: '$1'
|
168
|
+
engine:
|
169
|
+
default: 'Gecko'
|
170
|
+
|
171
|
+
# Mobicip
|
172
|
+
- regex: 'Mobicip'
|
173
|
+
name: 'Mobicip'
|
174
|
+
version: ''
|
87
175
|
engine:
|
88
176
|
default: 'Gecko'
|
89
177
|
|
@@ -112,7 +200,7 @@
|
|
112
200
|
version: '$1'
|
113
201
|
|
114
202
|
#Epic
|
115
|
-
- regex: 'Epic(?:/(\d+[\.\d]+))
|
203
|
+
- regex: 'Epic(?:/(\d+[\.\d]+))'
|
116
204
|
name: 'Epic'
|
117
205
|
version: '$1'
|
118
206
|
engine:
|
@@ -275,28 +363,38 @@
|
|
275
363
|
default: 'Gecko'
|
276
364
|
|
277
365
|
#Firefox Mobile
|
278
|
-
- regex: '(Mobile|Tablet).*Firefox(?:/(\d+[\.\d]+))?'
|
366
|
+
- regex: '(?:Mobile|Tablet).*Servo.*Firefox(?:/(\d+[\.\d]+))?'
|
367
|
+
name: 'Firefox Mobile'
|
368
|
+
version: '$1'
|
369
|
+
engine:
|
370
|
+
default: 'Servo'
|
371
|
+
- regex: '(?:Mobile|Tablet).*Firefox(?:/(\d+[\.\d]+))?'
|
279
372
|
name: 'Firefox Mobile'
|
280
|
-
version: '$
|
373
|
+
version: '$1'
|
281
374
|
engine:
|
282
375
|
default: 'Gecko'
|
376
|
+
- regex: 'FxiOS/(\d+[\.\d]+)'
|
377
|
+
name: 'Firefox Mobile iOS'
|
378
|
+
version: '$1'
|
379
|
+
engine:
|
380
|
+
default: 'WebKit'
|
283
381
|
|
284
382
|
#Firefox
|
383
|
+
- regex: '.*Servo.*Firefox(?:/(\d+[\.\d]+))?'
|
384
|
+
name: 'Firefox'
|
385
|
+
version: '$1'
|
386
|
+
engine:
|
387
|
+
default: 'Servo'
|
285
388
|
- regex: 'Firefox(?:/(\d+[\.\d]+))?'
|
286
389
|
name: 'Firefox'
|
287
390
|
version: '$1'
|
288
391
|
engine:
|
289
392
|
default: 'Gecko'
|
290
|
-
- regex: '(BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)/(\d+[\.\d]+)'
|
393
|
+
- regex: '(?:BonEcho|GranParadiso|Lorentz|Minefield|Namoroka|Shiretoko)/(\d+[\.\d]+)'
|
291
394
|
name: 'Firefox'
|
292
|
-
version: '$1
|
395
|
+
version: '$1'
|
293
396
|
engine:
|
294
397
|
default: 'Gecko'
|
295
|
-
- regex: 'FxiOS/(\d+[\.\d]+)'
|
296
|
-
name: 'Firefox Mobile'
|
297
|
-
version: 'iOS $1'
|
298
|
-
engine:
|
299
|
-
default: 'WebKit'
|
300
398
|
|
301
399
|
#ANT Fresco
|
302
400
|
- regex: 'ANTFresco(?:[/ ](\d+[\.\d]+))?'
|
@@ -352,6 +450,29 @@
|
|
352
450
|
name: 'Dooble'
|
353
451
|
version: '$1'
|
354
452
|
|
453
|
+
# Whale
|
454
|
+
- regex: 'Whale/(\d+[\.\d]+)'
|
455
|
+
name: 'Whale Browser'
|
456
|
+
version: '$1'
|
457
|
+
engine:
|
458
|
+
default: 'Blink'
|
459
|
+
|
460
|
+
#Obigo
|
461
|
+
- regex: 'Obigo[ ]?(?:InternetBrowser|Browser)?(?:[ /]([a-z0-9]*))?'
|
462
|
+
name: 'Obigo'
|
463
|
+
version: '$1'
|
464
|
+
- regex: 'Obigo|Teleca'
|
465
|
+
name: 'Obigo'
|
466
|
+
version: ''
|
467
|
+
|
468
|
+
#UC Browser Mini
|
469
|
+
- regex: 'UCMini(?:[ /]?(\d+[\.\d]+))?'
|
470
|
+
name: 'UC Browser Mini'
|
471
|
+
version: '$1'
|
472
|
+
- regex: 'UC[ ]?Browser.* \(UCMini\)'
|
473
|
+
name: 'UC Browser Mini'
|
474
|
+
version: ''
|
475
|
+
|
355
476
|
#Opera
|
356
477
|
- regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
|
357
478
|
name: 'Opera Mobile'
|
@@ -360,9 +481,21 @@
|
|
360
481
|
default: 'Presto'
|
361
482
|
versions:
|
362
483
|
15: 'Blink'
|
363
|
-
- regex: '
|
484
|
+
- regex: 'MMS/(\d+[\.\d]+)'
|
485
|
+
name: 'Opera Neon'
|
486
|
+
version: '$1'
|
487
|
+
engine:
|
488
|
+
default: 'Blink'
|
489
|
+
- regex: 'OMI/(\d+[\.\d]+)'
|
490
|
+
name: 'Opera Devices'
|
491
|
+
version: '$1'
|
492
|
+
engine:
|
493
|
+
default: 'Blink'
|
494
|
+
- regex: 'OPT/(\d+[\.\d]+)'
|
364
495
|
name: 'Opera Touch'
|
365
496
|
version: '$1'
|
497
|
+
engine:
|
498
|
+
default: 'Blink'
|
366
499
|
- regex: 'Opera/(\d+[\.\d]+).+Opera Mobi'
|
367
500
|
name: 'Opera Mobile'
|
368
501
|
version: '$1'
|
@@ -380,6 +513,11 @@
|
|
380
513
|
version: '$1'
|
381
514
|
engine:
|
382
515
|
default: 'Presto'
|
516
|
+
- regex: 'OPiOS/(\d+[\.\d]+)'
|
517
|
+
name: 'Opera Mini iOS'
|
518
|
+
version: '$1'
|
519
|
+
engine:
|
520
|
+
default: 'WebKit'
|
383
521
|
- regex: 'Opera.+Edition Next.+Version/(\d+[\.\d]+)'
|
384
522
|
name: 'Opera Next'
|
385
523
|
version: '$1'
|
@@ -419,7 +557,7 @@
|
|
419
557
|
default: '' # multi engine
|
420
558
|
|
421
559
|
#Comodo Dragon
|
422
|
-
- regex: 'Comodo[ _]Dragon(?:/(\d+[\.\d]+))?'
|
560
|
+
- regex: '(?:Comodo[ _])?Dragon(?!fruit)(?:/(\d+[\.\d]+))?'
|
423
561
|
name: 'Comodo Dragon'
|
424
562
|
version: '$1'
|
425
563
|
engine:
|
@@ -454,16 +592,26 @@
|
|
454
592
|
- regex: 'baidubrowser(?:[/ ](\d+[\.\d]*))?'
|
455
593
|
name: 'Baidu Browser'
|
456
594
|
version: '$1'
|
595
|
+
- regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
|
596
|
+
name: 'Baidu Browser'
|
597
|
+
version: '$1'
|
457
598
|
|
458
599
|
#Baidu Spark
|
459
600
|
- regex: '(?:(?:BD)?Spark|BIDUBrowser)[/ ](\d+[\.\d]*)'
|
460
601
|
name: 'Baidu Spark'
|
461
602
|
version: '$1'
|
462
603
|
|
604
|
+
# Yandex Browser Lite
|
605
|
+
- regex: 'YaBrowser(?:/(\d+[\.\d]*)) \(lite\)?'
|
606
|
+
name: 'Yandex Browser Lite'
|
607
|
+
version: '$1'
|
608
|
+
engine:
|
609
|
+
default: 'Blink'
|
610
|
+
|
463
611
|
#Yandex Browser
|
464
|
-
- regex: 'YaBrowser(?:/(\d+[\.\d]*))?'
|
612
|
+
- regex: 'YaBrowser(?:/(\d+[\.\d]*))(?: \((alpha|beta)\))?'
|
465
613
|
name: 'Yandex Browser'
|
466
|
-
version: '$1'
|
614
|
+
version: '$1 $2'
|
467
615
|
engine:
|
468
616
|
default: 'Blink'
|
469
617
|
|
@@ -513,6 +661,13 @@
|
|
513
661
|
name: 'Puffin'
|
514
662
|
version: '$1'
|
515
663
|
|
664
|
+
#MobileIron
|
665
|
+
- regex: 'MobileIron(?:/(\d+[\.\d]+))?'
|
666
|
+
name: 'Iron Mobile'
|
667
|
+
version: '$1'
|
668
|
+
engine:
|
669
|
+
default: 'Blink'
|
670
|
+
|
516
671
|
#Iron
|
517
672
|
- regex: 'Iron(?:/(\d+[\.\d]+))?'
|
518
673
|
name: 'Iron'
|
@@ -532,9 +687,14 @@
|
|
532
687
|
'2.9.16': '' # multi engine
|
533
688
|
'2.28': 'WebKit'
|
534
689
|
|
535
|
-
#
|
690
|
+
# LieBaoFast
|
691
|
+
- regex: 'LieBaoFast(?:[ /](\d+[\.\d]+))?'
|
692
|
+
name: 'LieBaoFast'
|
693
|
+
version: '$1'
|
694
|
+
|
695
|
+
# Cheetah Browser
|
536
696
|
- regex: 'LBBrowser(?:[ /](\d+[\.\d]+))?'
|
537
|
-
name: '
|
697
|
+
name: 'Cheetah Browser'
|
538
698
|
version: '$1'
|
539
699
|
|
540
700
|
# Sogou Explorer
|
@@ -542,15 +702,26 @@
|
|
542
702
|
name: 'Sogou Explorer'
|
543
703
|
version: '$1'
|
544
704
|
|
705
|
+
# QQ Browser Mini
|
706
|
+
- regex: 'M?QQBrowser/Mini([\.\d]+)?'
|
707
|
+
name: 'QQ Browser Mini'
|
708
|
+
version: '$1'
|
709
|
+
engine:
|
710
|
+
default: '' # multi engine -- WebKit or Blink
|
711
|
+
|
545
712
|
# QQ Browser
|
546
|
-
- regex: 'M?QQBrowser(?:/(
|
713
|
+
- regex: 'M?QQBrowser(?:/([\.\d]+))?'
|
547
714
|
name: 'QQ Browser'
|
548
715
|
version: '$1'
|
716
|
+
engine:
|
717
|
+
default: '' # multi engine -- WebKit or Blink
|
549
718
|
|
550
719
|
# MIUI Browser
|
551
|
-
- regex: 'MIUIBrowser(?:/(\d+[\.\d]+))?'
|
720
|
+
- regex: '(?:MIUIBrowser|MiuiBrowser)(?:/(\d+[\.\d]+))?'
|
552
721
|
name: 'MIUI Browser'
|
553
722
|
version: '$1'
|
723
|
+
engine:
|
724
|
+
default: '' # multi engine -- WebKit or Blink
|
554
725
|
|
555
726
|
# Coc Coc
|
556
727
|
# This browser (http://coccoc.vn/) is built on top of Chromium with
|
@@ -565,6 +736,12 @@
|
|
565
736
|
versions:
|
566
737
|
28: 'Blink'
|
567
738
|
|
739
|
+
- regex: 'DuckDuckGo/(\d+[\.\d]*)'
|
740
|
+
name: 'DuckDuckGo Privacy Browser'
|
741
|
+
version: '$1'
|
742
|
+
engine:
|
743
|
+
default: 'Blink'
|
744
|
+
|
568
745
|
#Samsung Browser
|
569
746
|
- regex: 'Samsung ?Browser(?:[/ ](\d+[\.\d]+))?'
|
570
747
|
name: 'Samsung Browser'
|
@@ -595,6 +772,9 @@
|
|
595
772
|
- regex: 'UCWEB(?:[ /]?(\d+[\.\d]+))?'
|
596
773
|
name: 'UC Browser'
|
597
774
|
version: '$1'
|
775
|
+
- regex: 'UC AppleWebKit'
|
776
|
+
name: 'UC Browser'
|
777
|
+
version: ''
|
598
778
|
|
599
779
|
#Tenta Browser
|
600
780
|
#It should be checked before Chrome since the UA contains the Chrome
|
@@ -611,6 +791,127 @@
|
|
611
791
|
engine:
|
612
792
|
default: 'Webkit'
|
613
793
|
|
794
|
+
# Web Explorer
|
795
|
+
- regex: 'Web Explorer/(\d+[\.\d]+).*Chrome'
|
796
|
+
name: 'Web Explorer'
|
797
|
+
version: '$1'
|
798
|
+
engine:
|
799
|
+
default: 'Webkit'
|
800
|
+
|
801
|
+
# Seznam Browser
|
802
|
+
- regex: 'SznProhlizec/(\d+[\.\d]+)'
|
803
|
+
name: 'Seznam Browser'
|
804
|
+
version: '$1'
|
805
|
+
engine:
|
806
|
+
default: 'Blink'
|
807
|
+
|
808
|
+
# SogouMobileBrowser
|
809
|
+
- regex: 'SogouMobileBrowser/(\d+[\.\d]+)'
|
810
|
+
name: 'Sogou Mobile Browser'
|
811
|
+
version: '$1'
|
812
|
+
engine:
|
813
|
+
default: '' # multi engine -- WebKit or Blink
|
814
|
+
|
815
|
+
# Mint Browser
|
816
|
+
- regex: 'Mint Browser/(\d+[\.\d]+)'
|
817
|
+
name: 'Mint Browser'
|
818
|
+
version: '$1'
|
819
|
+
engine:
|
820
|
+
default: '' # multi engine -- WebKit or Blink
|
821
|
+
|
822
|
+
# Ecosia
|
823
|
+
- regex: 'Ecosia (?:android|ios)@(\d+[\.\d]+)'
|
824
|
+
name: 'Ecosia'
|
825
|
+
version: '$1'
|
826
|
+
engine:
|
827
|
+
default: '' # multi engine -- WebKit or Blink
|
828
|
+
|
829
|
+
# CM Browser
|
830
|
+
- regex: 'ACHEETAHI'
|
831
|
+
name: 'CM Browser'
|
832
|
+
version: ''
|
833
|
+
engine:
|
834
|
+
default: '' # multi engine -- WebKit or Blink
|
835
|
+
|
836
|
+
# Kiwi Browser
|
837
|
+
- regex: 'Kiwi Chrome'
|
838
|
+
name: 'Kiwi'
|
839
|
+
version: ''
|
840
|
+
engine:
|
841
|
+
default: '' # multi engine -- WebKit or Blink
|
842
|
+
|
843
|
+
# 2345 Browser
|
844
|
+
- regex: 'Mb2345Browser/(\d+[\.\d]+)'
|
845
|
+
name: '2345 Browser'
|
846
|
+
version: '$1'
|
847
|
+
engine:
|
848
|
+
default: '' # multi engine -- WebKit or Blink
|
849
|
+
|
850
|
+
# QtWebEngine
|
851
|
+
- regex: 'QtWebEngine/(\d+[\.\d]+)'
|
852
|
+
name: 'QtWebEngine'
|
853
|
+
version: '$1'
|
854
|
+
engine:
|
855
|
+
default: '' # multi engine -- WebKit or Blink
|
856
|
+
|
857
|
+
#Mobile Silk
|
858
|
+
- regex: 'Silk/(\d+[\.\d]+) like Chrome'
|
859
|
+
name: 'Mobile Silk'
|
860
|
+
version: '$1'
|
861
|
+
engine:
|
862
|
+
default: 'Blink'
|
863
|
+
- regex: 'Silk(?:/(\d+[\.\d]+))?'
|
864
|
+
name: 'Mobile Silk'
|
865
|
+
version: '$1'
|
866
|
+
engine:
|
867
|
+
default: 'WebKit'
|
868
|
+
|
869
|
+
#IBrowse
|
870
|
+
- regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
|
871
|
+
name: 'IBrowse'
|
872
|
+
version: '$1'
|
873
|
+
|
874
|
+
#Openwave Mobile Browser
|
875
|
+
- regex: 'UP.Browser(?:/(\d+[\.\d]+))?'
|
876
|
+
name: 'Openwave Mobile Browser'
|
877
|
+
version: '$1'
|
878
|
+
- regex: 'Openwave(?:/(\d+[\.\d]+))?'
|
879
|
+
name: 'Openwave Mobile Browser'
|
880
|
+
version: '$1'
|
881
|
+
|
882
|
+
#ONE Browser
|
883
|
+
- regex: 'OneBrowser(?:[ /](\d+[\.\d]+))?'
|
884
|
+
name: 'ONE Browser'
|
885
|
+
version: '$1'
|
886
|
+
engine:
|
887
|
+
default: 'WebKit'
|
888
|
+
|
889
|
+
#Nokia Browser
|
890
|
+
- regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
|
891
|
+
name: 'Nokia Browser'
|
892
|
+
version: '$1'
|
893
|
+
- regex: 'Series60/5\.0'
|
894
|
+
name: 'Nokia Browser'
|
895
|
+
version: '7.0'
|
896
|
+
- regex: 'Series60/(\d+[\.\d]+)'
|
897
|
+
name: 'Nokia OSS Browser'
|
898
|
+
version: '$1'
|
899
|
+
- regex: 'S40OviBrowser/(\d+[\.\d]+)'
|
900
|
+
name: 'Nokia Ovi Browser'
|
901
|
+
version: '$1'
|
902
|
+
- regex: '^Nokia|Nokia[EN]?\d+'
|
903
|
+
name: 'Nokia Browser'
|
904
|
+
version: ''
|
905
|
+
|
906
|
+
# Chrome Webview
|
907
|
+
- regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
|
908
|
+
name: 'Chrome Webview'
|
909
|
+
version: '$1'
|
910
|
+
engine:
|
911
|
+
default: 'WebKit'
|
912
|
+
versions:
|
913
|
+
28: 'Blink'
|
914
|
+
|
614
915
|
#Chrome
|
615
916
|
- regex: 'CrMo(?:/(\d+[\.\d]+))?'
|
616
917
|
name: 'Chrome Mobile'
|
@@ -648,7 +949,7 @@
|
|
648
949
|
version: '$1'
|
649
950
|
engine:
|
650
951
|
default: 'Blink'
|
651
|
-
- regex: 'Chrome(?:/(\d+[\.\d]+))?'
|
952
|
+
- regex: 'Chrome(?!book)(?:/(\d+[\.\d]+))?'
|
652
953
|
name: 'Chrome'
|
653
954
|
version: '$1'
|
654
955
|
engine:
|
@@ -823,11 +1124,6 @@
|
|
823
1124
|
name: 'HotJava'
|
824
1125
|
version: '$1'
|
825
1126
|
|
826
|
-
#IBrowse
|
827
|
-
- regex: 'IBrowse(?:[ /](\d+[\.\d]+))?'
|
828
|
-
name: 'IBrowse'
|
829
|
-
version: '$1'
|
830
|
-
|
831
1127
|
#iCabMobile
|
832
1128
|
- regex: 'iCabMobile(?:[ /](\d+[\.\d]+))?'
|
833
1129
|
name: 'iCab Mobile'
|
@@ -884,7 +1180,7 @@
|
|
884
1180
|
version: 10.0
|
885
1181
|
engine:
|
886
1182
|
default: 'Trident'
|
887
|
-
- regex: 'Trident/
|
1183
|
+
- regex: 'Trident/[78].0'
|
888
1184
|
name: 'Internet Explorer'
|
889
1185
|
version: 11.0
|
890
1186
|
engine:
|
@@ -936,14 +1232,6 @@
|
|
936
1232
|
name: 'LuaKit'
|
937
1233
|
version: '$1'
|
938
1234
|
|
939
|
-
#Openwave Mobile Browser
|
940
|
-
- regex: 'UP.Browser(?:/(\d+[\.\d]+))?'
|
941
|
-
name: 'Openwave Mobile Browser'
|
942
|
-
version: '$1'
|
943
|
-
- regex: 'Openwave(?:/(\d+[\.\d]+))?'
|
944
|
-
name: 'Openwave Mobile Browser'
|
945
|
-
version: '$1'
|
946
|
-
|
947
1235
|
#OmniWeb
|
948
1236
|
- regex: 'OmniWeb(?:/[v]?(\d+[\.\d]+))?'
|
949
1237
|
name: 'OmniWeb'
|
@@ -956,13 +1244,6 @@
|
|
956
1244
|
name: 'Phoenix'
|
957
1245
|
version: '$1'
|
958
1246
|
|
959
|
-
#Mobile Silk
|
960
|
-
- regex: 'Silk(?:/(\d+[\.\d]+))?'
|
961
|
-
name: 'Mobile Silk'
|
962
|
-
version: '$1'
|
963
|
-
engine:
|
964
|
-
default: 'Blink'
|
965
|
-
|
966
1247
|
#NetFront
|
967
1248
|
- regex: 'NetFrontLifeBrowser(?:/(\d+[\.\d]+))?'
|
968
1249
|
name: 'NetFront Life'
|
@@ -988,14 +1269,6 @@
|
|
988
1269
|
name: 'NTENT Browser'
|
989
1270
|
version: '$1'
|
990
1271
|
|
991
|
-
#Obigo
|
992
|
-
- regex: 'Obigo[ ]?(?:InternetBrowser|Browser)?(?:[ /]([a-z0-9]*))?'
|
993
|
-
name: 'Obigo'
|
994
|
-
version: '$1'
|
995
|
-
- regex: 'Obigo|Teleca'
|
996
|
-
name: 'Obigo'
|
997
|
-
version: ''
|
998
|
-
|
999
1272
|
#Odyssey Web Browser
|
1000
1273
|
- regex: 'Odyssey Web Browser(?:.*OWB/(\d+[\.\d]+))?'
|
1001
1274
|
name: 'Odyssey Web Browser'
|
@@ -1006,13 +1279,6 @@
|
|
1006
1279
|
name: 'Off By One'
|
1007
1280
|
version: ''
|
1008
1281
|
|
1009
|
-
#ONE Browser
|
1010
|
-
- regex: 'OneBrowser(?:[ /](\d+[\.\d]+))?'
|
1011
|
-
name: 'ONE Browser'
|
1012
|
-
version: '$1'
|
1013
|
-
engine:
|
1014
|
-
default: 'WebKit'
|
1015
|
-
|
1016
1282
|
#Oregano
|
1017
1283
|
- regex: 'Oregano(?:[ /](\d+[\.\d]+))?'
|
1018
1284
|
name: 'Oregano'
|
@@ -1084,23 +1350,6 @@
|
|
1084
1350
|
name: 'Xiino'
|
1085
1351
|
version: '$1'
|
1086
1352
|
|
1087
|
-
#Nokia Browser
|
1088
|
-
- regex: '(?:NokiaBrowser|BrowserNG)(?:/(\d+[\.\d]+))?'
|
1089
|
-
name: 'Nokia Browser'
|
1090
|
-
version: '$1'
|
1091
|
-
- regex: 'Series60/5\.0'
|
1092
|
-
name: 'Nokia Browser'
|
1093
|
-
version: '7.0'
|
1094
|
-
- regex: 'Series60/(\d+[\.\d]+)'
|
1095
|
-
name: 'Nokia OSS Browser'
|
1096
|
-
version: '$1'
|
1097
|
-
- regex: 'S40OviBrowser/(\d+[\.\d]+)'
|
1098
|
-
name: 'Nokia Ovi Browser'
|
1099
|
-
version: '$1'
|
1100
|
-
- regex: '^Nokia|Nokia[EN]?\d+'
|
1101
|
-
name: 'Nokia Browser'
|
1102
|
-
version: ''
|
1103
|
-
|
1104
1353
|
#BlackBerry Browser
|
1105
1354
|
- regex: 'BlackBerry|PlayBook|BB10'
|
1106
1355
|
name: 'BlackBerry Browser'
|