device_detector 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.rubocop.yml +49 -0
- data/.ruby-version +1 -0
- data/.travis.yml +1 -1
- data/CHANGELOG.md +5 -0
- data/README.md +4 -4
- data/Rakefile +6 -17
- data/device_detector.gemspec +1 -0
- data/lib/device_detector.rb +17 -28
- data/lib/device_detector/bot.rb +2 -2
- data/lib/device_detector/client.rb +3 -2
- data/lib/device_detector/device.rb +44 -21
- data/lib/device_detector/memory_cache.rb +5 -5
- data/lib/device_detector/metadata_extractor.rb +7 -8
- data/lib/device_detector/model_extractor.rb +3 -3
- data/lib/device_detector/name_extractor.rb +2 -2
- data/lib/device_detector/os.rb +121 -114
- data/lib/device_detector/parser.rb +22 -9
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector/version_extractor.rb +2 -3
- data/regexes/bots.yml +228 -12
- data/regexes/client/browser_engine.yml +4 -1
- data/regexes/client/browsers.yml +358 -34
- data/regexes/client/feed_readers.yml +1 -1
- data/regexes/client/libraries.yml +16 -1
- data/regexes/client/mediaplayers.yml +14 -2
- data/regexes/client/mobile_apps.yml +26 -2
- data/regexes/client/pim.yml +1 -1
- data/regexes/device/cameras.yml +1 -1
- data/regexes/device/car_browsers.yml +7 -3
- data/regexes/device/consoles.yml +3 -3
- data/regexes/device/mobiles.yml +2468 -823
- data/regexes/device/portable_media_player.yml +2 -2
- data/regexes/device/televisions.yml +1 -1
- data/regexes/oss.yml +20 -5
- data/regexes/vendorfragments.yml +5 -1
- data/spec/device_detector/device_spec.rb +4 -24
- data/spec/fixtures/client/browser.yml +632 -2
- data/spec/fixtures/client/library.yml +18 -0
- data/spec/fixtures/client/mobile_app.yml +24 -0
- data/spec/fixtures/detector/bots.yml +533 -67
- data/spec/fixtures/detector/camera.yml +20 -0
- data/spec/fixtures/detector/car_browser.yml +60 -0
- data/spec/fixtures/detector/console.yml +40 -0
- data/spec/fixtures/detector/desktop.yml +140 -40
- data/spec/fixtures/detector/mediaplayer.yml +43 -0
- data/spec/fixtures/detector/mobile_apps.yml +40 -2
- data/spec/fixtures/detector/phablet.yml +383 -1
- data/spec/fixtures/detector/smart_speaker.yml +55 -0
- data/spec/fixtures/detector/smartphone-1.yml +3669 -3695
- data/spec/fixtures/detector/smartphone-10.yml +4147 -4094
- data/spec/fixtures/detector/smartphone-11.yml +4475 -4473
- data/spec/fixtures/detector/smartphone-12.yml +5502 -4251
- data/spec/fixtures/detector/smartphone-13.yml +9920 -0
- data/spec/fixtures/detector/smartphone-14.yml +2662 -0
- data/spec/fixtures/detector/smartphone-2.yml +3738 -3713
- data/spec/fixtures/detector/smartphone-3.yml +3970 -3912
- data/spec/fixtures/detector/smartphone-4.yml +4518 -4506
- data/spec/fixtures/detector/smartphone-5.yml +3645 -3664
- data/spec/fixtures/detector/smartphone-6.yml +3868 -3829
- data/spec/fixtures/detector/smartphone-7.yml +3992 -3985
- data/spec/fixtures/detector/smartphone-8.yml +4510 -4475
- data/spec/fixtures/detector/smartphone-9.yml +4226 -4255
- data/spec/fixtures/detector/smartphone.yml +3197 -3197
- data/spec/fixtures/detector/tablet-1.yml +3940 -3968
- data/spec/fixtures/detector/tablet-2.yml +3773 -3764
- data/spec/fixtures/detector/tablet-3.yml +5243 -3071
- data/spec/fixtures/detector/tablet-4.yml +4528 -0
- data/spec/fixtures/detector/tablet.yml +3145 -3125
- data/spec/fixtures/detector/tv.yml +1695 -95
- data/spec/fixtures/detector/unknown.yml +13 -60
- data/spec/fixtures/detector/wearable.yml +61 -0
- data/spec/fixtures/device/car_browser.yml +6 -0
- data/spec/fixtures/parser/oss.yml +36 -1
- data/spec/fixtures/parser/vendorfragments.yml +6 -0
- metadata +32 -7
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ###############
         | 
| 2 2 | 
             
            # Device Detector - The Universal Device Detection library for parsing User Agents
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # @link  | 
| 4 | 
            +
            # @link https://matomo.org
         | 
| 5 5 | 
             
            # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
         | 
| 6 6 | 
             
            ###############
         | 
| 7 7 |  | 
| @@ -34,3 +34,6 @@ | |
| 34 34 |  | 
| 35 35 | 
             
            - regex: 'Servo'
         | 
| 36 36 | 
             
              name: 'Servo'
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            - regex: 'Goanna'
         | 
| 39 | 
            +
              name: 'Goanna'
         | 
    
        data/regexes/client/browsers.yml
    CHANGED
    
    | @@ -1,10 +1,220 @@ | |
