From 1d83898f0857a8dd1ae36dd065011113463a79c0 Mon Sep 17 00:00:00 2001 From: MengYX Date: Sat, 29 Feb 2020 19:52:41 +0800 Subject: [PATCH] #20 Add Support For Netease DJ Files --- src/decrypt/ncm.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/decrypt/ncm.js b/src/decrypt/ncm.js index a28808f..10c2a16 100644 --- a/src/decrypt/ncm.js +++ b/src/decrypt/ncm.js @@ -32,7 +32,7 @@ export async function Decrypt(file) { const artists = []; musicMeta.artist.forEach(arr => artists.push(arr[0])); if (musicMeta.format === "mp3") - audioData = await writeID3(audioData, artists, musicMeta.musicName, musicMeta.album, musicMeta.albumPic) + audioData = await writeID3(audioData, artists, musicMeta.musicName, musicMeta.album, musicMeta.albumPic); const musicData = new Blob([audioData], {type: mime}); return { @@ -145,9 +145,12 @@ function getMetaData(dataView, fileBuffer, offset) { }, META_KEY, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7} - ); - - const result = JSON.parse(plainText.toString(CryptoJS.enc.Utf8).slice(6)); + ).toString(CryptoJS.enc.Utf8); + const labelIndex = plainText.indexOf(":"); + let result = JSON.parse(plainText.slice(labelIndex + 1)); + if (plainText.slice(0, labelIndex) === "dj") { + result = result.mainMusic; + } result.albumPic = result.albumPic.replace("http:", "https:"); return {data: result, offset: offset}; }