From 22eae9f70cbbecf4d425c5195081657b01bf1274 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Mon, 7 Aug 2023 21:39:21 +0700 Subject: [PATCH] [extensions] Add GPTBot to Bots --- src/extensions/ua-parser-extensions.js | 3 +++ test/mocha-test-extension.js | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/extensions/ua-parser-extensions.js b/src/extensions/ua-parser-extensions.js index 30de6d1..b7ce27e 100644 --- a/src/extensions/ua-parser-extensions.js +++ b/src/extensions/ua-parser-extensions.js @@ -26,6 +26,9 @@ const Bots = Object.freeze({ // Googlebot / BingBot / MSNBot / FacebookBot [/((?:google|bing|msn|facebook)bot(?:[\-imagevdo]{0,6})|bingpreview)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']], + // GPTBot - https://platform.openai.com/docs/gptbot + [/(gptbot)\/([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']], + // Slackbot - https://api.slack.com/robots [/(slack(?:bot)?(?:-imgproxy|-linkexpanding)?) ([\w\.]+)/i], [NAME, VERSION, [TYPE, 'bot']] ] diff --git a/test/mocha-test-extension.js b/test/mocha-test-extension.js index 451a99c..e83ad14 100644 --- a/test/mocha-test-extension.js +++ b/test/mocha-test-extension.js @@ -9,6 +9,7 @@ const Ext = require('ua-parser-js/extensions'); describe('Bots', () => { it('Can detect bots', () => { const googleBot = 'Googlebot-Video/1.0'; + const gptBot = 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.0; +https://openai.com/gptbot)'; const msnBot = 'msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)'; const bingPreview = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b'; const opera = 'Opera/8.5 (Macintosh; PPC Mac OS X; U; en)'; @@ -19,6 +20,7 @@ describe('Bots', () => { const botParser = new UAParser(Ext.Bots); assert.deepEqual(botParser.setUA(googleBot).getBrowser(), {name: "Googlebot-Video", version: "1.0", major: "1", type: "bot"}); + assert.deepEqual(botParser.setUA(gptBot).getBrowser(), {name: "GPTBot", version: "1.0", major: "1", type: "bot"}); assert.deepEqual(botParser.setUA(msnBot).getBrowser(), {name: "msnbot-media", version: "1.1", major: "1", type: "bot"}); assert.deepEqual(botParser.setUA(bingPreview).getBrowser(), {name: "BingPreview", version: "1.0b", major: "1", type: "bot"}); assert.deepEqual(botParser.setUA(opera).getBrowser(), {name: "Opera", version: "8.5", major: "8"});