| 1 1 | 
             
            ###############
         | 
| 2 2 | 
             
            # Device Detector - The Universal Device Detection library for parsing User Agents
         | 
| 3 3 | 
             
            #
         | 
| 4 | 
            -
            # @link  | 
| 4 | 
            +
            # @link https://matomo.org
         | 
| 5 5 | 
             
            # @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
         | 
| 6 6 | 
             
            ###############
         | 
| 7 7 |  | 
| 8 | 
            +
            # Safe Exam Browser (https://safeexambrowser.org/)
         | 
| 9 | 
            +
            - regex: 'SEB/(?:(\d+[\.\d]+))?'
         | 
| 10 | 
            +
              name: 'Safe Exam Browser'
         | 
| 11 | 
            +
              version: '$1'
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            # Colibri (https://colibri.opqr.co/)
         | 
| 14 | 
            +
            - regex: 'Colibri/(?:(\d+[\.\d]+))?'
         | 
| 15 | 
            +
              name: 'Colibri'
         | 
| 16 | 
            +
              version: '$1'
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            # Xvast (https://www.xvast.com/)
         | 
| 19 | 
            +
            - regex: 'Xvast/(?:(\d+[\.\d]+))?'
         | 
| 20 | 
            +
              name: 'Xvast'
         | 
| 21 | 
            +
              version: '$1'
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            # Tungsten (https://en.tungsten-start.net/)
         | 
| 24 | 
            +
            - regex: 'TungstenBrowser/(?:(\d+[\.\d]+))?'
         | 
| 25 | 
            +
              name: 'Tungsten'
         | 
| 26 | 
            +
              version: '$1'
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            # Lulumi (https://github.com/LulumiProject/lulumi-browser)
         | 
| 29 | 
            +
            - regex: 'Lulumi-browser/(?:(\d+[\.\d]+))?'
         | 
| 30 | 
            +
              name: 'Lulumi'
         | 
| 31 | 
            +
              version: '$1'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            # Yahoo! Japan Browser (https://promo-ybrowser.yahoo.co.jp/)
         | 
| 34 | 
            +
            - regex: 'ybrowser/(?:(\d+[\.\d]+))?'
         | 
| 35 | 
            +
              name: 'Yahoo! Japan Browser'
         | 
| 36 | 
            +
              version: '$1'
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            # Lunascape Lite (https://www.lunascape.tv/)
         | 
| 39 | 
            +
            - regex: 'iLunascapeLite/(?:(\d+[\.\d]+))?'
         | 
| 40 | 
            +
              name: 'Lunascape Lite'
         | 
| 41 | 
            +
              version: '$1'
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            # Polypane (https://polypane.app/)
         | 
| 44 | 
            +
            - regex: 'Polypane/(?:(\d+[\.\d]+))?'
         | 
| 45 | 
            +
              name: 'Polypane'
         | 
| 46 | 
            +
              version: '$1'
         | 
| 47 | 
            +
             | 
| 48 | 
            +
            # OhHai Browser (https://ohhaibrowser.com/)
         | 
| 49 | 
            +
            - regex: 'OhHaiBrowser/(?:(\d+[\.\d]+))?'
         | 
| 50 | 
            +
              name: 'OhHai Browser'
         | 
| 51 | 
            +
              version: '$1'
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            # Sizzy (https://sizzy.co/)
         | 
| 54 | 
            +
            - regex: 'Sizzy/(?:(\d+[\.\d]+))?'
         | 
| 55 | 
            +
              name: 'Sizzy'
         | 
| 56 | 
            +
              version: '$1'
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            # Glass Browser (https://github.com/mitchas/glass-browser)
         | 
| 59 | 
            +
            - regex: 'GlassBrowser/(?:(\d+[\.\d]+))?'
         | 
| 60 | 
            +
              name: 'Glass Browser'
         | 
| 61 | 
            +
              version: '$1'
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            # ToGate (https://tmaxanc.com/#!/product-introduce/ToGate)
         | 
| 64 | 
            +
            - regex: 'ToGate/(?:(\d+[\.\d]+))?'
         | 
| 65 | 
            +
              name: 'ToGate'
         | 
| 66 | 
            +
              version: '$1'
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            # VMware AirWatch (https://www.air-watch.com/)
         | 
| 69 | 
            +
            - regex: 'AirWatch Browser v(?:(\d+[\.\d]+))?'
         | 
| 70 | 
            +
              name: 'VMware AirWatch'
         | 
| 71 | 
            +
              version: '$1'
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            # AOL Desktop (https://beta.aol.com/projects/desktop/windows)
         | 
| 74 | 
            +
            - regex: 'ADG/(?:(\d+[\.\d]+))?'
         | 
| 75 | 
            +
              name: 'AOL Desktop'
         | 
| 76 | 
            +
              version: '$1'
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            # Elements Browser (https://elementsbrowser.com/)
         | 
| 79 | 
            +
            - regex: 'Elements Browser/(?:(\d+[\.\d]+))?'
         | 
| 80 | 
            +
              name: 'Elements Browser'
         | 
| 81 | 
            +
              version: '$1'
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            # Light (https://sourceforge.net/projects/lightfirefox/)
         | 
| 84 | 
            +
            - regex: 'Light/(\d+[\.\d]+)'
         | 
