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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +4 -5
  3. data/CHANGELOG.md +3 -0
  4. data/README.md +5 -5
  5. data/Rakefile +13 -0
  6. data/lib/device_detector/version.rb +1 -1
  7. data/regexes/bots.yml +89 -2
  8. data/regexes/client/browser_engine.yml +3 -0
  9. data/regexes/client/browsers.yml +325 -76
  10. data/regexes/client/feed_readers.yml +6 -0
  11. data/regexes/client/libraries.yml +9 -0
  12. data/regexes/client/mobile_apps.yml +40 -1
  13. data/regexes/client/pim.yml +5 -0
  14. data/regexes/device/mobiles.yml +1607 -431
  15. data/regexes/oss.yml +1 -1
  16. data/regexes/vendorfragments.yml +1 -1
  17. data/spec/device_detector/concrete_user_agent_spec.rb +16 -17
  18. data/spec/device_detector/device_spec.rb +25 -25
  19. data/spec/device_detector/memory_cache_spec.rb +19 -19
  20. data/spec/device_detector/model_extractor_spec.rb +3 -3
  21. data/spec/device_detector/version_extractor_spec.rb +5 -6
  22. data/spec/device_detector_spec.rb +26 -26
  23. data/spec/fixtures/client/browser.yml +655 -322
  24. data/spec/fixtures/client/feed_reader.yml +39 -45
  25. data/spec/fixtures/client/library.yml +24 -11
  26. data/spec/fixtures/client/mediaplayer.yml +29 -28
  27. data/spec/fixtures/client/mobile_app.yml +100 -41
  28. data/spec/fixtures/client/pim.yml +32 -19
  29. data/spec/fixtures/detector/bots.yml +140 -23
  30. data/spec/fixtures/detector/camera.yml +2 -2
  31. data/spec/fixtures/detector/console.yml +3 -3
  32. data/spec/fixtures/detector/desktop.yml +312 -73
  33. data/spec/fixtures/detector/feature_phone.yml +48 -0
  34. data/spec/fixtures/detector/feed_reader.yml +141 -126
  35. data/spec/fixtures/detector/mediaplayer.yml +39 -38
  36. data/spec/fixtures/detector/mobile_apps.yml +86 -85
  37. data/spec/fixtures/detector/phablet.yml +715 -236
  38. data/spec/fixtures/detector/portable_media_player.yml +17 -0
  39. data/spec/fixtures/detector/smartphone-1.yml +3534 -3512
  40. data/spec/fixtures/detector/smartphone-10.yml +3848 -6286
  41. data/spec/fixtures/detector/smartphone-11.yml +5548 -3298
  42. data/spec/fixtures/detector/smartphone-12.yml +8655 -0
  43. data/spec/fixtures/detector/smartphone-2.yml +3645 -3625
  44. data/spec/fixtures/detector/smartphone-3.yml +4099 -4176
  45. data/spec/fixtures/detector/smartphone-4.yml +3861 -3865
  46. data/spec/fixtures/detector/smartphone-5.yml +3991 -4037
  47. data/spec/fixtures/detector/smartphone-6.yml +4074 -4047
  48. data/spec/fixtures/detector/smartphone-7.yml +4355 -4362
  49. data/spec/fixtures/detector/smartphone-8.yml +4087 -4136
  50. data/spec/fixtures/detector/smartphone-9.yml +4420 -4408
  51. data/spec/fixtures/detector/smartphone.yml +2900 -2904
  52. data/spec/fixtures/detector/tablet-1.yml +3946 -3912
  53. data/spec/fixtures/detector/tablet-2.yml +3593 -3617
  54. data/spec/fixtures/detector/tablet-3.yml +2738 -85
  55. data/spec/fixtures/detector/tablet.yml +3604 -3616
  56. data/spec/fixtures/detector/tv.yml +131 -51
  57. data/spec/fixtures/detector/unknown.yml +64 -27
  58. data/spec/fixtures/device/camera.yml +4 -3
  59. data/spec/fixtures/device/car_browser.yml +3 -2
  60. data/spec/fixtures/device/console.yml +15 -14
  61. metadata +4 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b954941fa6ffb4b5963131549ef4887c7624a234
4
- data.tar.gz: 153de5187d3654b3c7126f3af606364d434ba14d
3
+ metadata.gz: d05eccb050bff6aa4688bd53d886e93df0925d5e
4
+ data.tar.gz: a197886f998a925a7cdc9f0b238556cfec2cff96
5
5
  SHA512:
6
- metadata.gz: 7dc3c1599e1296ddc0f32b9cdafc3480a2ce50145222500b2d446a79eab0c282d1658d5bbf2a704bb4966293bbcef4fc2e7e84ccd09905c49a397c6fbbe8665f
7
- data.tar.gz: f68295aa71c62c14e3e2bb204fa8186e91447d1e640d536315ea711bc922de63190b2c737b665da768e2c0fb682d4f3037f4182ec869f2f55fecfa93f1836b28
6
+ metadata.gz: 5fbece6531362b1125f35d8fb578e0e559bb003026cc7f2e45a72314fc416ef0cc3bc452baadd95f0ec2129c52f4211d1660a8c0268ecedb36b8c112a26be214
7
+ data.tar.gz: 5322208277526dbbfceb78924d6c15da242a7a5c958e89b6587bfc6c5b2904f5ae2e1b378c9e23022e743e4c5111c8654204dad409c9ec1fc59344bb853d97f5
@@ -1,10 +1,9 @@
1
1
  language: ruby
2
- sudo: false
3
- dist: precise
2
+ dist: bionic
4
3
  rvm:
