which-bot
Version:
detect which bot is from user-agent and is trustable
245 lines • 6.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = require("./util");
const rules = [
{
company: 'Google',
bots: [
{
name: 'googlebot-image',
pattern: /Googlebot-Image/,
},
{
name: 'googlebot-news',
pattern: /Googlebot-News/,
},
{
name: 'googlebot-video',
pattern: /Googlebot-Video/,
},
{
name: 'googlebot',
pattern: /Googlebot/i,
},
{
name: 'apis-google',
pattern: /APIs-Google/,
},
{
name: 'adsense',
pattern: /Mediapartners-Google/,
},
{
name: 'adsbot-mobile-web-android',
pattern: /Android.*AdsBot-Google-Mobile/,
},
{
name: 'adsbot-mobile-web',
pattern: /AdsBot-Google-Mobile/,
},
{
name: 'adsbot',
pattern: /AdsBot-Google/,
},
{
name: 'mobile-apps-android',
pattern: /AdsBot-Google-Mobile-Apps/,
},
{
name: 'feed-fetcher',
pattern: /FeedFetcher-Google/,
},
{
name: 'read-aloud',
pattern: /Google-Read-Aloud/,
},
{
name: 'duplex',
pattern: /DuplexWeb-Google/,
},
{
name: 'favicon',
pattern: /Google Favicon/,
},
{
name: 'web-light',
pattern: /googleweblight/,
},
{
name: 'store-bot',
pattern: /Storebot-Google/,
},
],
hosts: [
'google.com',
'googlebot.com',
],
},
{
company: 'Baidu',
bots: [
{
name: 'baidu-image',
pattern: /Baiduspider-image/,
},
{
name: 'baidu-video',
pattern: /Baiduspider-video/,
},
{
name: 'baidu-news',
pattern: /Baiduspider-news/,
},
{
name: 'baidu-favo',
pattern: /Baiduspider-favo/,
},
{
name: 'baidu-cpro',
pattern: /Baiduspider-cpro/,
},
{
name: 'baidu-ads',
pattern: /Baiduspider-ads/,
},
{
name: 'baidu-smartapp',
pattern: /Baiduspider(-render)?.*Smartapp/,
},
{
name: 'baidu',
pattern: /Baiduspider(-render)?/,
},
],
hosts: [
'baidu.com',
'baidu.jp',
],
},
{
company: 'Bing',
bots: [
{
name: 'bingbot',
pattern: /Bingbot/i,
},
],
hosts: [
'search.msn.com',
],
},
{
company: 'Alibaba',
bots: [
{
name: 'shenma-mobile',
pattern: /YisouSpider.*Mobile/,
},
{
name: 'shenma',
pattern: /YisouSpider/,
},
],
hosts: [
'sm.cn',
],
},
{
company: '360',
bots: [
{
name: '360-image',
pattern: /360Spider-Image/,
},
{
name: '360-video',
pattern: /360Spider-Video/,
},
{
name: '360-mobile',
pattern: /Mobile.*(Haosou|360)Spider/,
},
{
name: '360',
pattern: /360Spider/,
},
],
},
{
company: 'Tencent',
bots: [
{
name: 'soso-image',
pattern: /Sosoimagespider/,
},
{
name: 'soso',
pattern: /Sosospider/,
},
],
},
{
company: 'Sogou',
bots: [
{
name: 'sogou-video',
pattern: /Sogou Video Spider/,
},
{
name: 'sogou-pic',
pattern: /Sogou Pic Spider/,
},
{
name: 'sogou-news',
pattern: /Sogou News Spider/,
},
{
name: 'sogou-inst',
pattern: /Sogou inst spider/,
},
{
name: 'sogou-web',
pattern: /Sogou web spider/,
},
{
name: 'sogou',
pattern: /Sogou.*spider/i,
},
],
},
{
company: 'Bytedance',
bots: [
{
name: 'toutiao-android',
pattern: /Android.*Mobile.*Bytespider/,
},
{
name: 'toutiao-ios',
pattern: /iPhone.*Mobile.*Bytespider/,
},
{
name: 'toutiao',
pattern: /Bytespider/,
},
],
hosts: [
'bytedance.com',
],
},
{
company: 'Others',
bots: [
{
name: 'unrecognized-spider',
pattern: /spider/i,
},
{
name: 'unrecognized-bot',
pattern: /bot/i,
},
],
},
];
exports.default = (0, util_1.serializeRules)(rules);
//# sourceMappingURL=rules.js.map