diff --git a/src/lib/album/AlbumInfoParser.ts b/src/lib/album/AlbumInfoParser.ts index 19cb614..d2eb9c5 100644 --- a/src/lib/album/AlbumInfoParser.ts +++ b/src/lib/album/AlbumInfoParser.ts @@ -51,10 +51,12 @@ export default class AlbumInfoParser { artist.url = basic.byArtist['@id']; } + const url = basic['@id']; + const album: Album = { type: 'album', name: basic.name, - url: basic['@id'], + url, numTracks: basic.numTracks, keywords: basic.keywords, description: basic.description.replaceAll('\r\n', '\n') || '', @@ -83,6 +85,11 @@ export default class AlbumInfoParser { artist.url = publisher.url; } + if (url) { + const urlParts = url.split('/'); + album.slug = urlParts[urlParts.length - 1]; + } + if (Array.isArray(basic.albumRelease)) { const releases = basic.albumRelease.filter( (release: any) => release.musicReleaseFormat).map((release: any) => { @@ -96,9 +103,6 @@ export default class AlbumInfoParser { const releaseUrl = normalizeUrl(release['@id'], album.url); if (releaseUrl) { releaseItem.url = releaseUrl; - - const urlParts = releaseUrl.split('/'); - releaseItem.slug = urlParts[urlParts.length - 1]; } if (release.image) { if (Array.isArray(release.image) && release.image[0]) { diff --git a/src/lib/types/Album.ts b/src/lib/types/Album.ts index 520af09..eab9b0b 100644 --- a/src/lib/types/Album.ts +++ b/src/lib/types/Album.ts @@ -6,6 +6,7 @@ interface Album extends MediaKind { numTracks?: number; keywords?: string[]; description?: string; + slug?: string; genre?: string; location?: string; featuredTrack?: Omit; @@ -17,7 +18,6 @@ export interface AlbumRelease { name: string; format: string; url?: string; - slug?: string; imageUrl?: string; description?: string; } diff --git a/src/lib/types/Track.ts b/src/lib/types/Track.ts index b5e1c7f..8abd697 100644 --- a/src/lib/types/Track.ts +++ b/src/lib/types/Track.ts @@ -4,7 +4,6 @@ import MediaKind from './MediaKind.js'; interface Track extends MediaKind { type: 'track'; description?: string; - url?: string; slug?: string; duration?: number; seekPosition?: number;