parent
6c0f44a16a
commit
890db0ca33
2 changed files with 52 additions and 70 deletions
|
|
@ -291,7 +291,9 @@ export default {
|
|||
|
||||
this.totalEvents = this.exportComponents.length;
|
||||
|
||||
let beforeExportPromises = this.exportComponents.filter((c) => c.component.exposed?.beforeExport !== undefined).map((c) => c.component.exposed.beforeExport());
|
||||
let beforeExportPromises = this.exportComponents
|
||||
.filter((c) => c.component.exposed?.beforeExport !== undefined)
|
||||
.map((c) => c.component.exposed.beforeExport());
|
||||
await Promise.all(beforeExportPromises);
|
||||
|
||||
// UI updated, start processing events
|
||||
|
|
@ -369,11 +371,7 @@ export default {
|
|||
}
|
||||
}
|
||||
|
||||
let attachment =
|
||||
event && event.getId ? this.$matrix.attachmentManager.getEventAttachment(event) : undefined;
|
||||
let componentClass = comp.type
|
||||
? comp.type.__file.split("/").reverse()[0].split(".")[0]
|
||||
: "invalid_component";
|
||||
let attachment = event && event.getId ? this.$matrix.attachmentManager.getEventAttachment(event) : undefined;
|
||||
|
||||
if (attachment && (attachment.srcSize = 0 || currentMediaSize + attachment.srcSize <= maxMediaSize)) {
|
||||
downloadPromises.push(
|
||||
|
|
@ -384,72 +382,53 @@ export default {
|
|||
if (currentMediaSize + blob.size <= maxMediaSize) {
|
||||
currentMediaSize += blob.size;
|
||||
|
||||
switch (componentClass) {
|
||||
case "MessageIncomingImageExport":
|
||||
case "MessageOutgoingImageExport":
|
||||
{
|
||||
let mime = blob.type;
|
||||
var extension = ".png";
|
||||
switch (mime) {
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
extension = ".jpg";
|
||||
break;
|
||||
case "image/gif":
|
||||
extension = ".gif";
|
||||
}
|
||||
const mime = blob.type;
|
||||
|
||||
let fileName = event.getId() + extension;
|
||||
imageFolder.file(fileName, blob); // TODO calc bytes
|
||||
if (mime.startsWith("image/")) {
|
||||
var extension = ".png";
|
||||
switch (mime) {
|
||||
case "image/jpeg":
|
||||
case "image/jpg":
|
||||
extension = ".jpg";
|
||||
break;
|
||||
case "image/gif":
|
||||
extension = ".gif";
|
||||
}
|
||||
|
||||
// Update source
|
||||
const images = comp.el.getElementsByTagName("img");
|
||||
for (let imageIndex = 0; imageIndex < images.length; imageIndex++) {
|
||||
const img = images[imageIndex];
|
||||
img.removeAttribute("src");
|
||||
img.setAttribute("data-exported-src", "./images/" + fileName);
|
||||
}
|
||||
}
|
||||
break;
|
||||
let fileName = event.getId() + extension;
|
||||
imageFolder.file(fileName, blob); // TODO calc bytes
|
||||
|
||||
case "MessageIncomingAudioExport":
|
||||
case "MessageOutgoingAudioExport":
|
||||
{
|
||||
var extension = ".webm";
|
||||
let fileName = event.getId() + extension;
|
||||
audioFolder.file(fileName, blob); // TODO calc bytes
|
||||
let elements = comp.el.getElementsByTagName("audio");
|
||||
let element = elements && elements[0];
|
||||
if (element) {
|
||||
element.setAttribute("data-exported-src", "./audio/" + fileName);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "MessageIncomingVideoExport":
|
||||
case "MessageOutgoingVideoExport":
|
||||
{
|
||||
var extension = ".mp4";
|
||||
let fileName = event.getId() + extension;
|
||||
videoFolder.file(fileName, blob); // TODO calc bytes
|
||||
// comp.src = "./video/" + fileName;
|
||||
let elements = comp.el.getElementsByTagName("video");
|
||||
let element = elements && elements[0];
|
||||
if (element) {
|
||||
element.setAttribute("data-exported-src", "./video/" + fileName);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "MessageIncomingFileExport":
|
||||
case "MessageOutgoingFileExport":
|
||||
{
|
||||
var extension = util.getFileExtension(event);
|
||||
let fileName = event.getId() + extension;
|
||||
filesFolder.file(fileName, blob);
|
||||
comp.component.data.href = "./files/" + fileName;
|
||||
}
|
||||
break;
|
||||
// Update source
|
||||
const images = comp.el.getElementsByTagName("img");
|
||||
for (let imageIndex = 0; imageIndex < images.length; imageIndex++) {
|
||||
const img = images[imageIndex];
|
||||
img.removeAttribute("src");
|
||||
img.setAttribute("data-exported-src", "./images/" + fileName);
|
||||
}
|
||||
} else if (mime.startsWith("audio/")) {
|
||||
var extension = ".webm";
|
||||
let fileName = event.getId() + extension;
|
||||
audioFolder.file(fileName, blob); // TODO calc bytes
|
||||
let elements = comp.el.getElementsByTagName("audio");
|
||||
let element = elements && elements[0];
|
||||
if (element) {
|
||||
element.setAttribute("data-exported-src", "./audio/" + fileName);
|
||||
}
|
||||
} else if (mime.startsWith("video/")) {
|
||||
var extension = ".mp4";
|
||||
let fileName = event.getId() + extension;
|
||||
videoFolder.file(fileName, blob); // TODO calc bytes
|
||||
// comp.src = "./video/" + fileName;
|
||||
let elements = comp.el.getElementsByTagName("video");
|
||||
let element = elements && elements[0];
|
||||
if (element) {
|
||||
element.setAttribute("data-exported-src", "./video/" + fileName);
|
||||
}
|
||||
} else {
|
||||
var extension = util.getFileExtension(event);
|
||||
let fileName = event.getId() + extension;
|
||||
filesFolder.file(fileName, blob);
|
||||
comp.component.data.href = "./files/" + fileName;
|
||||
}
|
||||
this.processedEvents += 1;
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -57,5 +57,8 @@ export default defineConfig(({mode}) => ({
|
|||
build: {
|
||||
assetsDir: "assets",
|
||||
commonjsOptions: { transformMixedEsModules: true }
|
||||
}
|
||||
},
|
||||
preview: {
|
||||
port: 5173,
|
||||
},
|
||||
}));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue