Fix fetching of track duration

This commit is contained in:
patrickkfkan 2021-02-07 20:07:27 +08:00
parent 07b2056bbf
commit ec825da178

View File

@ -189,7 +189,7 @@ function parseAlbumInfo(html, opts) {
position: track.position, position: track.position,
name: track.item.name, name: track.item.name,
url: trackUrl, url: trackUrl,
duration: track.item.duration_secs, duration: getAdditionalPropertyValue(track.item, 'duration_secs'),
streamUrl: _getStreamUrl(track.item.url) streamUrl: _getStreamUrl(track.item.url)
}); });
}); });
@ -233,7 +233,7 @@ function parseTrackInfo(html, opts) {
url: basic.url, url: basic.url,
imageUrl: opts.imageBaseUrl + '/img/a' + extra.art_id + '_' + opts.albumImageFormat.id + '.jpg', imageUrl: opts.imageBaseUrl + '/img/a' + extra.art_id + '_' + opts.albumImageFormat.id + '.jpg',
releaseDate: extra.current.release_date, releaseDate: extra.current.release_date,
duration: basic.duration_secs, duration: getAdditionalPropertyValue(basic, 'duration_secs'),
streamUrl: extra.trackinfo && extra.trackinfo[0] && extra.trackinfo[0].file && extra.trackinfo[0].file['mp3-128'] ? extra.trackinfo[0].file['mp3-128'] : null, streamUrl: extra.trackinfo && extra.trackinfo[0] && extra.trackinfo[0].file && extra.trackinfo[0].file['mp3-128'] ? extra.trackinfo[0].file['mp3-128'] : null,
artist: { artist: {
name: basic.byArtist.name, name: basic.byArtist.name,
@ -289,6 +289,16 @@ function parseTrackInfoFromAlbum(html, opts, trackPosition) {
return track; return track;
} }
function getAdditionalPropertyValue(o, propName) {
if (Array.isArray(o.additionalProperty)) {
const p = o.additionalProperty.find( prop => prop.name === propName );
if (p && p.value !== undefined) {
return p.value;
}
}
return undefined;
}
function parseDiscography(html, opts) { function parseDiscography(html, opts) {
const $ = cheerio.load(html); const $ = cheerio.load(html);