import { IsNull } from "typeorm"; import { Badword, database } from "../data"; import { Console } from "console"; const console = new Console(process.stdout); export default async function execute(args: string[]) { const command = args[0]; if (!command) return printHelp(); switch (command.toLowerCase()) { case "get": { const globalWords = await database.getRepository(Badword).find({ where: { guildID: IsNull() } }); console.log(`Global blocked words:\n\n${globalWords.map(w => w.value).reduce((c, n) => c + ", " + n, "").slice(2)}`); break; } case "add": { const word = args[1]?.toLowerCase(); if (!word) return printHelp(); if (await database.getRepository(Badword).count({ where: { value: word, guildID: IsNull() } }) > 0) return console.log(`${word} is already in the blocklist`); const entity = new Badword(); entity.value = word; await database.getRepository(Badword).save(entity); console.log(`${word} has been added to the global block list`); break; } case "remove": { const word = args[1]?.toLowerCase(); if (!word) return printHelp(); await database.getRepository(Badword).delete({ value: word, guildID: IsNull() }); console.log(`Removed ${word} from the global block list`); break; } case "count": { const count = await database.getRepository(Badword).count({ where: { guildID: IsNull() } }); console.log(`There are ${count} globally blocked words`); break; } default: { printHelp(); break; } } } function printHelp() { console.log(`Usage "global": global get global add [WORD] global remove [WORD] global count`); }