diff --git a/src/api/util/handlers/Message.ts b/src/api/util/handlers/Message.ts index 90d8153e..70bbc479 100644 --- a/src/api/util/handlers/Message.ts +++ b/src/api/util/handlers/Message.ts @@ -51,6 +51,7 @@ import { ReadState } from "../../../util/entities/ReadState"; import { Member } from "../../../util/entities/Member"; import { ChannelType } from "@spacebar/schemas"; import { Embed, MessageCreateAttachment, MessageCreateCloudAttachment, MessageCreateSchema, MessageType, Reaction } from "@spacebar/schemas"; +import { EmbedType } from "../../../schemas/api/messages/Embeds"; const allow_empty = false; // TODO: check webhook, application, system author, stickers // TODO: embed gifs/videos/images @@ -377,6 +378,11 @@ export async function postHandleMessage(message: Message) { } } + data.embeds.forEach((embed) => { + if (!embed.type) { + embed.type = EmbedType.rich; + } + }); // Filter out embeds that could be links, start from scratch data.embeds = data.embeds.filter((embed) => embed.type === "rich"); @@ -403,10 +409,7 @@ export async function postHandleMessage(message: Message) { if (uniqueLinks.length === 0) { // No valid unique links found, update message to remove old embeds - data.embeds = data.embeds.filter((embed) => { - const hasUrl = !!embed.url; - return !hasUrl; - }); + data.embeds = data.embeds.filter((embed) => embed.type === "rich"); const author = data.author?.toPublicUser(); const event = { event: "MESSAGE_UPDATE",