diff --git a/src/renderer/api/navidrome/navidrome-normalize.ts b/src/renderer/api/navidrome/navidrome-normalize.ts index ec285e03f..4aafb14e0 100644 --- a/src/renderer/api/navidrome/navidrome-normalize.ts +++ b/src/renderer/api/navidrome/navidrome-normalize.ts @@ -45,6 +45,14 @@ const getCoverArtUrl = (args: { ); }; +interface WithDate { + playDate?: string; +} + +const normalizePlayDate = (item: WithDate): string | null => { + return !item.playDate || item.playDate.includes('0001-') ? null : item.playDate; +}; + const normalizeSong = ( item: z.infer | z.infer, server: ServerListItem | null, @@ -100,7 +108,7 @@ const normalizeSong = ( imagePlaceholderUrl, imageUrl, itemType: LibraryItem.SONG, - lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate, + lastPlayedAt: normalizePlayDate(item), lyrics: item.lyrics ? item.lyrics : null, name: item.title, path: item.path, @@ -159,7 +167,7 @@ const normalizeAlbum = ( imageUrl, isCompilation: item.compilation, itemType: LibraryItem.ALBUM, - lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate, + lastPlayedAt: normalizePlayDate(item), name: item.name, playCount: item.playCount, releaseDate: new Date(item.minYear, 0, 1).toISOString(), @@ -207,7 +215,7 @@ const normalizeAlbumArtist = ( id: item.id, imageUrl: imageUrl || null, itemType: LibraryItem.ALBUM_ARTIST, - lastPlayedAt: item.playDate.includes('0001-') ? null : item.playDate, + lastPlayedAt: normalizePlayDate(item), name: item.name, playCount: item.playCount, serverId: server?.id || 'unknown', diff --git a/src/renderer/api/navidrome/navidrome-types.ts b/src/renderer/api/navidrome/navidrome-types.ts index ae3322d7b..d01174f6c 100644 --- a/src/renderer/api/navidrome/navidrome-types.ts +++ b/src/renderer/api/navidrome/navidrome-types.ts @@ -78,7 +78,7 @@ const albumArtist = z.object({ name: z.string(), orderArtistName: z.string(), playCount: z.number(), - playDate: z.string(), + playDate: z.string().optional(), rating: z.number(), size: z.number(), smallImageUrl: z.string().optional(), @@ -128,7 +128,7 @@ const album = z.object({ orderAlbumArtistName: z.string(), orderAlbumName: z.string(), playCount: z.number(), - playDate: z.string(), + playDate: z.string().optional(), rating: z.number().optional(), size: z.number(), songCount: z.number(), @@ -211,7 +211,7 @@ const song = z.object({ orderTitle: z.string(), path: z.string(), playCount: z.number(), - playDate: z.string(), + playDate: z.string().optional(), rating: z.number().optional(), rgAlbumGain: z.number().optional(), rgAlbumPeak: z.number().optional(),