Use other track front cover as a last fallback option

This commit is contained in:
emeric
2025-06-15 14:41:58 +02:00
parent a550529e43
commit e5205e7115
@@ -203,7 +203,7 @@ namespace lms::artwork
if (isImageFound(res))
return res;
// Fallback on front cover
// Fallback on front cover for this track
{
db::TrackEmbeddedImage::FindParameters params;
params.setTrack(trackId);
@@ -213,19 +213,6 @@ namespace lms::artwork
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); });
}
if (isImageFound(res))
return res;
// Fallback on whatever front cover found on the release
{
db::TrackEmbeddedImage::FindParameters params;
params.setRelease(releaseId);
params.setImageTypes({ db::ImageType::FrontCover });
params.setSortMethod(db::TrackEmbeddedImageSortMethod::SizeDesc);
params.setRange(db::Range{ .offset = 0, .size = 1 });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); });
}
if (isImageFound(res))
return res;
@@ -236,6 +223,19 @@ namespace lms::artwork
res = imageId;
}
if (isImageFound(res))
return res;
// Fallback on the first front cover found on the release
{
db::TrackEmbeddedImage::FindParameters params;
params.setRelease(releaseId);
params.setImageTypes({ db::ImageType::FrontCover });
params.setSortMethod(db::TrackEmbeddedImageSortMethod::DiscNumberThenTrackNumberThenSizeDesc);
params.setRange(db::Range{ .offset = 0, .size = 1 });
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) { res = image->getId(); });
}
return res;
}