Subsonic API: report the cover of the release if no embedded cover is found for the track, fixes #519

This commit is contained in:
emeric
2024-09-13 19:05:13 +02:00
parent 6c17c04dfc
commit 8cd848651b
+4 -1
View File
@@ -106,8 +106,12 @@ namespace lms::api::subsonic
trackResponse.setAttribute("transcodedContentType", av::getMimeType(std::filesystem::path{ "." + fileSuffix })); trackResponse.setAttribute("transcodedContentType", av::getMimeType(std::filesystem::path{ "." + fileSuffix }));
} }
const Release::pointer release{ track->getRelease() };
if (track->hasCover()) if (track->hasCover())
trackResponse.setAttribute("coverArt", idToString(track->getId())); trackResponse.setAttribute("coverArt", idToString(track->getId()));
else if (release)
trackResponse.setAttribute("coverArt", idToString(release->getId()));
const std::vector<Artist::pointer>& artists{ track->getArtists({ TrackArtistLinkType::Artist }) }; const std::vector<Artist::pointer>& artists{ track->getArtists({ TrackArtistLinkType::Artist }) };
if (!artists.empty()) if (!artists.empty())
@@ -121,7 +125,6 @@ namespace lms::api::subsonic
trackResponse.setAttribute("artistId", idToString(artists.front()->getId())); trackResponse.setAttribute("artistId", idToString(artists.front()->getId()));
} }
Release::pointer release{ track->getRelease() };
if (release) if (release)
{ {
trackResponse.setAttribute("album", release->getName()); trackResponse.setAttribute("album", release->getName());