SubsonicAPI: optimized search for albums

This commit is contained in:
emeric
2023-11-04 16:15:39 +01:00
parent 4089f07c16
commit c4d2d20447
14 changed files with 735 additions and 718 deletions
@@ -335,11 +335,8 @@ namespace API::Subsonic
directoryNode.setAttribute("name", Utils::makeNameFilesystemCompatible(artist->getName()));
const auto artistReleases{ Release::find(context.dbSession, Release::FindParameters {}.setArtist(*artistId)) };
for (const ReleaseId artistReleaseId : artistReleases.results)
{
const Release::pointer release{ Release::find(context.dbSession, artistReleaseId) };
for (const Release::pointer& release : artistReleases.results)
directoryNode.addArrayChild("child", createAlbumNode(context, release, user, false /* no id3 */));
}
}
else if (releaseId)
{
@@ -408,11 +405,8 @@ namespace API::Subsonic
Response::Node artistNode{ createArtistNode(context, artist, user, true /* id3 */) };
const auto releases{ Release::find(context.dbSession, Release::FindParameters {}.setArtist(artist->getId())) };
for (const ReleaseId releaseId : releases.results)
{
const Release::pointer release{ Release::find(context.dbSession, releaseId) };
for (const Release::pointer& release : releases.results)
artistNode.addArrayChild("album", createAlbumNode(context, release, user, true /* id3 */));
}
response.addNode("artist", std::move(artistNode));