| 85 | 
            +
              name: 'Light'
         | 
| 86 | 
            +
              version: '$1'
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            # Steam (https://www.valvesoftware.com/)
         | 
| 89 | 
            +
            - regex: 'Valve Steam GameOverlay/(?:(\d+[\.\d]+))?'
         | 
| 90 | 
            +
              name: 'Steam In-Game Overlay'
         | 
| 91 | 
            +
              version: '$1'
         | 
| 92 | 
            +
             | 
| 93 | 
            +
            # 115 Browser (https://pc.115.com/)
         | 
| 94 | 
            +
            - regex: '115Browser/(?:(\d+[\.\d]+))?'
         | 
| 95 | 
            +
              name: '115 Browser'
         | 
| 96 | 
            +
              version: '$1'
         | 
| 97 | 
            +
             | 
| 98 | 
            +
            # Atom (https://browser.ru/)
         | 
| 99 | 
            +
            - regex: 'Atom/(?:(\d+[\.\d]+))?'
         | 
| 100 | 
            +
              name: 'Atom'
         | 
| 101 | 
            +
              version: '$1'
         | 
| 102 | 
            +
             | 
| 103 | 
            +
            # Firefox Reality (https://mixedreality.mozilla.org/firefox-reality/)
         | 
| 104 | 
            +
            - regex: 'Mobile VR.+Firefox'
         | 
| 105 | 
            +
              name: 'Firefox Reality'
         | 
| 106 | 
            +
              version: ''
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            # AVG Secure Browser (https://www.avg.com/en-us/secure-browser)
         | 
| 109 | 
            +
            - regex: 'AVG(?:/(\d+[\.\d]+))?'
         | 
| 110 | 
            +
              name: 'AVG Secure Browser'
         | 
| 111 | 
            +
              version: '$1'
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            # START Internet Browser (https://play.google.com/store/apps/details?id=fyi.start.web.browser)
         | 
| 114 | 
            +
            - regex: 'Start/(?:(\d+[\.\d]+))?'
         | 
| 115 | 
            +
              name: 'START Internet Browser'
         | 
| 116 | 
            +
              version: '$1'
         | 
| 117 | 
            +
             | 
| 118 | 
            +
            # Lovense Browser (https://www.lovense.com/cam-model/download)
         | 
| 119 | 
            +
            - regex: 'Lovense(?:/(\d+[\.\d]+))?'
         | 
| 120 | 
            +
              name: 'Lovense Browser'
         | 
| 121 | 
            +
              version: '$1'
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            # Delta Browser (https://play.google.com/store/apps/details?id=com.airfind.deltabrowser)
         | 
| 124 | 
            +
            - regex: 'com.airfind.deltabrowser(?:/(\d+[\.\d]+))?'
         | 
| 125 | 
            +
              name: 'Delta Browser'
         | 
| 126 | 
            +
              version: '$1'
         | 
| 127 | 
            +
             | 
| 128 | 
            +
            # Ordissimo (https://www.ordissimo.fr/)
         | 
| 129 | 
            +
            - regex: '(?:Ordissimo|webissimo3)(?:/(\d+[\.\d]+))?'
         | 
| 130 | 
            +
              name: 'Ordissimo'
         | 
| 131 | 
            +
              version: '$1'
         | 
| 132 | 
            +
             | 
| 133 | 
            +
            # CCleaner (https://www.ccleaner.com/ccleaner/browser)
         | 
| 134 | 
            +
            - regex: 'CCleaner(?:/(\d+[\.\d]+))?'
         | 
| 135 | 
            +
              name: 'CCleaner'
         | 
| 136 | 
            +
              version: '$1'
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            # Aloha Browser Lite (https://play.google.com/store/apps/details?id=com.alohamobile.browser.lite)
         | 
| 139 | 
            +
            - regex: 'AlohaLite(?:/(\d+[\.\d]+))?'
         | 
| 140 | 
            +
              name: 'Aloha Browser Lite'
         | 
| 141 | 
            +
              version: '$1'
         | 
| 142 | 
            +
             | 
| 143 | 
            +
            # Tao Browser (https://browser.taobao.com/)
         | 
| 144 | 
            +
            - regex: 'TaoBrowser(?:/(\d+[\.\d]+))?'
         | 
| 145 | 
            +
              name: 'Tao Browser'
         | 
| 146 | 
            +
              version: '$1'
         | 
| 147 | 
            +
             | 
| 148 | 
            +
            # Falkon (https://www.falkon.org/)
         | 
| 149 | 
            +
            - regex: 'Falkon(?:/(\d+[\.\d]+))?'
         | 
| 150 | 
            +
              name: 'Falkon'
         | 
| 151 | 
            +
              version: '$1'
         | 
| 152 | 
            +
             | 
| 153 | 
            +
            # mCent (http://mcentbrowser.com/)
         | 
| 154 | 
            +
            - regex: 'mCent(?:/(\d+[\.\d]+))?'
         | 
| 155 | 
            +
              name: 'mCent'
         | 
| 156 | 
            +
              version: '$1'
         | 
| 157 | 
            +
             | 
| 158 | 
            +
            # SalamWeb (https://salamweb.com/)
         | 
| 159 | 
            +
            - regex: 'SalamWeb(?:/(\d+[\.\d]+))?'
         | 
