browser 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 955928c52746af052fa9e4acb5555ba3d438326670ee5b587f7a66eff89193f5
4
- data.tar.gz: a9a9a822b3dcac0fa8b5a1f946e60c1c4eef3bc2801c41b990b33c496bb635ed
3
+ metadata.gz: 454eed87d491bb62265a7d32ac73b3be33021a13a14424f3f234783a635b4ee6
4
+ data.tar.gz: 59a05cfaa289926bd7961d87e2d75a0cc5ffb1836ce862dc813d24a16ec19ca0
5
5
  SHA512:
6
- metadata.gz: b35967db554e9dc880c4998418fde96e2fd8c75283ebc9549c948754ce9b9b383fc5977cfe1008ae176e4e00c7ecf1318d0ed8bc31f987ed19aaef294cbb669b
7
- data.tar.gz: 845a5a586f88a402f967a1c5ce43cdb3f736c33aa78288e23972f4ee14e07d81fa805bef169000979d14dcb9d24299ef008d452c29c04b88b50e3516f76b3baf
6
+ metadata.gz: 027f23bb5b3e06133d025f8870f5b8685e6cbf81463fff5d169a34ed45abd9df41e66435bbcb897849de312a00c7ac4574babea4dc95e1d255802aa25e5d3db8
7
+ data.tar.gz: e8bfa31ce8370a4fe398daefa4321ec6d8878dcc2a14eb147734a4001ea14a2a8ca0771e8e97358d839e49efff3236c5c41c6fa2c444d6417295eae8f80d82a2
@@ -23,7 +23,7 @@ jobs:
23
23
  gemfile:
24
24
  - Gemfile
25
25
  - gemfiles/7_1.gemfile
26
- - gemfiles/6_1.gemfile
26
+ - gemfiles/7_0.gemfile
27
27
 
28
28
  steps:
29
29
  - uses: actions/checkout@v2.4.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 6.1.0
4
+
5
+ - Add more bots (mostly related to AI crawlers)
6
+ - Add AppSignal bot
7
+ - Add Checkly bot
8
+ - Detect Chrome when requesting desktop site.
9
+
3
10
  ## 6.0.0
4
11
 
5
12
  - Add `Browser::Base#chromium_based?`.
@@ -96,13 +103,11 @@
96
103
  - You can now define new bot matchers by adding a callable object to
97
104
  `Browser::Bot.matchers`.
98
105
  - Fix `browser.yandex?` and `browser.sputnik?`.
99
- - [BREAKING CHANGE] Removed methods to enable the bot's empty user agent
100
- detection (`Browser::Bot.detect_empty_ua!` and
101
- `Browser::Bot.detect_empty_ua?`).
102
- - [BREAKING CHANGE] Bot detection is now more aggressive by default. It matches
103
- empty user agents, anything that matches
104
- `crawl|fetch|search|monitoring|spider|bot`, and anything listed under
105
- https://github.com/fnando/browser/blob/master/bots.yml.
106
+ - [BREAKING CHANGE] Removed methods to enable the bot's empty user agent detection
107
+ (`Browser::Bot.detect_empty_ua!` and `Browser::Bot.detect_empty_ua?`).
108
+ - [BREAKING CHANGE] Bot detection is now more aggressive by default. It matches empty
109
+ user agents, anything that matches `crawl|fetch|search|monitoring|spider|bot`,
110
+ and anything listed under https://github.com/fnando/browser/blob/master/bots.yml.
106
111
  - Add Jaunt to the bot list.
107
112
 
108
113
  ## 2.7.1
data/README.md CHANGED
@@ -432,7 +432,7 @@ information.
432
432
 
433
433
  ## Maintainer
434
434
 
435
- - Nando Vieira - http://nandovieira.com
435
+ - Nando Vieira - https://nandovieira.com
436
436
 
437
437
  ## Contributors
438
438
 
data/bots.yml CHANGED
@@ -16,6 +16,7 @@ apachebench: ApacheBench (ab)
16
16
  apis-google: APIs-Google
17
17
  appengine-google: Google App Engine
18
18
  applebot: Apple Bot
19
+ appsignal: AppSignal Bot
19
20
  archive.org_bot: Internet Archive (archive.org)
20
21
  archiveteam archivebot: ArchiveTeam ArchiveBot
21
22
  ask jeeves: Ask Jeeves
@@ -38,6 +39,7 @@ buzzbot: Buzzbot
38
39
  buzztalk: buzztalk
