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