Attachment management for messages is good to go, doesn't handle embeds, but the links for those embeds still show up in the messages

This commit is contained in:
2025-06-29 11:18:28 -04:00
parent c570f57463
commit b474d55612
3 changed files with 57 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
import { Message, OmitPartialGroupDMChannel, PartialMessage } from "discord.js";
import { Attachment, Message, OmitPartialGroupDMChannel, PartialMessage } from "discord.js";
import { SQLCommon } from "../storage/interfaces";
import { SQLResult } from "../storage/enumerations";
@@ -13,6 +13,15 @@ export async function doesMessageExist(db: SQLCommon, message: OmitPartialGroupD
return queryResult.length != 0
}
export async function doesAttachmentExist(db: SQLCommon, attachment: Attachment) : Promise<boolean> {
const queryResult: Object[] = await db.getAllParameterized(
"SELECT * FROM message_attachments WHERE attachment_snowflake = ?",
[attachment.id]
)
return queryResult.length != 0
}
export async function insertMessage(db: SQLCommon, message: OmitPartialGroupDMChannel<Message<boolean>>) : Promise<SQLResult> {
const alreadyExists: boolean = await doesMessageExist(db, message)
@@ -77,4 +86,26 @@ export async function markMessageDeleted(db: SQLCommon, message: OmitPartialGrou
console.log(err)
return SQLResult.FAILED
}
}
export async function insertAttachment(db: SQLCommon, attachment: Attachment, message: OmitPartialGroupDMChannel<Message<boolean>> | PartialMessage) : Promise<SQLResult> {
const alreadyExists: boolean = await doesAttachmentExist(db, attachment)
if(alreadyExists) {
return SQLResult.ALREADYEXISTS
}
try {
await db.runParameterized(
"INSERT INTO message_attachments VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
[attachment.id, message.id, attachment.name, attachment.description, message.createdTimestamp,
attachment.contentType, attachment.url, 0]
)
return SQLResult.CREATED
} catch (err) {
// TODO Winston should handle this
console.log(err)
return SQLResult.FAILED
}
}