add remixer to song artist (#1400)

This commit is contained in:
jeffvli
2026-01-03 03:03:10 -08:00
parent 261c5541cd
commit 186811156e
4 changed files with 147 additions and 57 deletions
+34 -11
View File
@@ -106,6 +106,33 @@ const getPlaylistImageId = (item: z.infer<typeof jfType._response.playlist>): nu
return null;
};
const getArtists = (
item: z.infer<typeof jfType._response.song>,
participants?: null | Record<string, RelatedArtist[]>,
): RelatedArtist[] => {
if (!item?.ArtistItems?.length && !item.AlbumArtists && !participants) {
return [];
}
const result: RelatedArtist[] = [];
(item?.ArtistItems?.length ? item.ArtistItems : item.AlbumArtists)?.forEach((entry) => {
result.push({
id: entry.Id,
imageId: null,
imageUrl: null,
name: entry.Name,
userFavorite: false,
userRating: null,
});
});
if (participants?.['Remixer']) {
result.push(...participants['Remixer']);
}
return result;
};
const normalizeSong = (
item: z.infer<typeof jfType._response.song>,
server: null | ServerListItem,
@@ -143,6 +170,11 @@ const normalizeSong = (
console.warn('Jellyfin song retrieved with no media sources', item);
}
const participants = getPeople(item);
const artists = getArtists(item, participants);
console.log('artists', artists);
return {
_itemType: LibraryItem.SONG,
_serverId: server?.id || '',
@@ -159,16 +191,7 @@ const normalizeSong = (
})),
albumId: item.AlbumId || `dummy/${item.Id}`,
artistName: item?.ArtistItems?.map((entry) => entry.Name).join(', ') || '',
artists: (item?.ArtistItems?.length ? item.ArtistItems : item.AlbumArtists)?.map(
(entry) => ({
id: entry.Id,
imageId: null,
imageUrl: null,
name: entry.Name,
userFavorite: false,
userRating: null,
}),
),
artists,
bitDepth: null,
bitRate,
bpm: null,
@@ -210,7 +233,7 @@ const normalizeSong = (
mbzRecordingId: null,
mbzTrackId: item.ProviderIds?.MusicBrainzTrack || null,
name: item.Name,
participants: getPeople(item),
participants,
path: replacePathPrefix(path || '', pathReplace, pathReplaceWith),
peak: null,
playCount: (item.UserData && item.UserData.PlayCount) || 0,