From 50c0d472d7f75e22a6097ef03a7d71129a5f3f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20/=20Linnea=20Gr=C3=A4f?= Date: Sun, 23 Oct 2022 14:19:53 +0200 Subject: [PATCH] feat(NoCanaryMessageLinks): Allow custom subdomains (#147) --- src/plugins/noCanaryMessageLinks.ts | 30 +++++++++++++++++++++++++---- src/utils/constants.ts | 4 ++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/plugins/noCanaryMessageLinks.ts b/src/plugins/noCanaryMessageLinks.ts index 3ee95cd57..b93562cf7 100644 --- a/src/plugins/noCanaryMessageLinks.ts +++ b/src/plugins/noCanaryMessageLinks.ts @@ -18,16 +18,38 @@ import { addPreSendListener, MessageObject, removePreSendListener } from "../api/MessageEvents"; import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import definePlugin, { OptionType } from "../utils/types"; +import { Settings } from "../Vencord"; export default definePlugin({ name: "NoCanaryMessageLinks", - description: "Removes the canary and ptb prefix from message links", - authors: [Devs.Samu], + description: "Allows you to change/remove the subdomain of discord message and channel links", + authors: [ + Devs.Samu, + Devs.nea, + ], + options: { + linkPrefix: { + description: "The subdomain for your discord message links", + type: OptionType.STRING, + default: "", + restartNeeded: false, + }, + alwaysUseDiscordHost: { + description: "Always use discord.com host (replace discordapp.com)", + type: OptionType.BOOLEAN, + default: false, + restartNeeded: false, + }, + }, dependencies: ["MessageEventsAPI"], removeBetas(msg: MessageObject) { - msg.content = msg.content.replace(/(?<=https:\/\/)(canary.|ptb.)(?=discord(?:app)?.com\/channels\/(?:\d{17,20}|@me)\/\d{17,20}\/\d{17,20})/g, ""); // Ven W + const settings = Settings.plugins.NoCanaryMessageLinks; + msg.content = msg.content.replace( + /https:\/\/(?:canary\.|ptb\.)?(discord(?:app)?\.com)(\/channels\/(?:\d{17,20}|@me)\/\d{17,20}(?:\/\d{17,20})?)/g, + (_, host, path) => "https://" + (settings.linkPrefix ? settings.linkPrefix + "." : "") + (settings.alwaysUseDiscordHost ? "discord.com" : host) + path + ); }, start() { diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 60d33f8d4..eccd3e35c 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -73,6 +73,10 @@ export const Devs = Object.freeze({ name: "katlyn", id: 250322741406859265n }, + nea: { + name: "nea", + id: 310702108997320705n, + }, Nuckyz: { name: "Nuckyz", id: 235834946571337729n