mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-20 23:16:13 -04:00
!fixup this if working
This commit is contained in:
parent
0c2da78ed2
commit
da8178d72e
3 changed files with 312 additions and 311 deletions
|
@ -1082,20 +1082,9 @@ class PeersManager {
|
||||||
this.peers[detail.to]._respondToFileTransferRequest(detail.accepted);
|
this.peers[detail.to]._respondToFileTransferRequest(detail.accepted);
|
||||||
}
|
}
|
||||||
|
|
||||||
_onFilesSelected(message) {
|
async _onFilesSelected(message) {
|
||||||
let inputFiles = Array.from(message.files);
|
let files = await mime.addMissingMimeTypesToFiles(message.files);
|
||||||
delete message.files;
|
await this.peers[message.to].requestFileTransfer(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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onSendText(message) {
|
_onSendText(message) {
|
||||||
|
|
|
@ -272,6 +272,8 @@ class PeersUI {
|
||||||
descriptorInstructions = Localization.getTranslation("instructions.activate-share-mode-shared-file");
|
descriptorInstructions = Localization.getTranslation("instructions.activate-share-mode-shared-file");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
files = await mime.addMissingMimeTypesToFiles(files);
|
||||||
|
|
||||||
if (files[0].type.split('/')[0] === 'image') {
|
if (files[0].type.split('/')[0] === 'image') {
|
||||||
getResizedImageDataUrl(files[0], 80, null, 0.9)
|
getResizedImageDataUrl(files[0], 80, null, 0.9)
|
||||||
.then(dataUrl => {
|
.then(dataUrl => {
|
||||||
|
|
|
@ -104,12 +104,7 @@ const zipper = (() => {
|
||||||
|
|
||||||
const mime = (() => {
|
const mime = (() => {
|
||||||
|
|
||||||
return {
|
const suffixToMimeMap = {
|
||||||
getMimeByFilename(filename) {
|
|
||||||
try {
|
|
||||||
const arr = filename.split('.');
|
|
||||||
const suffix = arr[arr.length - 1].toLowerCase();
|
|
||||||
return {
|
|
||||||
"cpl": "application/cpl+xml",
|
"cpl": "application/cpl+xml",
|
||||||
"gpx": "application/gpx+xml",
|
"gpx": "application/gpx+xml",
|
||||||
"gz": "application/gzip",
|
"gz": "application/gzip",
|
||||||
|
@ -397,12 +392,27 @@ const mime = (() => {
|
||||||
"vob": "video/x-ms-vob",
|
"vob": "video/x-ms-vob",
|
||||||
"wmv": "video/x-ms-wmv",
|
"wmv": "video/x-ms-wmv",
|
||||||
"avi": "video/x-msvideo",
|
"avi": "video/x-msvideo",
|
||||||
"*": "video/x-sgi-movie",
|
"*": "video/x-sgi-movie"
|
||||||
}[suffix] || '';
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e);
|
|
||||||
return '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue