parse MXC urls, fixes #1

This commit is contained in:
emerson 2021-12-07 10:50:42 -05:00
parent 888bc53cb8
commit cac2153e40
No known key found for this signature in database
GPG key ID: 270669502DA603E3

View file

@ -192,10 +192,15 @@ export class Channel {
messageContent = `\x01ACTION ${messageContent}\x01`;
}
else if (['m.image', 'm.file', 'm.audio', 'm.video'].includes(msgtype)) {
let url: string = content["url"];
if (!url)
let uri: string = content["url"];
if (!uri)
return;
messageContent = `\x01ACTION shared ${messageContent}: ${url}\x01`;
const mxcregex = uri.match(/mxc:\/\/(?<servername>[^\/]+)\/(?<mediaid>.+)/)
if (!mxcregex || !mxcregex.groups)
console.log(`Failed to parse MXC URI: ${uri}`);
else
uri = `https://matrix.org/_matrix/media/v3/download/${mxcregex.groups.servername}/${mxcregex.groups.mediaid}`;
messageContent = `\x01ACTION shared ${messageContent}: ${uri}\x01`;
}
const msgArray = (messageContent.indexOf('\n') !== -1) ? messageContent.split('\n'): [messageContent];
msgArray.forEach((msg: string) => {