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