|
|
@ -1,6 +1,5 @@
|
|
|
|
import { parseBlob as metaParseBlob } from 'music-metadata-browser';
|
|
|
|
import { parseBlob as metaParseBlob } from 'music-metadata-browser';
|
|
|
|
import { AudioMimeType, SniffAudioExt, GetArrayBuffer, GetMetaFromFile } from "./utils";
|
|
|
|
import { AudioMimeType, SniffAudioExt, GetArrayBuffer, GetMetaFromFile } from "./utils";
|
|
|
|
import { decode } from 'iconv-lite';
|
|
|
|
|
|
|
|
import { DecryptResult } from '@/decrypt/entity';
|
|
|
|
import { DecryptResult } from '@/decrypt/entity';
|
|
|
|
|
|
|
|
|
|
|
|
interface Handler {
|
|
|
|
interface Handler {
|
|
|
@ -24,13 +23,6 @@ export async function Decrypt(file: File, raw_filename: string, raw_ext: string)
|
|
|
|
let musicBlob = new Blob([musicDecoded], { type: mime });
|
|
|
|
let musicBlob = new Blob([musicDecoded], { type: mime });
|
|
|
|
|
|
|
|
|
|
|
|
const musicMeta = await metaParseBlob(musicBlob);
|
|
|
|
const musicMeta = await metaParseBlob(musicBlob);
|
|
|
|
for (let metaIdx in musicMeta.native) {
|
|
|
|
|
|
|
|
if (musicMeta.native[metaIdx].some(item => item.id === "TCON" && item.value === "(12)")) {
|
|
|
|
|
|
|
|
musicMeta.common.artist = decode(musicMeta.common.artist, "gbk");
|
|
|
|
|
|
|
|
musicMeta.common.title = decode(musicMeta.common.title, "gbk");
|
|
|
|
|
|
|
|
musicMeta.common.album = decode(musicMeta.common.album, "gbk");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const info = GetMetaFromFile(raw_filename, musicMeta.common.title, musicMeta.common.artist);
|
|
|
|
const info = GetMetaFromFile(raw_filename, musicMeta.common.title, musicMeta.common.artist);
|
|
|
|
|
|
|
|
|
|
|
|