diff --git a/main.js b/main.js index a74fe41..a63a366 100644 --- a/main.js +++ b/main.js @@ -260,7 +260,9 @@ function sendMatrix(roomid, body, media, callback) { logger.error(err); }); } else { - callback(true); + if (typeof callback == "function") { + callback(true); + } } } @@ -339,12 +341,15 @@ function sendSMS(number, from, body, callback) { */ function sendMMS(number, from, mediauri, mimetype, callback) { logger.info("Sending MMS to " + number + " from " + from); - var mediauriregex = /^mxc:\/\/([a-zA-Z0-9\-]+\.[a-zA-Z0-9]{2,})\/([a-z0-9]+)$/; - var matches = mediauriregex.exec(mediauri); + var urichunks = mediauri.split("/"); // should result in something like [ "mxc:", "", "matrix.org", "mediaidhere90473473" ] + if (urichunks.length < 4) { + logger.error("Invalid media uri"); + return; + } var httpmediaurl = settings.mediaurlpath; - httpmediaurl = httpmediaurl.replace("{{server-name}}", matches[0]); - httpmediaurl = httpmediaurl.replace("{{media-id}}", matches[1]); + httpmediaurl = httpmediaurl.replace("{{server-name}}", urichunks[2]); + httpmediaurl = httpmediaurl.replace("{{media-id}}", urichunks[3]); var data = { to: [number], from: from,