Changed the way album covers are associated, fixes #503

This commit is contained in:
emeric
2024-09-29 16:21:46 +02:00
parent 4e1b422e31
commit 3f6177cedd
31 changed files with 502 additions and 231 deletions
+17 -1
View File
@@ -25,7 +25,9 @@
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Directory.hpp"
#include "database/Image.hpp"
#include "database/Release.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
@@ -82,7 +84,21 @@ namespace lms::api::subsonic
}
albumNode.setAttribute("created", core::stringUtils::toISO8601String(release->getLastWritten()));
albumNode.setAttribute("coverArt", idToString(release->getId()));
if (release->getImage())
{
albumNode.setAttribute("coverArt", idToString(release->getId()));
}
else
{
db::Track::FindParameters params;
params.setRelease(release->getId());
params.setHasEmbeddedImage(true);
params.setRange(db::Range{ 0, 1 });
db::Track::find(context.dbSession, params, [&](const db::Track::pointer& track) {
albumNode.setAttribute("coverArt", idToString(track->getId()));
});
}
if (const auto year{ release->getYear() })
albumNode.setAttribute("year", *year);