| 160 | 
            +
              name: 'SalamWeb'
         | 
| 161 | 
            +
              version: '$1'
         | 
| 162 | 
            +
             | 
| 163 | 
            +
            # BlackHawk (http://www.netgate.sk/blackhawk/)
         | 
| 164 | 
            +
            - regex: 'BlackHawk(?:/(\d+[\.\d]+))?'
         | 
| 165 | 
            +
              name: 'BlackHawk'
         | 
| 166 | 
            +
              version: '$1'
         | 
| 167 | 
            +
             | 
| 168 | 
            +
            # Minimo (https://www-archive.mozilla.org/projects/minimo/)
         | 
| 169 | 
            +
            - regex: 'Minimo(?:/(\d+[\.\d]+))?'
         | 
| 170 | 
            +
              name: 'Minimo'
         | 
| 171 | 
            +
              version: '$1'
         | 
| 172 | 
            +
             | 
| 173 | 
            +
            # Wear Internet Browser (https://play.google.com/store/apps/details?id=com.appfour.wearbrowser)
         | 
| 174 | 
            +
            - regex: 'WIB(?:/(\d+[\.\d]+))?'
         | 
| 175 | 
            +
              name: 'Wear Internet Browser'
         | 
| 176 | 
            +
              version: '$1'
         | 
| 177 | 
            +
             | 
| 178 | 
            +
            # Origyn Web Browser (https://en.wikipedia.org/wiki/Origyn_Web_Browser)
         | 
| 179 | 
            +
            - regex: 'Origyn Web Browser'
         | 
| 180 | 
            +
              name: 'Origyn Web Browser'
         | 
| 181 | 
            +
              version: ''
         | 
| 182 | 
            +
             | 
| 183 | 
            +
            # Kinza (https://www.kinza.jp/en/)
         | 
| 184 | 
            +
            - regex: 'Kinza(?:/(\d+[\.\d]+))?'
         | 
| 185 | 
            +
              name: 'Kinza'
         | 
| 186 | 
            +
              version: '$1'
         | 
| 187 | 
            +
             | 
| 188 | 
            +
            # Beamrise (https://web.archive.org/web/20170520043839/http://beamrise.com/)
         | 
| 189 | 
            +
            - regex: 'Beamrise(?:/(\d+[\.\d]+))?'
         | 
| 190 | 
            +
              name: 'Beamrise'
         | 
| 191 | 
            +
              version: '$1'
         | 
| 192 | 
            +
             | 
| 193 | 
            +
            # Faux Browser (https://apps.apple.com/us/app/faux-browser/id472250940)
         | 
| 194 | 
            +
            - regex: 'Faux(?:/(\d+[\.\d]+))?'
         | 
| 195 | 
            +
              name: 'Faux Browser'
         | 
| 196 | 
            +
              version: '$1'
         | 
| 197 | 
            +
             | 
| 198 | 
            +
            # Splash (https://scrapinghub.com/splash)
         | 
| 199 | 
            +
            - regex: 'splash Version(?:/(\d+[\.\d]+))?'
         | 
| 200 | 
            +
              name: 'Splash'
         | 
| 201 | 
            +
              version: '$1'
         | 
| 202 | 
            +
             | 
| 203 | 
            +
            # Meizu Browser (https://www.meizu.com/)
         | 
| 204 | 
            +
            - regex: 'MZBrowser(?:/(\d+[\.\d]+))?'
         | 
| 205 | 
            +
              name: 'Meizu Browser'
         | 
| 206 | 
            +
              version: '$1'
         | 
| 207 | 
            +
             | 
| 208 | 
            +
            # COS Browser (https://sj.qq.com/myapp/detail.htm?apkName=com.qcloud.cos.client)
         | 
| 209 | 
            +
            - regex: 'COSBrowser(?:/(\d+[\.\d]+))?'
         | 
| 210 | 
            +
              name: 'COS Browser'
         | 
| 211 | 
            +
              version: '$1'
         | 
| 212 | 
            +
             | 
| 213 | 
            +
            # Crusta (https://github.com/Crusta/CrustaBrowser)
         | 
| 214 | 
            +
            - regex: 'Crusta(?:/(\d+[\.\d]+))?'
         | 
| 215 | 
            +
              name: 'Crusta'
         | 
| 216 | 
            +
              version: '$1'
         | 
| 217 | 
            +
             | 
| 8 218 | 
             
            # Hawk Turbo Browser
         | 
| 9 219 | 
             
            - regex: 'Hawk/TurboBrowser(?:/v?(\d+[\.\d]+))?'
         | 
| 10 220 | 
             
              name: 'Hawk Turbo Browser'
         | 
| @@ -31,7 +241,7 @@ | |
| 31 241 | 
             
              name: 'Basilisk'
         | 
| 32 242 | 
             
              version: '$1'
         | 
| 33 243 | 
             
              engine:
         | 
| 34 | 
            -
                default: ' | 
| 244 | 
            +
                default: 'Goanna'
         | 
| 35 245 |  | 
| 36 246 | 
             
            # Sputnik Browser (https://play.google.com/store/apps/details?id=ru.sputnik.browser)
         | 
| 37 247 | 
             
            - regex: 'SputnikBrowser(?:/(\d+[\.\d]+))?'
         | 
