slightly better eventContent

This commit is contained in:
jesopo 2022-02-02 12:05:22 +00:00
parent e83a51274b
commit 72ea9ee90c

View File

@ -693,29 +693,25 @@ class DisplayManager {
// Ignore. // Ignore.
} }
enum OutType { let eventContent: { msg: string} | { html: string } | { text: string };
msg, text, html
}
let eventContent: [OutType, string];
try { try {
if (event["type"] === "m.room.encrypted") { if (event["type"] === "m.room.encrypted") {
eventContent = [OutType.msg, "<encrypted content>"]; eventContent = { msg: "<encrypted content>" };
} else if ("content" in event) { } else if ("content" in event) {
const MAX_EVENT_CONTENT_LENGTH = 2048; const MAX_EVENT_CONTENT_LENGTH = 2048;
const MAX_NEWLINES = 64; const MAX_NEWLINES = 64;
if ("formatted_body" in event.content) { if ("formatted_body" in event.content) {
eventContent = [OutType.html, this.limitLength(event.content.formatted_body, MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES)]; eventContent = { html: this.limitLength(event.content.formatted_body, MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES) };
} else if ("body" in event.content) { } else if ("body" in event.content) {
eventContent = [OutType.text, this.limitLength(event.content.body, MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES)]; eventContent = { text: this.limitLength(event.content.body, MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES) };
} else { } else {
eventContent = [OutType.text, this.limitLength(JSON.stringify(event["content"], null, 2), MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES)]; eventContent = { text: this.limitLength(JSON.stringify(event["content"], null, 2), MAX_EVENT_CONTENT_LENGTH, MAX_NEWLINES) };
} }
} else { } else {
eventContent = [OutType.msg, "Malformed event, cannot read content."]; eventContent = { msg: "Malformed event, cannot read content." };
} }
} catch (ex) { } catch (ex) {
eventContent = [OutType.msg, `<Cannot extract event. Please verify that Mjölnir has been invited to room ${roomAliasOrId} and made room moderator or administrator>.`]; eventContent = { msg: `<Cannot extract event. Please verify that Mjölnir has been invited to room ${roomAliasOrId} and made room moderator or administrator>.` };
} }
let accusedId = event["sender"]; let accusedId = event["sender"];
@ -843,13 +839,12 @@ class DisplayManager {
]) { ]) {
let node = document.getElementById(key); let node = document.getElementById(key);
if (node) { if (node) {
let [outType, out]: [OutType, string] = value; if ("msg" in value) {
if (outType === OutType.msg) { node.textContent = value.msg;
node.textContent = out; } else if ("text" in value) {
} else if (outType === OutType.text) { node.textContent = value.text;
node.textContent = out; } else if ("html" in value) {
} else if (outType === OutType.html) { node.innerHTML = value.html
node.innerHTML = out;
} }
} }
} }