39
40
  catchbot: CatchBot (catchbot.com)
40
41
  check_http: Nagios monitor
42
+ checkly: Checkly
41
43
  chrome-lighthouse: Chrome-Lighthouse
42
44
  cipacrawler: CipaCrawler
43
45
  cliqzbot: Cliqzbot
@@ -291,7 +293,28 @@ zoombot: ZoomBot
291
293
  zoominfobot: ZoominfoBot
292
294
  zyborg: Zyborg
293
295
 
296
+ # AI Crawlers
297
+ # https://darkvisitors.com
298
+ amazonbot: Amazon
299
+ anthropic-ai: Anthropic-AI
300
+ applebot: Apple
301
+ bytespider: TikTok
302
+ ccbot: Common Crawl
303
+ chatgpt-user: ChatGPT
304
+ claude-web: Anthropic-AI
305
+ cohere-ai: Cohere
306
+ diffbot: Diffbot
307
+ facebookbot: Facebook
308
+ google-extended: Google
309
+ googleother: Google
310
+ gptbot: ChatGPT
311
+ omgili: Webz.io
312
+ perplexitybot: Perplexity
313
+ webz.io: Webz.io
314
+ youbot: You.com
315
+
294
316
  # Generic lib user agents go here.
317
+ httpie: HTTPie
295
318
  eventmachine httpclient: Ruby http library
296
319
  go 1.1 package http: Go 1.1 package http
297
320
  htmlparser: HTMLParser
@@ -202,7 +202,7 @@ module Browser
202
202
  # rubocop:disable Layout/LineLength
203
203
  private def detect_mobile?
204
204
  psp? ||
205
- /zunewp7/i.match?(ua) ||
205
+ /zunewp7|crios/i.match?(ua) ||
206
206
  %r{(android|bb\d+|meego).+mobile|avantgo|bada/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino}i.match(ua) ||
207
207
  %r{1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-}i.match?(ua[0..3])
208
208
  end
@@ -3,7 +3,7 @@
3
3
  module Browser
4
4
  class Platform
5
5
  class IOS < Base
6
- MATCHER = /(iPhone|iPad|iPod)/.freeze
6
+ MATCHER = /(iPhone|iPad|iPod|CriOS)/.freeze
7
7
  VERSION_MATCHER =
8
8
  /OS (?<major>\d+)_(?<minor>\d+)_?(?<patch>\d+)?/.freeze
9
9
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Browser
4
- VERSION = "6.0.0"
4
+ VERSION = "6.1.0"
5
5
  end
data/test/sample_app.rb CHANGED
@@ -9,7 +9,7 @@ class PagesController < ActionController::Base
9
9
  end
10
10
  end
11
11
 
12
- class PotsController < ActionController::API
12
+ class BotsController < ActionController::API
13
13
  def index
