From 517622a4acb33acbce8a85d94d142a36ed409807 Mon Sep 17 00:00:00 2001 From: LDA Date: Sun, 7 Jul 2024 18:27:37 +0200 Subject: [PATCH] [ADD] External URL for media events --- src/XMPPThread.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/XMPPThread.c b/src/XMPPThread.c index 8d20988..2bdb04a 100644 --- a/src/XMPPThread.c +++ b/src/XMPPThread.c @@ -576,17 +576,26 @@ MessageStanza(ParseeData *args, XMLElement *stanza, XMPPThread *thr) char *mxc, *mime = NULL; HashMap *content = NULL; oob_data = XMLookForUnique(oob, "url"); - oob_data = ArrayGet(oob_data->children, 0); + oob_data = + oob_data ? ArrayGet(oob_data->children, 0) : NULL; - mxc = ASReupload(args->config, oob_data->data, &mime); - content = MatrixCreateMedia(mxc, data->data, mime); + if (oob_data) + { + mxc = ASReupload(args->config, oob_data->data, &mime); + content = MatrixCreateMedia(mxc, data->data, mime); - event_id = ASSend( - args->config, mroom_id, encoded, - "m.room.message", content - ); - Free(mime); - Free(mxc); + /* Yeah, no, I'm not modifying the media creation code. */ + HashMapSet(content, "external_url", + JsonValueString(oob_data->data) + ); + + event_id = ASSend( + args->config, mroom_id, encoded, + "m.room.message", content + ); + Free(mime); + Free(mxc); + } } else if (reactions) {