OpenSubsonic API: use albumArtists/displayAlbumArtist in Child responses for albums

This commit is contained in:
emeric
2024-12-18 15:02:31 +01:00
parent b80cd013a9
commit a72171d2e7
2 changed files with 19 additions and 5 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ namespace lms::api::subsonic
}; };
static inline constexpr ProtocolVersion defaultServerProtocolVersion{ 1, 16, 0 }; static inline constexpr ProtocolVersion defaultServerProtocolVersion{ 1, 16, 0 };
static inline constexpr std::string_view serverVersion{ "6" }; static inline constexpr std::string_view serverVersion{ "7" };
} // namespace lms::api::subsonic } // namespace lms::api::subsonic
namespace lms::core::stringUtils namespace lms::core::stringUtils
+18 -4
View File
@@ -184,11 +184,25 @@ namespace lms::api::subsonic
}); });
} }
albumNode.createEmptyArrayChild("artists"); if (id3)
for (const Artist::pointer& artist : release->getReleaseArtists()) {
albumNode.addArrayChild("artists", createArtistNode(artist)); albumNode.createEmptyArrayChild("artists");
for (const Artist::pointer& artist : release->getReleaseArtists())
albumNode.addArrayChild("artists", createArtistNode(artist));
albumNode.setAttribute("displayArtist", release->getArtistDisplayName()); albumNode.setAttribute("displayArtist", release->getArtistDisplayName());
}
else
{
albumNode.createEmptyArrayChild("albumArtists");
for (const Artist::pointer& artist : release->getReleaseArtists())
albumNode.addArrayChild("albumArtists", createArtistNode(artist));
albumNode.setAttribute("displayAlbumArtist", release->getArtistDisplayName());
albumNode.createEmptyArrayChild("artists");
albumNode.setAttribute("displayArtist", "");
}
albumNode.addChild("originalReleaseDate", createItemDateNode(release->getOriginalDate(), release->getOriginalYear())); albumNode.addChild("originalReleaseDate", createItemDateNode(release->getOriginalDate(), release->getOriginalYear()));
albumNode.setAttribute("isCompilation", release->isCompilation()); albumNode.setAttribute("isCompilation", release->isCompilation());