|
@ -139,7 +139,7 @@ class NcmDecrypt { |
|
|
} else { |
|
|
} else { |
|
|
result = JSON.parse(plainText.slice(labelIndex + 1)); |
|
|
result = JSON.parse(plainText.slice(labelIndex + 1)); |
|
|
} |
|
|
} |
|
|
if (!!result.albumPic) { |
|
|
if (result.albumPic) { |
|
|
result.albumPic = result.albumPic.replace('http://', 'https://') + '?param=500y500'; |
|
|
result.albumPic = result.albumPic.replace('http://', 'https://') + '?param=500y500'; |
|
|
} |
|
|
} |
|
|
return result; |
|
|
return result; |
|
@ -160,11 +160,20 @@ class NcmDecrypt { |
|
|
|
|
|
|
|
|
// build artists
|
|
|
// build artists
|
|
|
let artists: string[] = []; |
|
|
let artists: string[] = []; |
|
|
if (!!this.oriMeta.artist) { |
|
|
if (typeof this.oriMeta.artist === 'string') { |
|
|
this.oriMeta.artist.forEach((arr) => artists.push(<string>arr[0])); |
|
|
// v3.0: artist 现在可能是字符串了?
|
|
|
|
|
|
artists.push(this.oriMeta.artist); |
|
|
|
|
|
} else if (Array.isArray(this.oriMeta.artist)) { |
|
|
|
|
|
this.oriMeta.artist.forEach((artist) => { |
|
|
|
|
|
if (typeof artist === 'string') { |
|
|
|
|
|
artists.push(artist); |
|
|
|
|
|
} else if (Array.isArray(artist) && artist[0] && typeof artist[0] === 'string') { |
|
|
|
|
|
artists.push(artist[0]); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (artists.length === 0 && !!info.artist) { |
|
|
if (artists.length === 0 && info.artist) { |
|
|
artists = info.artist |
|
|
artists = info.artist |
|
|
.split(',') |
|
|
.split(',') |
|
|
.map((val) => val.trim()) |
|
|
.map((val) => val.trim()) |
|
@ -180,7 +189,7 @@ class NcmDecrypt { |
|
|
this.image.buffer = await img.getBufferAsync('image/jpeg'); |
|
|
this.image.buffer = await img.getBufferAsync('image/jpeg'); |
|
|
} |
|
|
} |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
console.log('get cover image failed', e); |
|
|
console.log('fetch cover image failed', e); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.newMeta = { title: info.title, artists, album: this.oriMeta.album, picture: this.image?.buffer }; |
|
|
this.newMeta = { title: info.title, artists, album: this.oriMeta.album, picture: this.image?.buffer }; |
|
@ -226,12 +235,14 @@ class NcmDecrypt { |
|
|
this.audio = this._getAudio(keyBox); |
|
|
this.audio = this._getAudio(keyBox); |
|
|
this.format = this.oriMeta.format || SniffAudioExt(this.audio); |
|
|
this.format = this.oriMeta.format || SniffAudioExt(this.audio); |
|
|
this.mime = AudioMimeType[this.format]; |
|
|
this.mime = AudioMimeType[this.format]; |
|
|
await this._buildMeta(); |
|
|
|
|
|
try { |
|
|
try { |
|
|
|
|
|
await this._buildMeta(); |
|
|
await this._writeMeta(); |
|
|
await this._writeMeta(); |
|
|
} catch (e) { |
|
|
} catch (e) { |
|
|
console.warn('write meta data failed', e); |
|
|
console.warn('build/write meta failed, skip.', e); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return this.gatherResult(); |
|
|
return this.gatherResult(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|