diff --git a/src/plugins/normalizeMessageLinks/index.ts b/src/plugins/normalizeMessageLinks/index.ts new file mode 100644 index 000000000..cac36e65c --- /dev/null +++ b/src/plugins/normalizeMessageLinks/index.ts @@ -0,0 +1,26 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2023 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + +export default definePlugin({ + name: "NormalizeMessageLinks", + description: "Strip canary/ptb from message links", + authors: [Devs.bb010g], + patches: [ + { + find: ".Messages.COPY_MESSAGE_LINK,", + replacement: { + match: /\.concat\(location\.host\)/, + replace: ".concat($self.normalizeHost(location.host))", + }, + }, + ], + normalizeHost(host: string) { + return host.replace(/(^|\b)(canary\.|ptb\.)(discord.com)$/, "$1$3"); + }, +}); diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 3266e2492..9e2b2fe70 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -347,6 +347,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({ name: "arrow", id: 958158495302176778n }, + bb010g: { + name: "bb010g", + id: 72791153467990016n, + }, } satisfies Record); // iife so #__PURE__ works correctly