add support for disc subtitles from subsonic discTitles field (#1609)

This commit is contained in:
marank
2026-01-24 06:30:09 +01:00
committed by GitHub
parent f016d2cdf4
commit 8ed586e2f3
2 changed files with 17 additions and 2 deletions
@@ -134,6 +134,7 @@ const normalizeSong = (
pathReplace?: string,
pathReplaceWith?: string,
playlistIndex?: number,
discTitleMap?: Map<number, string>,
): Song => {
const participants = getParticipants(item);
@@ -156,7 +157,7 @@ const normalizeSong = (
container: item.contentType,
createdAt: item.created,
discNumber: item.discNumber || 1,
discSubtitle: null,
discSubtitle: discTitleMap?.get(item.discNumber ?? 1) ?? null,
duration: item.duration ? item.duration * 1000 : 0,
explicitStatus:
item.explicitStatus === 'explicit'
@@ -267,6 +268,12 @@ const normalizeAlbum = (
pathReplace?: string,
pathReplaceWith?: string,
): Album => {
const discTitleMap = new Map<number, string>();
(item as z.infer<typeof ssType._response.album>).discTitles?.forEach((discTitle) => {
discTitleMap.set(discTitle.disc, discTitle.title);
});
const releaseDate =
item.releaseDate &&
typeof item.releaseDate.year === 'number' &&
@@ -312,7 +319,7 @@ const normalizeAlbum = (
songCount: item.songCount,
songs:
(item as z.infer<typeof ssType._response.album>).song?.map((song) =>
normalizeSong(song, server, pathReplace, pathReplaceWith),
normalizeSong(song, server, pathReplace, pathReplaceWith, undefined, discTitleMap),
) || [],
tags: null,
updatedAt: item.created,