| @@ -194,8 +404,8 @@ | |
| 194 404 | 
             
              name: 'Aloha Browser'
         | 
| 195 405 | 
             
              version: '$1'
         | 
| 196 406 |  | 
| 197 | 
            -
            #Avast Secure Browser
         | 
| 198 | 
            -
            - regex: 'Avast(?:/(\d+[\.\d]+))?'
         | 
| 407 | 
            +
            # Avast Secure Browser | Avast SafeZone Browser (https://www.avast.com/)
         | 
| 408 | 
            +
            - regex: '(?:Avast|ASW|Safer)(?:/(\d+[\.\d]+))?'
         | 
| 199 409 | 
             
              name: 'Avast Secure Browser'
         | 
| 200 410 | 
             
              version: '$1'
         | 
| 201 411 |  | 
| @@ -290,6 +500,11 @@ | |
| 290 500 |  | 
| 291 501 |  | 
| 292 502 | 
             
            #Pale Moon
         | 
| 503 | 
            +
            - regex: '.*Goanna.*PaleMoon(?:/(\d+[\.\d]+))?'
         | 
| 504 | 
            +
              name: 'Pale Moon'
         | 
| 505 | 
            +
              version: '$1'
         | 
| 506 | 
            +
              engine:
         | 
| 507 | 
            +
                default: 'Goanna'
         | 
| 293 508 | 
             
            - regex: 'PaleMoon(?:/(\d+[\.\d]+))?'
         | 
| 294 509 | 
             
              name: 'Pale Moon'
         | 
| 295 510 | 
             
              version: '$1'
         | 
| @@ -319,6 +534,11 @@ | |
| 319 534 | 
             
                versions:
         | 
| 320 535 | 
             
                  3: 'WebKit'
         | 
| 321 536 |  | 
| 537 | 
            +
            # Jig Browser Plus (https://jig.jp/)
         | 
| 538 | 
            +
            - regex: 'JigBrowserPlus/(?:(\d+[\.\d]+))?'
         | 
| 539 | 
            +
              name: 'Jig Browser Plus'
         | 
| 540 | 
            +
              version: '$1'
         | 
| 541 | 
            +
             | 
| 322 542 | 
             
            #Jig Browser
         | 
| 323 543 | 
             
            - regex: 'jig browser(?: web;|9i?)?(?:[/ ](\d+[\.\d]+))?'
         | 
| 324 544 | 
             
              name: 'Jig Browser'
         | 
| @@ -338,11 +558,49 @@ | |
| 338 558 | 
             
              engine:
         | 
| 339 559 | 
             
                default: 'Gecko'
         | 
| 340 560 |  | 
| 561 | 
            +
            # Origin (https://www.origin.com/)
         | 
| 562 | 
            +
            - regex: 'Origin/(?:(\d+[\.\d]+))?'
         | 
| 563 | 
            +
              name: 'Origin In-Game Overlay'
         | 
| 564 | 
            +
              version: '$1'
         | 
| 565 | 
            +
             | 
| 341 566 | 
             
            #Cunaguaro
         | 
| 342 567 | 
             
            - regex: 'Cunaguaro(?:/(\d+[\.\d]+))?'
         | 
| 343 568 | 
             
              name: 'Cunaguaro'
         | 
| 344 569 | 
             
              version: '$1'
         | 
| 345 570 |  | 
| 571 | 
            +
            # t-online.de Browser (https://www.t-online.de/computer/browser/)
         | 
| 572 | 
            +
            - regex: 'TO-Browser(?:/TOB(\d+[\.\d]+))?'
         | 
| 573 | 
            +
              name: 't-online.de Browser'
         | 
| 574 | 
            +
              version: '$1'
         | 
| 575 | 
            +
             | 
| 576 | 
            +
            #Kazehakase
         | 
| 577 | 
            +
            - regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
         | 
| 578 | 
            +
              name: 'Kazehakase'
         | 
| 579 | 
            +
              version: '$1'
         | 
| 580 | 
            +
              engine:
         | 
| 581 | 
            +
                default: '' # multi engine
         | 
| 582 | 
            +
             | 
| 583 | 
            +
            # ArcticFox (https://github.com/wicknix/Arctic-Fox)
         | 
| 584 | 
            +
            - regex: 'ArcticFox(?:/(\d+[\.\d]+))?'
         | 
| 585 | 
            +
              name: 'Arctic Fox'
         | 
| 586 | 
            +
              version: '$1'
         | 
| 587 | 
            +
              engine:
         | 
| 588 | 
            +
                default: 'Goanna'
         | 
| 589 | 
            +
             | 
| 590 | 
            +
            # Mypal (https://github.com/Feodor2/Mypal)
         | 
| 591 | 
            +
            - regex: 'Mypal(?:/(\d+[\.\d]+))?'
         | 
| 592 | 
            +
              name: 'Mypal'
         | 
| 593 | 
            +
              version: '$1'
         | 
| 594 | 
            +
              engine:
         | 
| 595 | 
            +
                default: 'Goanna'
         | 
| 596 | 
            +
             | 
| 597 | 
            +
            # Centaury (https://github.com/Feodor2/Centaury)
         | 
| 598 | 
            +
            - regex: 'Centaury(?:/(\d+[\.\d]+))?'
         | 
