parseAlbumInfo(): handle relative track urls

This commit is contained in:
patrickkfkan 2021-01-23 00:38:15 +08:00
parent ac257c3aa9
commit 88aea719ad
2 changed files with 12 additions and 2 deletions

View File

@ -181,10 +181,14 @@ function parseAlbumInfo(html, opts) {
return file;
}
basic.track.itemListElement.forEach( track => {
let trackUrl = track.item.url;
if (!utils.isAbsoluteUrl(trackUrl)) {
trackUrl = utils.getUrl(trackUrl, album.url);
}
album.tracks.push({
position: track.position,
name: track.item.name,
url: track.item.url,
url: trackUrl,
duration: track.item.duration_secs,
streamUrl: _getStreamUrl(track.item.url)
});

View File

@ -108,6 +108,11 @@ function stripMultipleWhitespaces(str) {
return str.replace(/\s+/g, ' ');
}
function isAbsoluteUrl(url) {
const isAbsolute = new RegExp('^([a-z]+://|//)', 'i');
return isAbsolute.test(url);
}
module.exports = {
getUrl,
getSiteUrl,
@ -120,5 +125,6 @@ module.exports = {
substrBefore,
splitUrl,
getSearchUrl,
stripMultipleWhitespaces
stripMultipleWhitespaces,
isAbsoluteUrl
};