- offer to create tag when none is found while adding a link from cli - fix tag display in search
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 "/"`);
|
||
};
|