| 599 | 
            +
              name: 'Centaury'
         | 
| 600 | 
            +
              version: '$1'
         | 
| 601 | 
            +
              engine:
         | 
| 602 | 
            +
                default: 'Goanna'
         | 
| 603 | 
            +
             | 
| 346 604 | 
             
            #Firefox Focus / Firefox Klar
         | 
| 347 605 | 
             
            - regex: '(?:Focus|Klar)(?:/(\d+[\.\d]+))?'
         | 
| 348 606 | 
             
              name: 'Firefox Focus'
         | 
| @@ -473,6 +731,21 @@ | |
| 473 731 | 
             
              name: 'UC Browser Mini'
         | 
| 474 732 | 
             
              version: ''
         | 
| 475 733 |  | 
| 734 | 
            +
            # UC Browser Turbo
         | 
| 735 | 
            +
            - regex: 'UCTurbo(?:[ /]?(\d+[\.\d]+))?'
         | 
| 736 | 
            +
              name: 'UC Browser Turbo'
         | 
| 737 | 
            +
              version: '$1'
         | 
| 738 | 
            +
            - regex: 'UC[ ]?Browser.* \(UCTurbo\)'
         | 
| 739 | 
            +
              name: 'UC Browser Turbo'
         | 
| 740 | 
            +
              version: ''
         | 
| 741 | 
            +
             | 
| 742 | 
            +
            # Opera GX (https://www.opera.com/gx#start | http://ftp.opera.com/pub/opera_gx/)
         | 
| 743 | 
            +
            - regex: 'OPRGX(?:/(\d+[\.\d]+))?'
         | 
| 744 | 
            +
              name: 'Opera GX'
         | 
| 745 | 
            +
              version: '$1'
         | 
| 746 | 
            +
              engine:
         | 
| 747 | 
            +
                default: 'Blink'
         | 
| 748 | 
            +
             | 
| 476 749 | 
             
            #Opera
         | 
| 477 750 | 
             
            - regex: '(?:Opera Tablet.*Version|Opera/.+Opera Mobi.+Version|Mobile.+OPR)/(\d+[\.\d]+)'
         | 
| 478 751 | 
             
              name: 'Opera Mobile'
         | 
| @@ -589,7 +862,7 @@ | |
| 589 862 | 
             
                  4: '' # multiple (KHTML or WebKit)
         | 
| 590 863 |  | 
| 591 864 | 
             
            #Baidu Browser
         | 
| 592 | 
            -
            - regex: 'baidubrowser(?:[/ ](\d+[\.\d]*))?'
         | 
| 865 | 
            +
            - regex: '(?:baidubrowser|bdbrowser_i18n|bdbrowser)(?:[/ ](\d+[\.\d]*))?'
         | 
| 593 866 | 
             
              name: 'Baidu Browser'
         | 
| 594 867 | 
             
              version: '$1'
         | 
| 595 868 | 
             
            - regex: 'FlyFlow(?:[/ ](\d+[\.\d]*))?'
         | 
| @@ -650,7 +923,7 @@ | |
| 650 923 | 
             
                versions:
         | 
| 651 924 | 
             
                  3: 'WebKit'
         | 
| 652 925 |  | 
| 653 | 
            -
            - regex: '(?:Maxthon|MyIE2 | 
| 926 | 
            +
            - regex: '(?:Maxthon|MyIE2)'
         | 
| 654 927 | 
             
              name: 'Maxthon'
         | 
| 655 928 | 
             
              version: ''
         | 
| 656 929 | 
             
              engine:
         | 
| @@ -668,7 +941,13 @@ | |
| 668 941 | 
             
              engine:
         | 
| 669 942 | 
             
                default: 'Blink'
         | 
| 670 943 |  | 
| 671 | 
            -
            #Iron
         | 
| 944 | 
            +
            # Iron
         | 
| 945 | 
            +
            - regex: 'Chrome(?:/(\d+[\.\d]+))?.*Iron'
         | 
| 946 | 
            +
              name: 'Iron'
         | 
| 947 | 
            +
              version: '$1'
         | 
| 948 | 
            +
              engine:
         | 
| 949 | 
            +
                default: 'WebKit'
         | 
| 950 | 
            +
             | 
| 672 951 | 
             
            - regex: 'Iron(?:/(\d+[\.\d]+))?'
         | 
| 673 952 | 
             
              name: 'Iron'
         | 
| 674 953 | 
             
              version: '$1'
         | 
| @@ -747,18 +1026,29 @@ | |
| 747 1026 | 
             
              name: 'Samsung Browser'
         | 
| 748 1027 | 
             
              version: '$1'
         | 
| 749 1028 |  | 
| 750 | 
            -
            # | 
| 751 | 
            -
             | 
| 752 | 
            -
             | 
| 1029 | 
            +
            # Super Fast Browser (https://play.google.com/store/apps/details?id=com.browser.tssomas)
         | 
| 1030 | 
            +
            - regex: '(?:SFBrowser|com.browser.tssomas)(?:/(\d+[\.\d]+))?'
         | 
| 1031 | 
            +
              name: 'Super Fast Browser'
         | 
| 1032 | 
            +
              version: '$1'
         | 
| 1033 | 
            +
             | 
| 1034 | 
            +
            # EUI Browser
         | 
