Cleanup on bot start

This commit is contained in:
2022-11-25 18:28:42 +01:00
parent d9c81ef3f2
commit 8b72326419
3 changed files with 48 additions and 1 deletions

39
src/service/cleanup.ts Normal file
View File

@ -0,0 +1,39 @@
import { Badword, database, GuildSetting } from "../data";
import client from "../client";
import { DiscordAPIError } from "discord.js";
export default async function execute(): Promise<void> {
const guilds = await database.getRepository(GuildSetting).find({
where: {
preserveDataOnGuildLeave: false
}
});
for (const guild of guilds) {
try {
await client.guilds.fetch(guild.id);
} catch (error) {
if (!(error instanceof DiscordAPIError)) {
console.error(`service.cleanup failed: ${error}`);
return;
}
const id = guild.id;
// 5001 = Missing access
if (error.code.toString() !== "50001") {
console.warn(`Guild ${guild.id} is unavailable but not because of error 5001:\n${error}`);
continue;
}
await database.getRepository(Badword).delete({
guildID: guild.id
});
await database.getRepository(GuildSetting).remove(guild);
console.log(`Removed data for guild ${id}`);
}
}
console.log("Cleanup completed");
}