Support to getting image & video name for motion photo
This commit is contained in:
parent
95177238f8
commit
37d5539646
|
@ -1,10 +1,25 @@
|
|||
import downloadManager from "./downloadManager"
|
||||
import { File } from './fileService';
|
||||
import JSZip from 'jszip';
|
||||
import { fileExtensionWithDot, fileNameWithoutExtension } from "utils/file";
|
||||
|
||||
class MotionPhoto {
|
||||
imageBlob: Promise<Uint8Array>
|
||||
videoBlob: Promise<Uint8Array>
|
||||
title: String
|
||||
// name of the file which contains image
|
||||
_zipImageName: String
|
||||
// name of the file which contains video
|
||||
_zipVideoName: String
|
||||
|
||||
imageName() {
|
||||
return fileNameWithoutExtension(this.title) + fileExtensionWithDot(this._zipImageName);
|
||||
}
|
||||
|
||||
videoName() {
|
||||
return fileNameWithoutExtension(this.title) + fileExtensionWithDot(this._zipVideoName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export const downloadAndDecodeMotionPhoto = async (file: File) => {
|
||||
|
@ -13,10 +28,13 @@ export const downloadAndDecodeMotionPhoto = async (file: File) => {
|
|||
return JSZip.loadAsync(zipBlob, { createFolders: true })
|
||||
.then(function (zip) {
|
||||
let instnace = new MotionPhoto();
|
||||
instnace.title = file.metadata.title
|
||||
Object.keys(zip.files).forEach(function (filename) {
|
||||
if (filename.startsWith("image")) {
|
||||
instnace._zipImageName = filename
|
||||
instnace.imageBlob = zip.files[filename].async('uint8array');
|
||||
} else if (filename.startsWith("video")) {
|
||||
instnace._zipVideoName = filename
|
||||
instnace.videoBlob = zip.files[filename].async('uint8array');
|
||||
}
|
||||
})
|
||||
|
|
|
@ -146,3 +146,15 @@ export function removeUnneccessaryFileProps(files:File[]):File[] {
|
|||
});
|
||||
return stripedFiles;
|
||||
}
|
||||
|
||||
export function fileNameWithoutExtension(filename) {
|
||||
var lastDotPosition = filename.lastIndexOf(".");
|
||||
if (lastDotPosition === -1) return filename;
|
||||
else return filename.substr(0, lastDotPosition);
|
||||
}
|
||||
|
||||
export function fileExtensionWithDot(filename) {
|
||||
var lastDotPosition = filename.lastIndexOf(".");
|
||||
if (lastDotPosition === -1) return "";
|
||||
else return filename.substr(lastDotPosition);
|
||||
}
|
Loading…
Reference in a new issue