| 1035 | 
            +
            - regex: 'EUI Browser(?:/(\d+[\.\d]+))?'
         | 
| 1036 | 
            +
              name: 'EUI Browser'
         | 
| 1037 | 
            +
              version: '$1'
         | 
| 1038 | 
            +
             | 
| 1039 | 
            +
            # UBrowser (https://callumprentice.github.io/)
         | 
| 1040 | 
            +
            - regex: 'UBrowser(?:/(\d+[\.\d]+))?'
         | 
| 1041 | 
            +
              name: 'UBrowser'
         | 
| 1042 | 
            +
              version: '$1'
         | 
| 1043 | 
            +
             | 
| 1044 | 
            +
            #Streamy (Chromium based)
         | 
| 753 1045 | 
             
            - regex: 'Streamy(?:/(\d+[\.\d]+))?'
         | 
| 754 1046 | 
             
              name: 'Streamy'
         | 
| 755 1047 | 
             
              version: '$1'
         | 
| 756 1048 | 
             
              engine:
         | 
| 757 1049 | 
             
                default: 'WebKit'
         | 
| 758 1050 |  | 
| 759 | 
            -
            #Isivioo
         | 
| 760 | 
            -
            #Andorid version of the browser is built on top of Chrome Mobile.
         | 
| 761 | 
            -
            #It should be checked first.
         | 
| 1051 | 
            +
            #Isivioo (Android version is Chrome based)
         | 
| 762 1052 | 
             
            - regex: 'isivioo'
         | 
| 763 1053 | 
             
              name: 'Isivioo'
         | 
| 764 1054 | 
             
              version: ''
         | 
| @@ -903,6 +1193,30 @@ | |
| 903 1193 | 
             
              name: 'Nokia Browser'
         | 
| 904 1194 | 
             
              version: ''
         | 
| 905 1195 |  | 
| 1196 | 
            +
            #Sleipnir
         | 
| 1197 | 
            +
            - regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
         | 
| 1198 | 
            +
              name: 'Sleipnir'
         | 
| 1199 | 
            +
              version: '$1'
         | 
| 1200 | 
            +
              engine:
         | 
| 1201 | 
            +
                default: '' # multi engine
         | 
| 1202 | 
            +
             | 
| 1203 | 
            +
            # NTENT Browser
         | 
| 1204 | 
            +
            - regex: 'NTENTBrowser(?:/(\d+[\.\d]+))?'
         | 
| 1205 | 
            +
              name: 'NTENT Browser'
         | 
| 1206 | 
            +
              version: '$1'
         | 
| 1207 | 
            +
             | 
| 1208 | 
            +
            # TV Bro
         | 
| 1209 | 
            +
            - regex: 'TV Bro/(\d+[\.\d]+)'
         | 
| 1210 | 
            +
              name: 'TV Bro'
         | 
| 1211 | 
            +
              version: '$1'
         | 
| 1212 | 
            +
             | 
| 1213 | 
            +
            # Quark
         | 
| 1214 | 
            +
            - regex: 'Chrome/.+ Quark(?:/(\d+[\.\d]+))?'
         | 
| 1215 | 
            +
              name: 'Quark'
         | 
| 1216 | 
            +
              version: '$1'
         | 
| 1217 | 
            +
              engine:
         | 
| 1218 | 
            +
                default: 'WebKit'
         | 
| 1219 | 
            +
             | 
| 906 1220 | 
             
            # Chrome Webview
         | 
| 907 1221 | 
             
            - regex: 'Version/.* Chrome(?:/(\d+[\.\d]+))?'
         | 
| 908 1222 | 
             
              name: 'Chrome Webview'
         | 
| @@ -1091,6 +1405,11 @@ | |
| 1091 1405 | 
             
              name: 'Element Browser'
         | 
| 1092 1406 | 
             
              version: '$1'
         | 
| 1093 1407 |  | 
| 1408 | 
            +
            # eZ Browser (https://play.google.com/store/apps/details?id=com.asc.csbrowser)
         | 
| 1409 | 
            +
            - regex: 'eZBrowser(?:/(\d+[\.\d]+))?'
         | 
| 1410 | 
            +
              name: 'eZ Browser'
         | 
| 1411 | 
            +
              version: '$1'
         | 
| 1412 | 
            +
             | 
| 1094 1413 | 
             
            #Firebird
         | 
| 1095 1414 | 
             
            - regex: 'Firebird(?! Build)(?:/(\d+[\.\d]+))?'
         | 
| 1096 1415 | 
             
              name: 'Firebird'
         | 
| @@ -1140,15 +1459,8 @@ | |
| 1140 1459 | 
             
                versions:
         | 
| 1141 1460 | 
             
                  4: 'WebKit'
         | 
| 1142 1461 |  | 
| 1143 | 
            -
            #Sleipnir
         | 
| 1144 | 
            -
            - regex: 'Sleipnir(?:[ /](\d+[\.\d]+))?'
         | 
| 1145 | 
            -
              name: 'Sleipnir'
         | 
| 1146 | 
            -
              version: '$1'
         | 
| 1147 | 
            -
              engine:
         | 
| 1148 | 
            -
                default: '' # multi engine
         | 
| 1149 | 
            -
             | 
| 1150 1462 | 
             
            #Lunascape
         | 
