From 9c1f83c55bf06b60e995bd37160a6a028cf82898 Mon Sep 17 00:00:00 2001 From: Sorunome <mail@sorunome.de> Date: Wed, 26 Dec 2018 13:38:55 +0100 Subject: [PATCH] support inline images as links --- src/matrixmessageprocessor.ts | 4 +++- test/test_matrixmessageprocessor.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/matrixmessageprocessor.ts b/src/matrixmessageprocessor.ts index 1cdeff1..80459a0 100644 --- a/src/matrixmessageprocessor.ts +++ b/src/matrixmessageprocessor.ts @@ -190,7 +190,9 @@ export class MatrixMessageProcessor { } if (!emoji) { - return await this.escapeDiscord(name); + const content = await this.escapeDiscord(name); + const url = this.params && this.params.mxClient ? this.params.mxClient.mxcUrlToHttp(attrs.src) : attrs.src; + return attrs.src ? `[${content}](${url})` : content; } return `<${emoji.animated ? "a" : ""}:${emoji.name}:${emoji.id}>`; } diff --git a/test/test_matrixmessageprocessor.ts b/test/test_matrixmessageprocessor.ts index af6253c..6241f55 100644 --- a/test/test_matrixmessageprocessor.ts +++ b/test/test_matrixmessageprocessor.ts @@ -334,14 +334,14 @@ code const result = await mp.FormatMessage(msg, guild as any); expect(result).is.equal("<:test_emoji:123456>"); }); - it("ignores unknown mxc urls", async () => { + it("parses unknown mxc urls", async () => { const mp = new MatrixMessageProcessor(bot); const guild = new MockGuild("1234"); const emoji = new MockEmoji("123456", "test_emoji"); guild.emojis.set("123456", emoji); const msg = getHtmlMessage("<img alt=\"yay\" src=\"mxc://unreal_emote:localhost\">"); const result = await mp.FormatMessage(msg, guild as any); - expect(result).is.equal("yay"); + expect(result).is.equal("[yay](mxc://unreal_emote:localhost)"); }); it("ignores with no alt / title, too", async () => { const mp = new MatrixMessageProcessor(bot); -- GitLab