parseAlbumInfo(): handle relative track urls
This commit is contained in:
parent
ac257c3aa9
commit
88aea719ad
|
@ -181,10 +181,14 @@ function parseAlbumInfo(html, opts) {
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
basic.track.itemListElement.forEach( track => {
|
basic.track.itemListElement.forEach( track => {
|
||||||
|
let trackUrl = track.item.url;
|
||||||
|
if (!utils.isAbsoluteUrl(trackUrl)) {
|
||||||
|
trackUrl = utils.getUrl(trackUrl, album.url);
|
||||||
|
}
|
||||||
album.tracks.push({
|
album.tracks.push({
|
||||||
position: track.position,
|
position: track.position,
|
||||||
name: track.item.name,
|
name: track.item.name,
|
||||||
url: track.item.url,
|
url: trackUrl,
|
||||||
duration: track.item.duration_secs,
|
duration: track.item.duration_secs,
|
||||||
streamUrl: _getStreamUrl(track.item.url)
|
streamUrl: _getStreamUrl(track.item.url)
|
||||||
});
|
});
|
||||||
|
|
|
@ -108,6 +108,11 @@ function stripMultipleWhitespaces(str) {
|
||||||
return str.replace(/\s+/g, ' ');
|
return str.replace(/\s+/g, ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isAbsoluteUrl(url) {
|
||||||
|
const isAbsolute = new RegExp('^([a-z]+://|//)', 'i');
|
||||||
|
return isAbsolute.test(url);
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getUrl,
|
getUrl,
|
||||||
getSiteUrl,
|
getSiteUrl,
|
||||||
|
@ -120,5 +125,6 @@ module.exports = {
|
||||||
substrBefore,
|
substrBefore,
|
||||||
splitUrl,
|
splitUrl,
|
||||||
getSearchUrl,
|
getSearchUrl,
|
||||||
stripMultipleWhitespaces
|
stripMultipleWhitespaces,
|
||||||
|
isAbsoluteUrl
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user