5
- - 2.4.4
6
- - 2.5.0
7
- - 2.6.2
4
+ - 2.4
5
+ - 2.5
6
+ - 2.6
8
7
  before_install:
9
8
  - gem update --system
10
9
  - gem --version
@@ -1,5 +1,8 @@
1
1
  # Change Log
2
2
 
3
+ ## [1.0.3]
4
+ - Updated detection rules from upstream on 2019-12-09
5
+
3
6
  ## [1.0.2]
4
7
  - Updated detection rules from upstream on 2019-08-05
5
8
 
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DeviceDetector
2
2
 
3
- ![Podigee DeviceDetector Travisci Badge](https://travis-ci.org/podigee/device_detector.svg)
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-08-06
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, C?c C?c Bot, Datadog Agent, Dataprovider, Daum, Dazoobot, Discobot, Domain Re-Animator Bot, DotBot, DuckDuckGo Bot, Easou Spider, EMail Exractor, EmailWolf, evc-batch, ExaBot, ExactSeek Crawler, Ezooms, Facebook External Hit, Feed Wrangler, Feedbin, FeedBurner, Feedly, Feedspot, Fever, Findxbot, Flipboard, Generic Bot, Genieo Web filter, Gigablast, Gigabot, Gluten Free Crawler, Gmail Image Proxy, Goo, 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, 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, Netcraft Survey Bot, netEstate, NetLyzer FastProbe, NetResearchServer, Netvibes, NewsBlur, NewsGator, NLCrawler, Nmap, Nutch-based Bot, 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, ShopWiki, SilverReader, SimplePie, SISTRIX Crawler, 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, TinEye Crawler, Tiny Tiny RSS, TLSProbe, Trendiction Bot, TurnitinBot, TweetedTimes Bot, Tweetmeme Bot, 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
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, Liebao, Liferea, Line, Links, Lotus Notes, LuaKit, Lunascape, Lynx, MailBar, Maxthon, Mechanize, MediaMonkey, Mercury, MicroB, Microsoft Edge, Microsoft Outlook, Midori, Miro, MIUI Browser, Mobile Safari, Mobile Silk, NCSA Mosaic, NetFront, NetFront Life, NetNewsWire, NetPositive, Netscape, NetSurf, Newsbeuter, NewsBlur, NewsBlur Mobile App, NexPlayer, Nightingale, Nokia Browser, Nokia OSS Browser, Nokia Ovi Browser, NTENT Browser, Obigo, Odyssey Web Browser, Off By One, OkHttp, OmniWeb, ONE Browser, Openwave Mobile Browser, Opera, Opera Mini, Opera Mobile, 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, QuickTime, QupZilla, Qutebrowser, Qwant Mobile, ReadKit, Reeder, Rekonq, RockMelt, RSS Bandit, RSS Junkie, RSSOwl, RSSRadio, Safari, Sailfish Browser, Samsung Browser, SEMC-Browser, Seraphic Sraf, Shiira, Sina Weibo, Skyfire, Sleipnir, Snowshoe, Sogou Explorer, Songbird, Stagefright, Streamy, Stringer, SubStream, Sunrise, SuperBird, Swiftfox, TenFourFox, Tenta Browser, The Bat!, Thunderbird, Tizen Browser, TweakStyle, UC Browser, urlgrabber (yum), Vision Mobile Browser, Vivaldi, VLC, Waterfox, WebPositive, WeChat, WeTab Browser, Wget, WhatsApp, Winamp, Windows Media Player, wOSBrowser, WWW-Mechanize, XBMC, Xiino, Yahoo! Japan, Yandex Browser, Yelp Mobile, YouTube
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, Kr�ger&Matz, KT-Tech, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava, LCT, Le Pan, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Lexand, Lexibook, LG, Lingwin, Loewe, Logicom, LYF, M.T.T., M4tel, Majestic, Manta Multimedia, Maxwest, Maze, Mecer, Mediacom, MediaTek, Medion, MEEG, MegaFon, Meizu, Memup, Metz, MEU, MicroMax, Microsoft, Mio, Miray, Mitsubishi, MIXC, MLLED, Mobiistar, Mobiola, Mobistel, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, MyPhone, Myria, MyWigo, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, NEXBOX, Nexian, Nextbit, NextBook, NGM, Nikon, Nintendo, NOA, Noain, 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, Riviera, Rokit, Roku, 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, T-Mobile, TB Touch, TCL, TechniSat, TechnoTrend, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, Tesla, teXet, ThL, Thomson, TIANYU, Timovi, TiPhone, Tolino, 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, UTStarcom, Vastking, Verizon, Vernee, Vertex, Vertu, Verykool, Vestel, Videocon, Videoweb, ViewSonic, Vinsoc, Vitelcom, 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, Xiaomi, Xion, Xolo, Yandex, Yarvik, Yes, Yezz, Ytone, Yu, Yuandao, Yusun, Zeemi, Zen, Zenek, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ, �wn
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__)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class DeviceDetector
4
- VERSION = '1.0.2'
4
+ VERSION = '1.0.3'
5
5
  end
@@ -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: 'Analytics SEO Crawler'
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'
@@ -31,3 +31,6 @@
31
31
 
32
32
  - regex: 'NetSurf'
33
33
  name: 'NetSurf'
34
+
35
+ - regex: 'Servo'
36
+ name: 'Servo'
@@ -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
- # SeaMonkey
84
- - regex: '(Iceape|SeaMonkey|gnuzilla)(?:/(\d+[\.\d]+))?'
85
- name: '$1'
86
- version: '$2'
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: '$2'
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 ($2)'
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: '(?:OPT)/(\d+[\.\d]+)'
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
- # Liebao
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: 'Liebao'
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(?:/(?:Mini)?([\.\d]+))?'
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/7.0'
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'