14
14
  render json: {
15
15
  isBot: browser.bot?,
@@ -42,7 +42,7 @@ class SampleApp < Rails::Application
42
42
 
43
43
  get "/home", to: "pages#home"
44
44
 
45
- get "/api/pages", to: "pots#index"
45
+ get "/api/pages", to: "bots#index"
46
46
  end
47
47
 
48
48
  config.middleware.use Browser::Middleware do
data/test/ua.yml CHANGED
@@ -30,6 +30,7 @@ BLACKBERRY7: "Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/53
30
30
  BLACKBERRY: "BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103"
31
31
  CHROME: "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_4; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4"
32
32
  CHROME_OS: "Mozilla/5.0 (X11; CrOS x86_64 3701.81.0) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.57 Safari/537.31."
33
+ CHROME_REQUEST_DESKTOP_SITE: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/130 Version/11.1.1 Safari/605.1.15"
33
34
  COREMEDIA: "Apple Mac OS X v10.6.4 CoreMedia v1.0.0.10F569"
34
35
  CUSTOM_APP: "Our App 0.0.1 (Linux; Android 4.0.3; HTC Ruby Build/IML74K; en_CA)"
35
36
  DUCKDUCKGO_BROWSER_ANDROID: Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.96 Mobile Safari/537.36 DuckDuckGo/5"
@@ -83,11 +84,11 @@ KINDLE: "Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Sa
83
84
  KINDLE_FIRE: "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
84
85
  KINDLE_FIRE_HD: "Mozilla/5.0 (Linux; U; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Safari/535.19 Silk-Accelerated=true"
85
86
  KINDLE_FIRE_HD_MOBILE: "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true"
86
- KINDLE_SILK_TABLET: Mozilla/5.0 (Linux; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Safari/537.36
87
87
  KINDLE_SILK_DESKTOP: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Safari/537.36
88
88
  KINDLE_SILK_MOBILE: Mozilla/5.0 (Linux; U; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Mobile Safari/537.36
89
- KINDLE_SILK_TABLET_1ST_GEN: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true
90
89
  KINDLE_SILK_MOBILE_1ST_GEN: Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=true
90
+ KINDLE_SILK_TABLET: Mozilla/5.0 (Linux; Android 4.4.3; KFTHWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/44.1.54 like Chrome/44.0.2403.63 Safari/537.36
91
+ KINDLE_SILK_TABLET_1ST_GEN: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true
91
92
  LUMIA800: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7"
92
93
  MAC_OS: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15"
93
94
  MAC_OSX: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"
@@ -127,8 +128,6 @@ QQ_BROWSER_ANDROID: "Mozilla/5.0 (Linux; Android 5.1.1; SM-N9108V Build/LMY47X)
127
128
  QQ_BROWSER_IOS: "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E238 QQ/6.3.3.432 V1_IPH_SQ_6.3.3_1_APP_A Pixel/640 Core/UIWebView NetType/WIFI Mem/47"
128
129
  QQ_BROWSER_MAC: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36 QQBrowser/4.2.4753.400"
129
130
  QQ_BROWSER_MAC_LITE: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 QQBrowserLite/1.0.4"
130
- SOUGOU_BROWSER: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"
131
- SOUGOU_BROWSER_MOBILE: "Mozilla/5.0 (Linux; Android 7.1.2; Redmi 4X Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.106 Mobile Safari/537.36 AWP/2.0 SogouMSE,SogouMobileBrowser/5.28.12"
132
131
  QUICKTIME: "QuickTime/7.6.8 (qtver=7.6.8;os=Windows NT 5.1Service Pack 3)"
133
132
  SAFARI3: "Mozilla/5.0 (Windows; U; Windows NT 6.0; en) AppleWebKit/522.15.5 (KHTML, like Gecko) Version/3.0.3 Safari/522.15.5"
134
133
  SAFARI4: "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr-ch) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
@@ -143,14 +142,16 @@ SAFARI_IPHONE_WEBAPP_MODE: "Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_2 like Mac O
143
142
  SAMSUNG: "Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; SAMSUNG-SGH-I497 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"
144
143
  SAMSUNG_BROWSER: "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-N960U) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36"
145
144
  SAMSUNG_CHROME: "Mozilla/5.0 (Linux; Android 4.4.2; en-gb; SAMSUNG GT-I9195/I9195XXUCNEA Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36"
146
- SAMSUNG_SM-G975F: "Mozilla/5.0 (Linux; Android 10; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36"
147
- SAMSUNG_SM-G960F: "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36"
148
145
  SAMSUNG_SM-F700F: "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-F700F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36"
149
146
  SAMSUNG_SM-FAKE: "Mozilla/5.0 (Linux; Android 8.0.0; SM-0000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36"
147
+ SAMSUNG_SM-G960F: "Mozilla/5.0 (Linux; Android 8.0.0; SM-G960F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36"
148
+ SAMSUNG_SM-G975F: "Mozilla/5.0 (Linux; Android 10; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36"
150
149
  SMART_TV: "Mozilla/5.0 (SmartHub; SMART-TV; U; Linux/SmartTV) AppleWebKit/531.2+ (KHTML, like Gecko) WebBrowser/1.0 SmartTV Safari/531.2+"
151
150
  SNAPCHAT: Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Snapchat/10.69.5.72 (iPhone10,3; iOS 13.2.2; gzip)
152
151
  SNAPCHAT_EMPTY_STRING_VERSION: "Mozilla/5.0 (Linux; Android 9; SM-N960U Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.96 Mobile Safari/537.36Snapchat10.70.0.0 (SM-N960U; Android 9#N960USQS3CSJ2#28; gzip)"
153
152
  SNAPCHAT_SPACE_VERSION: "Mozilla/5.0 (Linux; Android 9; SM-N960U Build/PPR1.180610.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.96 Mobile Safari/537.36Snapchat 10.70.0.0 (SM-N960U; Android 9#N960USQS3CSJ2#28; gzip)"
153
+ SOUGOU_BROWSER: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0"
154
+ SOUGOU_BROWSER_MOBILE: "Mozilla/5.0 (Linux; Android 7.1.2; Redmi 4X Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.106 Mobile Safari/537.36 AWP/2.0 SogouMSE,SogouMobileBrowser/5.28.12"
154
155
  SPUTNIK: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 SputnikBrowser/4.1.2801.0 Safari/537.36"
155
156
  SURFACE: "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0; Touch)"
156
157
  SYMBIAN: "Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba"
data/test/ua_bots.yml CHANGED
@@ -1,9 +1,13 @@
1
1
  ---
2
2
  ADLXBOT: "Mozilla/5.0 (compatible; adidxbot/2.0; +http://www.bing.com/bingbot.htm)"
3
3
  ADS_TXT_CRAWLER: "AdsTxtCrawler/1.0"
4
+ AMAZONBOT: Amazonbot
4
5
  ANDERSPINK: "Mozilla/5.0 (compatible; AndersPinkBot/1.0; +http://anderspink.com/bot.html)"
6
+ ANTHROPIC_AI: anthropic-ai
5
7
  APIS_GOOGLE: "APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)"
6
8
  APPLE_BOT: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1)"
9
+ APPLEBOT: Applebot
10
+ APPSIGNALBOT: "AppSignalBot/1.0 (+https://appsignal.com)"
7
11
  ARCHIVEBOT: "ArchiveTeam ArchiveBot/20190617.01 (wpull 2.0.3) and not Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
8
12
  ASK: "Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)"
9
13
  AWS_ELB: ELB-HealthChecker/1.0
@@ -13,25 +17,35 @@ BINGBOT: "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm
13
17
  BINGPREVIEW: "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b"
14
18
  BUBING: "BUbiNG (+http://law.di.unimi.it/BUbiNG.html)"
15
19
  BUZZBOT: "Buzzbot/1.0 (Buzzbot; http://www.buzzstream.com; buzzbot@buzzstream.com)"
20
+ BYTESPIDER: Bytespider
21
+ CCBOT: CCBot
22
+ CHATGPT_USER: ChatGPT-User
23
+ CHECKLY: "Checkly/1.0 (https://www.checklyhq.com)"
16
24
  CHROME_LIGHTHOUSE: "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3694.0 Mobile Safari/537.36 Chrome-Lighthouse"
17
25
  CIPACRAWLER: "CipaCrawler/3.0 (info@domaincrawler.com; http://www.domaincrawler.com/www.example.com)"
26
+ CLAUDE_WEB: Claude-Web
27
+ CLAUDEBOT: ClaudeBot
18
28
  CLOUDFLARE: "Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) AppleWebKit/534.34"
29
+ COHERE-AI: cohere-ai
19
30
  COMMONCRAWL: "CCBot/2.0 (http://commoncrawl.org/faq/)"
20
31
  COMODO_SSL_CHECKER: "COMODO SSL Checker"
21
32
  COPYPANTS: "Mozilla/5.0 (compatible; BotPants/1.0; Linux; +info@copypants.com) KHTML/3.5.5 (like Gecko)"
22
33
  DATAFEEDWATCH: "Datafeedwatch/2.1.x"
23
34
  DATANYZE: "Mozilla/5.0 (X11; Datanyze; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
24
35
  DAUMOA: "Mozilla/5.0 (compatible; MSIE or Firefox mutant; not on Windows server;) Daumoa 4.0"
36
+ DIFFBOT: Diffbot
25
37
  DOMAINAREANIMATOR: "Domain Re-Animator Bot (http://domainreanimator.com) - support@domainreanimator.com"
26
38
  DOT_BOT: "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)"
27
39
  DUCKDUCKGO: "DuckDuckBot/1.0; (+http://duckduckgo.com/duckduckbot.html)"
28
40
  EZPUBLISH: "eZ Publish Link Validator"
29
41
  FACEBOOK_BOT: "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
42
+ FACEBOOKBOT: FacebookBot
30
43
  FYREBOT: "Fyrebot/1.0"
31
44
  GARLIK: "GarlikCrawler/1.2 (http://garlik.com/, crawler@garlik.com)"
32
45
  GERMCRAWLER: "GermCrawler"
33
46
  GO_1.1_PACKAGE_HTTP: "Go 1.1 package http"
34
47
  GO_HTTP_CLIENT: "Go-http-client"
48
+ GOOGLE-EXTENDED: Google-Extended
35
49
  GOOGLE_BOT: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
36
50
  GOOGLE_IMAGE_PROXY: "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)"
37
51
  GOOGLE_PAGE_SPEED_INSIGHTS: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko; Google Page Speed Insights) Chrome/22.0.1229 Safari/537.4"
@@ -40,6 +54,7 @@ GOOGLE_SITE_VERIFICATION: Mozilla/5.0 (compatible; Google-Site-Verification/1.0)
40
54
  GOOGLE_STACKDRIVER_UPTIME_CHECKS: "GoogleStackdriverMonitoring-UptimeChecks"
41
55
  GOOGLE_STRUCTURED_DATA_TESTING_TOOL2: "Mozilla/5.0 (compatible; Google-Structured-Data-Testing-Tool +http://developers.google.com/structured-data/testing-tool/)"
42
56
  GOOGLE_STRUCTURED_DATA_TESTING_TOOL: "Mozilla/5.0 (compatible; X11; Linux x86_64; Google-StructuredDataTestingTool; +http://www.google.com/webmasters/tools/richsnippets)"
57
+ GPTBOT: GPTBot
43
58
  GRAPESHOT: "Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)"
44
59
  HTTRACK: "Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)"
45
60
  IMPLISENSEBOT: "ImplisenseBot 1.0"
@@ -61,7 +76,9 @@ MSNBOT_MEDIA: "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)"
61
76
  NETCRAFT2: Netcraft SSL Server Survey - contact info@netcraft.com
62
77
  NETCRAFT: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)
63
78
  NEWRELICPINGER: NewRelicPinger/1.0 (12345)
79
+ OMGILI: omgili
64
80
  PAESSLER: Mozilla/5.0 (compatible; PRTG Network Monitor (www.paessler.com); Windows)
81
+ PERPLEXITYBOT: PerplexityBot
65
82
  PR-CY_RU: Mozilla/5.0 (compatible; PR-CY.RU; + https://a.pr-cy.ru)
66
83
  PRIVACYAWAREBOT: "Mozilla/5.0 (compatible; PrivacyAwareBot/1.1; +http://www.privacyaware.org)"
67
84
  PROXIMIC: "Mozilla/5.0 (compatible; proximic; +http://www.proximic.com/info/spider.php)"
@@ -98,6 +115,7 @@ YAHOO_SLURP: "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/
98
115
  YANDEX_DIRECT: "Mozilla/5.0 (compatible; YandexDirect/3.0; +http://yandex.com/bots)"
99
116
  YANDEX_METRIKA: "Mozilla/5.0 (compatible; YandexMetrika/3.0; +http://yandex.com/bots)"
100
117
  YANGA: "Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)"
118
+ YOUBOT: YouBot
101
119
  ZABBIX: "Zabbix"
102
120
  ZOOMBOT: "ZoomBot (Linkbot 1.0 http://suite.seozoom.it/bot.html)"
103
121
  ZOOMINFOBOT: "ZoominfoBot (zoominfobot at zoominfo dot com)"
@@ -26,6 +26,12 @@ class ChromeTest < Minitest::Test
26
26
  assert_equal "19", browser.version
27
27
  end
28
28
 
29
+ test "detects chrome in desktop mode" do
30
+ browser = Browser.new(Browser["CHROME_REQUEST_DESKTOP_SITE"])
31
+ assert browser.chromium_based?
32
+ assert browser.chrome?
33
+ end
34
+
29
35
  test "detects samsung chrome" do
30
36
  browser = Browser.new(Browser["SAMSUNG_CHROME"])
31
37
 
@@ -25,6 +25,12 @@ class IosTest < Minitest::Test
25
25
  assert_equal "5", browser.version
26
26
  end
27
27
 
28
+ test "detects chrome in desktop mode" do
29
+ browser = Browser.new(Browser["CHROME_REQUEST_DESKTOP_SITE"])
30
+ assert browser.platform.ios?
31
+ assert browser.device.mobile?
32
+ end
33
+
28
34
  test "detects safari in webapp mode" do
29
35
  browser = Browser.new(Browser["SAFARI_IPAD_WEBAPP_MODE"])
30
36
  refute browser.safari?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browser
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-30 00:00:00.000000000 Z
11
+ date: 2024-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -348,7 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
348
348
  - !ruby/object:Gem::Version
349
349
  version: '0'
350
350
  requirements: []
351
- rubygems_version: 3.5.9
351
+ rubygems_version: 3.5.16
352
352
  signing_key:
353
353
  specification_version: 4
354
354
  summary: Do some browser detection with Ruby.