41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
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 "/"`);
|
||
};
|