Refactored EventGroup
parent
6ab1082541
commit
27dc997d70
@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
const { validateOptions, required, isNumber, isString } = require("validatem");
|
||||
const isMXC = require("./validate/is-mxc");
|
||||
|
||||
module.exports = function generateThumbnailUrl({homeserver, mxc, width, height }) {
|
||||
validateOptions(arguments, {
|
||||
homeserver: [ required, isString ],
|
||||
mxc: [ required, isMXC ],
|
||||
width: [ required, isNumber ],
|
||||
height: [ required, isNumber ]
|
||||
});
|
||||
|
||||
return `${homeserver}/_matrix/media/v1/thumbnail/${mxc.homeserver}/${mxc.id}?width=${width}&height=${height}&method=scale`;
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
const urlLib = require("url");
|
||||
|
||||
module.exports = function parseMXC(uri) {
|
||||
let parsed = urlLib.parse(uri);
|
||||
|
||||
if (parsed.protocol === "mxc:" && parsed.slashes === true) {
|
||||
return {
|
||||
homeserver: parsed.host,
|
||||
id: parsed.pathname.replace(/^\/+/, "")
|
||||
};
|
||||
} else {
|
||||
throw new Error("Specified URI is not an MXC URI");
|
||||
}
|
||||
};
|
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function isMXC(value) {
|
||||
if (value.homeserver == null || value.id == null) {
|
||||
throw new Error("Must be an MXC object");
|
||||
}
|
||||
};
|
Loading…
Reference in New Issue