| 1151 | 
            -
            - regex: 'Lunascape(?:[/ ](\d+[\.\d]+))?'
         | 
| 1463 | 
            +
            - regex: 'i?Lunascape(?:[/ ](\d+[\.\d]+))?'
         | 
| 1152 1464 | 
             
              name: 'Lunascape'
         | 
| 1153 1465 | 
             
              version: '$1'
         | 
| 1154 1466 | 
             
              engine:
         | 
| @@ -1196,13 +1508,6 @@ | |
| 1196 1508 | 
             
              engine:
         | 
| 1197 1509 | 
             
                default: 'Trident'
         | 
| 1198 1510 |  | 
| 1199 | 
            -
            #Kazehakase
         | 
| 1200 | 
            -
            - regex: 'Kazehakase(?:/(\d+[\.\d]+))?'
         | 
| 1201 | 
            -
              name: 'Kazehakase'
         | 
| 1202 | 
            -
              version: '$1'
         | 
| 1203 | 
            -
              engine:
         | 
| 1204 | 
            -
                default: '' # multi engine
         | 
| 1205 | 
            -
             | 
| 1206 1511 | 
             
            #Kindle Browser
         | 
| 1207 1512 | 
             
            - regex: 'Kindle/(\d+[\.\d]+)'
         | 
| 1208 1513 | 
             
              name: 'Kindle Browser'
         | 
| @@ -1255,7 +1560,7 @@ | |
| 1255 1560 | 
             
              version: '$1'
         | 
| 1256 1561 | 
             
              engine:
         | 
| 1257 1562 | 
             
                default: 'NetFront'
         | 
| 1258 | 
            -
            - regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+  | 
| 1563 | 
            +
            - regex: 'PLAYSTATION|NINTENDO 3|AppleWebKit.+ N[XF]/\d+\.\d+\.\d+'
         | 
| 1259 1564 | 
             
              name: 'NetFront'
         | 
| 1260 1565 | 
             
              version: ''
         | 
| 1261 1566 |  | 
| @@ -1264,11 +1569,6 @@ | |
| 1264 1569 | 
             
              name: 'NetPositive'
         | 
| 1265 1570 | 
             
              version: '$1'
         | 
| 1266 1571 |  | 
| 1267 | 
            -
            # NTENT Browser
         | 
| 1268 | 
            -
            - regex: 'NTENTBrowser(?:/(\d+[\.\d]+))?'
         | 
| 1269 | 
            -
              name: 'NTENT Browser'
         | 
| 1270 | 
            -
              version: '$1'
         | 
| 1271 | 
            -
             | 
| 1272 1572 | 
             
            #Odyssey Web Browser
         | 
| 1273 1573 | 
             
            - regex: 'Odyssey Web Browser(?:.*OWB/(\d+[\.\d]+))?'
         | 
| 1274 1574 | 
             
              name: 'Odyssey Web Browser'
         | 
| @@ -1377,6 +1677,13 @@ | |
| 1377 1677 | 
             
              name: 'Qutebrowser'
         | 
| 1378 1678 | 
             
              version: '$1'
         | 
| 1379 1679 |  | 
| 1680 | 
            +
            # surf (https://surf.suckless.org/)
         | 
| 1681 | 
            +
            - regex: 'Surf(?:/(\d+[\.\d]+))?'
         | 
| 1682 | 
            +
              name: 'surf'
         | 
| 1683 | 
            +
              version: '$1'
         | 
| 1684 | 
            +
              engine:
         | 
| 1685 | 
            +
                default: 'WebKit'
         | 
| 1686 | 
            +
             | 
| 1380 1687 | 
             
            #Safari
         | 
| 1381 1688 | 
             
            - regex: '(?:(?:iPod|iPad|iPhone).+Version|MobileSafari)/(\d+[\.\d]+)'
         | 
| 1382 1689 | 
             
              name: 'Mobile Safari'
         | 
| @@ -1410,3 +1717,20 @@ | |
| 1410 1717 | 
             
              version: '$1'
         | 
| 1411 1718 | 
             
              engine:
         | 
| 1412 1719 | 
             
                default: 'NetSurf'
         | 
| 1720 | 
            +
             | 
| 1721 | 
            +
            # Uzbl (https://www.uzbl.org/)
         | 
| 1722 | 
            +
            - regex: 'Uzbl'
         | 
| 1723 | 
            +
              name: 'Uzbl'
         | 
| 1724 | 
            +
              version: ''
         | 
| 1725 | 
            +
             | 
| 1726 | 
            +
            # SimpleBrowser (https://github.com/SimpleBrowserDotNet/SimpleBrowser)
         | 
| 1727 | 
            +
            - regex: 'SimpleBrowser'
         | 
| 1728 | 
            +
              name: 'SimpleBrowser'
         | 
| 1729 | 
            +
              version: ''
         | 
| 1730 | 
            +
             | 
| 1731 | 
            +
            # Zvu
         | 
| 1732 | 
            +
            - regex: 'Zvu(?:/(\d+[\.\d]+))?'
         | 
| 1733 | 
            +
              name: 'Zvu'
         | 
| 1734 | 
            +
              version: '$1'
         | 
| 1735 | 
            +
              engine:
         | 
| 1736 | 
            +
                default: 'Gecko'
         |