Improve parsing album track info
This commit is contained in:
parent
aa1956382a
commit
7845995d34
|
@ -117,12 +117,18 @@ export default class AlbumInfoParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(extra.trackinfo)) {
|
if (Array.isArray(extra.trackinfo)) {
|
||||||
|
const tracksFromBasicInfo = basic.track?.itemListElement as Array<any>;
|
||||||
const tracks = extra.trackinfo.map((track: any) => {
|
const tracks = extra.trackinfo.map((track: any) => {
|
||||||
const trackItem: Omit<Track, 'type'> = {
|
const trackItem: Omit<Track, 'type'> = {
|
||||||
name: track.title,
|
name: track.title
|
||||||
duration: track.duration,
|
|
||||||
streamUrl: track.file?.['mp3-128']
|
|
||||||
};
|
};
|
||||||
|
if (track.duration !== undefined) {
|
||||||
|
trackItem.duration = track.duration;
|
||||||
|
}
|
||||||
|
const streamUrl = track.file?.['mp3-128'];
|
||||||
|
if (streamUrl) {
|
||||||
|
trackItem.streamUrl = streamUrl;
|
||||||
|
}
|
||||||
if (track.track_num !== undefined) {
|
if (track.track_num !== undefined) {
|
||||||
trackItem.position = track.track_num;
|
trackItem.position = track.track_num;
|
||||||
}
|
}
|
||||||
|
@ -130,6 +136,13 @@ export default class AlbumInfoParser {
|
||||||
if (trackUrl) {
|
if (trackUrl) {
|
||||||
trackItem.url = trackUrl;
|
trackItem.url = trackUrl;
|
||||||
}
|
}
|
||||||
|
else if (trackItem.position !== undefined) {
|
||||||
|
const trackFromBasic = tracksFromBasicInfo.find((el: any) => el?.position === trackItem.position);
|
||||||
|
const trackUrlFromBasic = trackFromBasic?.item?.['@id'];
|
||||||
|
if (trackUrlFromBasic) {
|
||||||
|
trackItem.url = trackUrlFromBasic;
|
||||||
|
}
|
||||||
|
}
|
||||||
return trackItem;
|
return trackItem;
|
||||||
}) as Track[];
|
}) as Track[];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user