diff options
-rw-r--r-- | src/api/routes/channels/#channel_id/messages/#message_id/index.ts | 8 | ||||
-rw-r--r-- | src/api/routes/channels/#channel_id/messages/index.ts | 6 | ||||
-rw-r--r-- | src/util/entities/Message.ts | 16 | ||||
-rw-r--r-- | src/util/util/Constants.ts | 4 |
4 files changed, 17 insertions, 17 deletions
diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts index 3abfebe8..47faba73 100644 --- a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts +++ b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts @@ -12,6 +12,8 @@ import { Snowflake, uploadFile, MessageCreateSchema, + BannedWords, + DiscordApiErrors, } from "@fosscord/util"; import { Router, Response, Request } from "express"; import multer from "multer"; @@ -42,6 +44,10 @@ router.patch( const { message_id, channel_id } = req.params; var body = req.body as MessageCreateSchema; + if (body.content) + if (BannedWords.find(body.content)) + throw DiscordApiErrors.AUTOMODERATOR_BLOCK; + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id }, relations: ["attachments"], @@ -178,7 +184,7 @@ router.put( channel.save(), ]); - postHandleMessage(message).catch((e) => {}); // no await as it shouldnt block the message send function and silently catch error + postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error return res.json(message); }, diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts index e0c91b8a..ecbd1b19 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts @@ -15,6 +15,8 @@ import { Role, MessageCreateSchema, ReadState, + BannedWords, + DiscordApiErrors, } from "@fosscord/util"; import { HTTPError } from "lambert-server"; import { handleMessage, postHandleMessage, route } from "@fosscord/api"; @@ -190,6 +192,10 @@ router.post( var body = req.body as MessageCreateSchema; const attachments: Attachment[] = []; + if (body.content) + if (BannedWords.find(body.content)) + throw DiscordApiErrors.AUTOMODERATOR_BLOCK; + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"], diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts index a52b4785..013de378 100644 --- a/src/util/entities/Message.ts +++ b/src/util/entities/Message.ts @@ -5,8 +5,6 @@ import { Channel } from "./Channel"; import { InteractionType } from "../interfaces/Interaction"; import { Application } from "./Application"; import { - BeforeInsert, - BeforeUpdate, Column, CreateDateColumn, Entity, @@ -23,8 +21,6 @@ import { Guild } from "./Guild"; import { Webhook } from "./Webhook"; import { Sticker } from "./Sticker"; import { Attachment } from "./Attachment"; -import { BannedWords } from "../util"; -import { HTTPError } from "lambert-server"; export enum MessageType { DEFAULT = 0, @@ -206,18 +202,6 @@ export class Message extends BaseClass { @Column({ type: "simple-json", nullable: true }) components?: MessageComponent[]; - - @BeforeUpdate() - @BeforeInsert() - validate() { - if (this.content) { - if (BannedWords.find(this.content)) - throw new HTTPError( - "Message was blocked by automatic moderation", - 200000, - ); - } - } } export interface MessageComponent { diff --git a/src/util/util/Constants.ts b/src/util/util/Constants.ts index 7c5b7dcb..46cf2e4f 100644 --- a/src/util/util/Constants.ts +++ b/src/util/util/Constants.ts @@ -973,6 +973,10 @@ export const DiscordApiErrors = { undefined, ["5"], ), + AUTOMODERATOR_BLOCK: new ApiError( + "Message was blocked by automatic moderation", + 200000, + ), //Other errors UNKNOWN_VOICE_STATE: new ApiError("Unknown Voice State", 10065, 404), |