feat(cli): support blocking bots
This commit is contained in:
parent
1f9e2d856f
commit
1589c4c6fd
4 changed files with 47 additions and 3 deletions
42
cli/lib/tasks/addBlockedRobot.js
Normal file
42
cli/lib/tasks/addBlockedRobot.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
import inquirer from 'inquirer';
|
||||
import { loadConfig } from '../config.js';
|
||||
import { initDirectusClient, searchItems, createItem } from '../directus/client.js';
|
||||
|
||||
export const addBlockedRobot = async () => {
|
||||
const config = await loadConfig();
|
||||
|
||||
initDirectusClient(config);
|
||||
|
||||
const robots = await searchItems('robots', '/');
|
||||
|
||||
let rootRobot = robots.find(r => r.path === '/');
|
||||
|
||||
if (!rootRobot) {
|
||||
console.log('ℹ️ No robots entry for `/` found. Creating one...');
|
||||
|
||||
const newRobot = await createItem('robots', { path: '/' });
|
||||
|
||||
rootRobot = newRobot.data || newRobot;
|
||||
|
||||
console.log('✅ Created robots rule for `/`');
|
||||
}
|
||||
|
||||
const { userAgent } = await inquirer.prompt({
|
||||
name: 'userAgent',
|
||||
message: '🤖 Enter the user-agent string to block:',
|
||||
validate: input => !!input || 'User-agent cannot be empty'
|
||||
});
|
||||
|
||||
const createdAgent = await createItem('user_agents', {
|
||||
user_agent: userAgent
|
||||
});
|
||||
|
||||
const agentId = createdAgent.data?.id || createdAgent.id;
|
||||
|
||||
await createItem('robots_user_agents', {
|
||||
robots_id: rootRobot.id,
|
||||
user_agents_id: agentId
|
||||
});
|
||||
|
||||
console.log(`✅ Blocked user-agent "${userAgent}" under path "/"`);
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue