Merge branch 'master' into pr/5

This commit is contained in:
Tarrgon
2026-06-02 12:45:47 -04:00
10 changed files with 362 additions and 165 deletions
+33 -1
View File
@@ -1,5 +1,8 @@
import sqlite3 from 'sqlite3';
import path from 'path';
import { open, Database as SqliteDatabase } from 'sqlite';
import sqlite3 from 'sqlite3';
import { Message } from '../events';
import { AppealMessage, Ban, GithubUserMapping, GuildArraySetting, GuildSettings, KnowledgebaseItem, LoggedMessage, Note, PrivateHelpTicket, TicketMessage, TicketPhrase } from '../types';
import { serializeMessage, wait } from '../utils';
import { GuildSettings, LoggedMessage, TicketMessage, TicketPhrase, Note, Ban, GuildArraySetting, GithubUserMapping, KnowledgebaseItem, PrivateHelpTicket, GuildSetting } from '../types';
import { Message } from '../events';
@@ -128,6 +131,8 @@ export class Database {
console.log('SQLite database opened');
await Database.ensure();
await Database.migrate();
}
private static async ensure() {
@@ -135,6 +140,16 @@ export class Database {
console.log('SQLite database ensured');
}
private static async migrate() {
console.log('Starting database migrations');
await Database.db.migrate({
migrationsPath: path.join(__dirname, '..', 'migrations')
});
console.log('Database migrations ran');
}
//#region WHOIS
static async getE621Ids(discordId: string): Promise<number[]> {
@@ -306,6 +321,23 @@ export class Database {
//#endregion
//#region Appeals
static async putAppeal(appealId: number, messageId: string) {
await Database.db.run('INSERT INTO appeals(id, message_id) VALUES (?, ?)', appealId, messageId);
}
static async removeAppeal(appealId: number) {
await Database.db.run('DELETE from appeals WHERE id = ?', appealId);
}
static async getAppealMessageId(appealId: number): Promise<string | undefined> {
const appeal = await Database.db.get<Pick<AppealMessage, 'message_id'>>('SELECT message_id FROM appeals WHERE id = ?', appealId);
return appeal?.message_id;
}
//#endregion
//#region Notes
static async putNote(userId: string, reason: string, modId: string) {