Skip to content

Commit 9bef871

Browse files
committed
[helpers] Update isAIBot() list using Crawlers enum
1 parent b1d9dca commit 9bef871

File tree

2 files changed

+55
-55
lines changed

2 files changed

+55
-55
lines changed

src/enums/ua-parser-enums.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ const Extension = Object.freeze({
469469
BRAVE_BOT: 'Bravebot',
470470
BYTEDANCE_BYTESPIDER: 'Bytespider',
471471
BYTEDANCE_TIKTOKSPIDER: 'TikTokSpider',
472-
CC_BOT: 'CCBot',
472+
COMMON_CRAWL_CCBOT: 'CCBot',
473473
COCCOC_BOT_WEB: 'coccocbot-web',
474474
COCCOC_BOT_IMAGE: 'coccocbot-image',
475475
COHERE_TRAINING_DATA_CRAWLER: 'cohere-training-data-crawler',
@@ -497,6 +497,7 @@ const Extension = Object.freeze({
497497
GOOGLE_BOT_NEWS: 'Googlebot-News',
498498
GOOGLE_BOT_VIDEO: 'Googlebot-Video',
499499
GOOGLE_CLOUDVERTEXBOT: 'Google-CloudVertexBot',
500+
GOOGLE_EXTENDED: 'Google-Extended',
500501
GOOGLE_INSPECTIONTOOL: 'Google-InspectionTool',
501502
GOOGLE_OTHER: 'GoogleOther',
502503
GOOGLE_OTHER_IMAGE: 'GoogleOther-Image',
@@ -529,7 +530,7 @@ const Extension = Object.freeze({
529530
ONCRAWL: 'OnCrawl',
530531
ONESPOT_SCRAPERBOT: 'Onespot-ScraperBot',
531532
OPENAI_GPTBOT: 'GPTBot',
532-
OPENAI_SEARCH: 'OAI-SearchBot',
533+
OPENAI_SEARCH_BOT: 'OAI-SearchBot',
533534
PERPLEXITY_BOT: 'PerplexityBot',
534535
QIHOO_360_SPIDER: '360Spider',
535536
QWANT_BOT: 'Qwantbot',

src/helpers/ua-parser-helpers.js

Lines changed: 52 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/*jshint esversion: 6 */
99

1010
const { UAParser } = require('../main/ua-parser');
11-
const { CPUArch, OSName, EngineName } = require('../enums/ua-parser-enums');
11+
const { CPUArch, OSName, EngineName, Extension } = require('../enums/ua-parser-enums');
1212
const { Bots } = require('../extensions/ua-parser-extensions');
1313
const { isFromEU } = require('detect-europe-js');
1414
const { isFrozenUA } = require('ua-is-frozen');
@@ -41,125 +41,124 @@ const isAppleSilicon = (resultOrUA) => {
4141
return false;
4242
}
4343

44+
const Crawler = Extension.BrowserName.Crawlers;
4445
const isAIBot = (resultOrUA) => [
4546

4647
// AI2
47-
'ai2bot',
48+
Crawler.AI2_BOT,
4849

4950
// Amazon
50-
'amazonbot',
51+
Crawler.AMAZON_BOT,
5152

5253
// Anthropic
53-
'anthropic-ai',
54-
'claude-web',
55-
'claude-searchbot',
56-
'claudebot',
54+
Crawler.ANTHROPIC_AI,
55+
Crawler.ANTHROPIC_CLAUDE_BOT,
56+
Crawler.ANTHROPIC_CLAUDE_SEARCHBOT,
57+
Crawler.ANTHROPIC_CLAUDE_WEB,
5758

5859
// Apple
59-
'applebot',
60-
'applebot-extended',
60+
Crawler.APPLE_BOT,
61+
Crawler.APPLE_BOT_EXTENDED,
6162

6263
// Brave
63-
'bravebot',
64+
Crawler.BRAVE_BOT,
6465

6566
// ByteDance
66-
'bytespider',
67-
'tiktokspider',
67+
Crawler.BYTEDANCE_BYTESPIDER,
68+
Crawler.BYTEDANCE_TIKTOKSPIDER,
6869

6970
// Cohere
70-
'cohere-training-data-crawler',
71+
Crawler.COHERE_TRAINING_DATA_CRAWLER,
7172

7273
// Common Crawl
73-
'ccbot',
74+
Crawler.COMMON_CRAWL_CCBOT,
7475

7576
// Coveo
76-
'coveobot',
77+
Crawler.COVEO_BOT,
7778

7879
// DataForSeo
79-
'dataforseobot',
80+
Crawler.DATAFORSEO_BOT,
8081

8182
// DeepSeek
82-
'deepseekbot',
83+
Crawler.DEEPSEEK_BOT,
8384

8485
// Diffbot
85-
'diffbot',
86+
Crawler.DIFFBOT,
8687

8788
// Google
88-
'googleother',
89-
'googleother-image',
90-
'googleother-video',
91-
'google-cloudvertexbot',
92-
'google-extended',
89+
Crawler.GOOGLE_EXTENDED,
90+
Crawler.GOOGLE_OTHER,
91+
Crawler.GOOGLE_OTHER_IMAGE,
92+
Crawler.GOOGLE_OTHER_VIDEO,
93+
Crawler.GOOGLE_CLOUDVERTEXBOT,
9394

9495
// Hive AI
95-
'imagesiftbot',
96+
Crawler.HIVE_IMAGESIFTBOT,
9697

9798
// Huawei
98-
'petalbot',
99-
'pangubot',
99+
Crawler.HUAWEI_PETALBOT,
100+
Crawler.HUAWEI_PANGUBOT,
100101

101102
// Hugging Face
102-
'huggingface-bot',
103+
Crawler.HUGGINGFACE_BOT,
103104

104105
// Kangaroo
105-
'kangaroo bot',
106+
Crawler.KANGAROO_BOT,
106107

107108
// Mendable.ai
108-
'firecrawlagent',
109+
Crawler.FIRECRAWL_AGENT,
109110

110111
// Meta
111-
'facebookbot',
112-
'meta-externalagent',
112+
Crawler.META_FACEBOOKBOT,
113+
Crawler.META_EXTERNALAGENT,
113114

114115
// OpenAI
115-
'gptbot',
116-
'oai-searchbot',
116+
Crawler.OPENAI_GPTBOT,
117+
Crawler.OPENAI_SEARCH_BOT,
117118

118119
// Perplexity
119-
'perplexitybot',
120+
Crawler.PERPLEXITY_BOT,
120121

121122
// Replicate
122-
'replicate-bot',
123+
Crawler.REPLICATE_BOT,
123124

124125
// Runpod
125-
'runpod-bot',
126+
Crawler.RUNPOD_BOT,
126127

127128
// SB Intuitions
128-
'sbintuitionsbot',
129+
Crawler.SB_INTUITIONS_BOT,
129130

130131
// Semrush
131-
'semrushbot-ocob',
132+
Crawler.SEMRUSH_BOT_CONTENTSHAKE,
132133

133134
// Timpi
134-
'timpibot',
135+
Crawler.TIMPI_BOT,
135136

136137
// Together AI
137-
'together-bot',
138+
Crawler.TOGETHER_BOT,
138139

139140
// Velen.io
140-
'velenpublicwebcrawler',
141+
Crawler.HUNTER_VELENPUBLICWEBCRAWLER,
141142

142143
// Vercel
143-
'v0bot',
144+
Crawler.VERCEL_V0BOT,
144145

145146
// Webz.io
146-
'omgili',
147-
'omgilibot',
148-
'webzio-extended',
147+
Crawler.WEBZIO_OMGILI,
148+
Crawler.WEBZIO_OMGILI_BOT,
149+
Crawler.WEBZIO_EXTENDED,
149150

150151
// X
151-
'xai-bot',
152+
Crawler.XAI_BOT,
152153

153154
// You.com
154-
'youbot',
155+
Crawler.YOU_BOT,
155156

156157
// Zhipu AI
157-
'chatglm-spider',
158-
159-
// Zyte
160-
'scrapy'
161-
162-
].includes(String(toResult(resultOrUA, Bots).browser.name).toLowerCase());
158+
Crawler.ZHIPU_CHATGLM_SPIDER
159+
]
160+
.map((s) => s.toLowerCase())
161+
.includes(String(toResult(resultOrUA, Bots).browser.name).toLowerCase());
163162

164163
const isBot = (resultOrUA) => [
165164
'cli',

0 commit comments

Comments
 (0)