13 lines
542 B
TypeScript
13 lines
542 B
TypeScript
import { Attachment } from "@fosscord/util";
|
|
import { deleteFile } from "@fosscord/api";
|
|
import { URL } from "url";
|
|
|
|
export async function deleteMessageAttachments(messageId: string, keep?: Attachment[]) {
|
|
let attachments = await Attachment.find({ message_id: messageId });
|
|
if (keep)
|
|
attachments = attachments.filter(x => !keep.map(k => k.id).includes(x.id));
|
|
await Promise.all(attachments.map(a => a.remove()));
|
|
|
|
attachments.forEach(a => deleteFile((new URL(a.url)).pathname)); //We don't need to await since this is done on the cdn
|
|
}
|