[helpers] Update isAIBot() list using Crawlers enum

This commit is contained in:
Faisal Salman 2025-09-02 22:00:02 +07:00
parent b1d9dcafcd
commit 9bef871e41
2 changed files with 55 additions and 55 deletions

View File

@ -469,7 +469,7 @@ const Extension = Object.freeze({
BRAVE_BOT: 'Bravebot', BRAVE_BOT: 'Bravebot',
BYTEDANCE_BYTESPIDER: 'Bytespider', BYTEDANCE_BYTESPIDER: 'Bytespider',
BYTEDANCE_TIKTOKSPIDER: 'TikTokSpider', BYTEDANCE_TIKTOKSPIDER: 'TikTokSpider',
CC_BOT: 'CCBot', COMMON_CRAWL_CCBOT: 'CCBot',
COCCOC_BOT_WEB: 'coccocbot-web', COCCOC_BOT_WEB: 'coccocbot-web',
COCCOC_BOT_IMAGE: 'coccocbot-image', COCCOC_BOT_IMAGE: 'coccocbot-image',
COHERE_TRAINING_DATA_CRAWLER: 'cohere-training-data-crawler', COHERE_TRAINING_DATA_CRAWLER: 'cohere-training-data-crawler',
@ -497,6 +497,7 @@ const Extension = Object.freeze({
GOOGLE_BOT_NEWS: 'Googlebot-News', GOOGLE_BOT_NEWS: 'Googlebot-News',
GOOGLE_BOT_VIDEO: 'Googlebot-Video', GOOGLE_BOT_VIDEO: 'Googlebot-Video',
GOOGLE_CLOUDVERTEXBOT: 'Google-CloudVertexBot', GOOGLE_CLOUDVERTEXBOT: 'Google-CloudVertexBot',
GOOGLE_EXTENDED: 'Google-Extended',
GOOGLE_INSPECTIONTOOL: 'Google-InspectionTool', GOOGLE_INSPECTIONTOOL: 'Google-InspectionTool',
GOOGLE_OTHER: 'GoogleOther', GOOGLE_OTHER: 'GoogleOther',
GOOGLE_OTHER_IMAGE: 'GoogleOther-Image', GOOGLE_OTHER_IMAGE: 'GoogleOther-Image',
@ -529,7 +530,7 @@ const Extension = Object.freeze({
ONCRAWL: 'OnCrawl', ONCRAWL: 'OnCrawl',
ONESPOT_SCRAPERBOT: 'Onespot-ScraperBot', ONESPOT_SCRAPERBOT: 'Onespot-ScraperBot',
OPENAI_GPTBOT: 'GPTBot', OPENAI_GPTBOT: 'GPTBot',
OPENAI_SEARCH: 'OAI-SearchBot', OPENAI_SEARCH_BOT: 'OAI-SearchBot',
PERPLEXITY_BOT: 'PerplexityBot', PERPLEXITY_BOT: 'PerplexityBot',
QIHOO_360_SPIDER: '360Spider', QIHOO_360_SPIDER: '360Spider',
QWANT_BOT: 'Qwantbot', QWANT_BOT: 'Qwantbot',

View File

@ -8,7 +8,7 @@
/*jshint esversion: 6 */ /*jshint esversion: 6 */
const { UAParser } = require('../main/ua-parser'); const { UAParser } = require('../main/ua-parser');
const { CPUArch, OSName, EngineName } = require('../enums/ua-parser-enums'); const { CPUArch, OSName, EngineName, Extension } = require('../enums/ua-parser-enums');
const { Bots } = require('../extensions/ua-parser-extensions'); const { Bots } = require('../extensions/ua-parser-extensions');
const { isFromEU } = require('detect-europe-js'); const { isFromEU } = require('detect-europe-js');
const { isFrozenUA } = require('ua-is-frozen'); const { isFrozenUA } = require('ua-is-frozen');
@ -41,125 +41,124 @@ const isAppleSilicon = (resultOrUA) => {
return false; return false;
} }
const Crawler = Extension.BrowserName.Crawlers;
const isAIBot = (resultOrUA) => [ const isAIBot = (resultOrUA) => [
// AI2 // AI2
'ai2bot', Crawler.AI2_BOT,
// Amazon // Amazon
'amazonbot', Crawler.AMAZON_BOT,
// Anthropic // Anthropic
'anthropic-ai', Crawler.ANTHROPIC_AI,
'claude-web', Crawler.ANTHROPIC_CLAUDE_BOT,
'claude-searchbot', Crawler.ANTHROPIC_CLAUDE_SEARCHBOT,
'claudebot', Crawler.ANTHROPIC_CLAUDE_WEB,
// Apple // Apple
'applebot', Crawler.APPLE_BOT,
'applebot-extended', Crawler.APPLE_BOT_EXTENDED,
// Brave // Brave
'bravebot', Crawler.BRAVE_BOT,
// ByteDance // ByteDance
'bytespider', Crawler.BYTEDANCE_BYTESPIDER,
'tiktokspider', Crawler.BYTEDANCE_TIKTOKSPIDER,
// Cohere // Cohere
'cohere-training-data-crawler', Crawler.COHERE_TRAINING_DATA_CRAWLER,
// Common Crawl // Common Crawl
'ccbot', Crawler.COMMON_CRAWL_CCBOT,
// Coveo // Coveo
'coveobot', Crawler.COVEO_BOT,
// DataForSeo // DataForSeo
'dataforseobot', Crawler.DATAFORSEO_BOT,
// DeepSeek // DeepSeek
'deepseekbot', Crawler.DEEPSEEK_BOT,
// Diffbot // Diffbot
'diffbot', Crawler.DIFFBOT,
// Google // Google
'googleother', Crawler.GOOGLE_EXTENDED,
'googleother-image', Crawler.GOOGLE_OTHER,
'googleother-video', Crawler.GOOGLE_OTHER_IMAGE,
'google-cloudvertexbot', Crawler.GOOGLE_OTHER_VIDEO,
'google-extended', Crawler.GOOGLE_CLOUDVERTEXBOT,
// Hive AI // Hive AI
'imagesiftbot', Crawler.HIVE_IMAGESIFTBOT,
// Huawei // Huawei
'petalbot', Crawler.HUAWEI_PETALBOT,
'pangubot', Crawler.HUAWEI_PANGUBOT,
// Hugging Face // Hugging Face
'huggingface-bot', Crawler.HUGGINGFACE_BOT,
// Kangaroo // Kangaroo
'kangaroo bot', Crawler.KANGAROO_BOT,
// Mendable.ai // Mendable.ai
'firecrawlagent', Crawler.FIRECRAWL_AGENT,
// Meta // Meta
'facebookbot', Crawler.META_FACEBOOKBOT,
'meta-externalagent', Crawler.META_EXTERNALAGENT,
// OpenAI // OpenAI
'gptbot', Crawler.OPENAI_GPTBOT,
'oai-searchbot', Crawler.OPENAI_SEARCH_BOT,
// Perplexity // Perplexity
'perplexitybot', Crawler.PERPLEXITY_BOT,
// Replicate // Replicate
'replicate-bot', Crawler.REPLICATE_BOT,
// Runpod // Runpod
'runpod-bot', Crawler.RUNPOD_BOT,
// SB Intuitions // SB Intuitions
'sbintuitionsbot', Crawler.SB_INTUITIONS_BOT,
// Semrush // Semrush
'semrushbot-ocob', Crawler.SEMRUSH_BOT_CONTENTSHAKE,
// Timpi // Timpi
'timpibot', Crawler.TIMPI_BOT,
// Together AI // Together AI
'together-bot', Crawler.TOGETHER_BOT,
// Velen.io // Velen.io
'velenpublicwebcrawler', Crawler.HUNTER_VELENPUBLICWEBCRAWLER,
// Vercel // Vercel
'v0bot', Crawler.VERCEL_V0BOT,
// Webz.io // Webz.io
'omgili', Crawler.WEBZIO_OMGILI,
'omgilibot', Crawler.WEBZIO_OMGILI_BOT,
'webzio-extended', Crawler.WEBZIO_EXTENDED,
// X // X
'xai-bot', Crawler.XAI_BOT,
// You.com // You.com
'youbot', Crawler.YOU_BOT,
// Zhipu AI // Zhipu AI
'chatglm-spider', Crawler.ZHIPU_CHATGLM_SPIDER
]
// Zyte .map((s) => s.toLowerCase())
'scrapy' .includes(String(toResult(resultOrUA, Bots).browser.name).toLowerCase());
].includes(String(toResult(resultOrUA, Bots).browser.name).toLowerCase());
const isBot = (resultOrUA) => [ const isBot = (resultOrUA) => [
'cli', 'cli',