!fixup this if working

This commit is contained in:
schlagmichdoch 2023-12-08 13:49:45 +01:00
parent 0c2da78ed2
commit da8178d72e
3 changed files with 312 additions and 311 deletions

View file

@ -1082,20 +1082,9 @@ class PeersManager {
this.peers[detail.to]._respondToFileTransferRequest(detail.accepted);
}
_onFilesSelected(message) {
let inputFiles = Array.from(message.files);
delete message.files;
let files = [];
const l = inputFiles.length;
for (let i=0; i<l; i++) {
// when filetype is empty guess via suffix
const inputFile = inputFiles.shift();
const file = inputFile.type
? inputFile
: new File([inputFile], inputFile.name, {type: mime.getMimeByFilename(inputFile.name)});
files.push(file)
}
this.peers[message.to].requestFileTransfer(files);
async _onFilesSelected(message) {
let files = await mime.addMissingMimeTypesToFiles(message.files);
await this.peers[message.to].requestFileTransfer(files);
}
_onSendText(message) {

View file

@ -272,6 +272,8 @@ class PeersUI {
descriptorInstructions = Localization.getTranslation("instructions.activate-share-mode-shared-file");
}
files = await mime.addMissingMimeTypesToFiles(files);
if (files[0].type.split('/')[0] === 'image') {
getResizedImageDataUrl(files[0], 80, null, 0.9)
.then(dataUrl => {

View file

@ -104,12 +104,7 @@ const zipper = (() => {
const mime = (() => {
return {
getMimeByFilename(filename) {
try {
const arr = filename.split('.');
const suffix = arr[arr.length - 1].toLowerCase();
return {
const suffixToMimeMap = {
"cpl": "application/cpl+xml",
"gpx": "application/gpx+xml",
"gz": "application/gzip",
@ -397,12 +392,27 @@ const mime = (() => {
"vob": "video/x-ms-vob",
"wmv": "video/x-ms-wmv",
"avi": "video/x-msvideo",
"*": "video/x-sgi-movie",
}[suffix] || '';
} catch (e) {
console.error(e);
return '';
"*": "video/x-sgi-movie"
}
return {
async guessMimeByFilename(filename) {
const split = filename.split('.');
if (split.length === 1) {
// Filename does not include suffix
return "";
}
const suffix = split[split.length - 1].toLowerCase();
return suffixToMimeMap[suffix] || "";
},
async addMissingMimeTypesToFiles(files) {
// if filetype is empty guess via suffix otherwise leave unchanged
for (let i = 0; i < files.length; i++) {
if (!files[i].type) {
files[i] = new File([files[i]], files[i].name, {type: await mime.guessMimeByFilename(files[i].name) || ""});
}
}
return files;
}
};