diff --git a/backend/src/data/GuildSavedMessages.ts b/backend/src/data/GuildSavedMessages.ts index e6c51e91..2602d5ef 100644 --- a/backend/src/data/GuildSavedMessages.ts +++ b/backend/src/data/GuildSavedMessages.ts @@ -25,6 +25,23 @@ export class GuildSavedMessages extends BaseGuildRepository { this.toBePermanent = new Set(); } + public msgToSavedMessage(message: Message): SavedMessage { + const postedAt = moment.utc(message.createdTimestamp, "x").format("YYYY-MM-DD HH:mm:ss"); + + return { + data: this.msgToSavedMessageData(message), + id: message.id, + guild_id: (message.channel as GuildChannel).guildId, + channel_id: message.channelId, + user_id: message.author.id, + is_bot: message.author.bot, + posted_at: postedAt, + // @ts-expect-error + deleted_at: null, + is_permanent: false, + }; + } + protected msgToSavedMessageData(msg: Message): ISavedMessageData { const data: ISavedMessageData = { author: { @@ -206,8 +223,12 @@ export class GuildSavedMessages extends BaseGuildRepository { await this.insertBulk(items); } +<<<<<<< HEAD protected async msgToInsertReadyEntity(msg: Message): Promise> { const savedMessageData = this.msgToSavedMessageData(msg); +======= + const savedMessageData = GuildSavedMessages.msgToSavedMessageData(msg); +>>>>>>> 95a0ce8c (clean up) const postedAt = moment.utc(msg.createdTimestamp, "x").format("YYYY-MM-DD HH:mm:ss"); return { @@ -307,9 +328,15 @@ export class GuildSavedMessages extends BaseGuildRepository { this.events.emit(`update:${id}`, [newMessage, oldMessage]); } +<<<<<<< HEAD async saveEditFromMsg(msg: Message): Promise { const newData = this.msgToSavedMessageData(msg); await this.saveEdit(msg.id, newData); +======= + async saveEditFromMsg(msg: Message) { + const newData = GuildSavedMessages.msgToSavedMessageData(msg); + return this.saveEdit(msg.id, newData); +>>>>>>> 95a0ce8c (clean up) } async setPermanent(id: string): Promise { diff --git a/backend/src/plugins/Automod/events/runAutomodOnThreadEvents.ts b/backend/src/plugins/Automod/events/runAutomodOnThreadEvents.ts index 3864209a..bd9cc3cb 100644 --- a/backend/src/plugins/Automod/events/runAutomodOnThreadEvents.ts +++ b/backend/src/plugins/Automod/events/runAutomodOnThreadEvents.ts @@ -1,4 +1,5 @@ import { typedGuildEventListener } from "knub"; +import { GuildSavedMessages } from "../../../data/GuildSavedMessages"; import { runAutomod } from "../functions/runAutomod"; import { AutomodContext, AutomodPluginType } from "../types"; @@ -17,18 +18,18 @@ export const RunAutomodOnThreadCreate = typedGuildEventListener c.id === thread.parentId); - if (sourceChannel?.isText()) { + + // This is a hack to make this trigger compatible with the reply action + const sourceChannel = thread.parent ?? pluginData.client.channels.cache.find((c) => c.id === thread.parentId); + messageBlock: if (sourceChannel?.isText()) { const sourceMessage = sourceChannel.messages.cache.find( (m) => m.thread?.id === thread.id || m.reference?.channelId === thread.id, ); - if (sourceMessage) { - const message = await pluginData.state.savedMessages.find(sourceMessage.id); - if (message) { - message.channel_id = thread.id; - context.message = message; - } - } + if (!sourceMessage) break messageBlock; + + const savedMessage = pluginData.state.savedMessages.msgToSavedMessage(sourceMessage); + savedMessage.channel_id = thread.id; + context.message = savedMessage; } pluginData.state.queue.add(() => {