80 lines
2.1 KiB
TypeScript
80 lines
2.1 KiB
TypeScript
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`);
|
|
} |