1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-23 02:42:28 +01:00

Fix channel mentions #981

This commit is contained in:
Madeline 2023-02-20 15:12:23 +11:00 committed by GitHub
commit 4db83ee531

View File

@ -26,7 +26,7 @@ import {
MessageUpdateEvent, MessageUpdateEvent,
getPermission, getPermission,
getRights, getRights,
CHANNEL_MENTION, //CHANNEL_MENTION,
USER_MENTION, USER_MENTION,
ROLE_MENTION, ROLE_MENTION,
Role, Role,
@ -144,7 +144,9 @@ export async function handleMessage(opts: MessageOptions): Promise<Message> {
} }
let content = opts.content; let content = opts.content;
const mention_channel_ids = [] as string[];
// root@Rory - 20/02/2023 - This breaks channel mentions in test client. We're not sure this was used in older clients.
//const mention_channel_ids = [] as string[];
const mention_role_ids = [] as string[]; const mention_role_ids = [] as string[];
const mention_user_ids = [] as string[]; const mention_user_ids = [] as string[];
let mention_everyone = false; let mention_everyone = false;
@ -153,10 +155,11 @@ export async function handleMessage(opts: MessageOptions): Promise<Message> {
// TODO: explicit-only mentions // TODO: explicit-only mentions
message.content = content.trim(); message.content = content.trim();
content = content.replace(/ *`[^)]*` */g, ""); // remove codeblocks content = content.replace(/ *`[^)]*` */g, ""); // remove codeblocks
for (const [, mention] of content.matchAll(CHANNEL_MENTION)) { // root@Rory - 20/02/2023 - This breaks channel mentions in test client. We're not sure this was used in older clients.
/*for (const [, mention] of content.matchAll(CHANNEL_MENTION)) {
if (!mention_channel_ids.includes(mention)) if (!mention_channel_ids.includes(mention))
mention_channel_ids.push(mention); mention_channel_ids.push(mention);
} }*/
for (const [, mention] of content.matchAll(USER_MENTION)) { for (const [, mention] of content.matchAll(USER_MENTION)) {
if (!mention_user_ids.includes(mention)) if (!mention_user_ids.includes(mention))
@ -183,9 +186,10 @@ export async function handleMessage(opts: MessageOptions): Promise<Message> {
} }
} }
message.mention_channels = mention_channel_ids.map((x) => // root@Rory - 20/02/2023 - This breaks channel mentions in test client. We're not sure this was used in older clients.
/*message.mention_channels = mention_channel_ids.map((x) =>
Channel.create({ id: x }), Channel.create({ id: x }),
); );*/
message.mention_roles = mention_role_ids.map((x) => Role.create({ id: x })); message.mention_roles = mention_role_ids.map((x) => Role.create({ id: x }));
message.mentions = mention_user_ids.map((x) => User.create({ id: x })); message.mentions = mention_user_ids.map((x) => User.create({ id: x }));
message.mention_everyone = mention_everyone; message.mention_everyone = mention_everyone;