Finish ncm qmc flac mp3
Finish UI Add loading screen Change PWA Config Remove useless file Load Element-UI on Demand Fix deploy on sub-folder
This commit is contained in:
51
src/plugins/raw.js
Normal file
51
src/plugins/raw.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const jsmediatags = require("jsmediatags");
|
||||
export {Decrypt}
|
||||
|
||||
const audio_mime_type = {
|
||||
mp3: "audio/mpeg",
|
||||
flac: "audio/flac"
|
||||
};
|
||||
|
||||
async function Decrypt(file) {
|
||||
let tag = await new Promise(resolve => {
|
||||
new jsmediatags.Reader(file).read({
|
||||
onSuccess: resolve,
|
||||
onError: () => {
|
||||
resolve({tags: {}})
|
||||
}
|
||||
});
|
||||
});
|
||||
let pic_url = "";
|
||||
if (tag.tags.picture !== undefined) {
|
||||
let pic = new Blob([new Uint8Array(tag.tags.picture.data)], {type: tag.tags.picture.format});
|
||||
pic_url = URL.createObjectURL(pic);
|
||||
}
|
||||
|
||||
let file_url = URL.createObjectURL(file);
|
||||
|
||||
|
||||
let filename_no_ext = file.name.substring(0, file.name.lastIndexOf("."));
|
||||
let filename_array = filename_no_ext.split("-");
|
||||
let filename_ext = file.name.substring(file.name.lastIndexOf(".") + 1, file.name.length).toLowerCase();
|
||||
const mime = audio_mime_type[filename_ext];
|
||||
let title = tag.tags.title;
|
||||
let artist = tag.tags.artist;
|
||||
|
||||
if (filename_array.length > 1) {
|
||||
if (artist === undefined) artist = filename_array[0].trim();
|
||||
if (title === undefined) title = filename_array[1].trim();
|
||||
} else if (filename_array.length === 1) {
|
||||
if (title === undefined) title = filename_array[0].trim();
|
||||
}
|
||||
|
||||
const filename = artist + " - " + title + "." + filename_ext;
|
||||
return {
|
||||
filename: filename,
|
||||
title: title,
|
||||
artist: artist,
|
||||
album: tag.tags.album,
|
||||
picture: pic_url,
|
||||
file: file_url,
|
||||
mime: mime
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user