SubsonicAPI: optimized search for tracks

This commit is contained in:
emeric
2023-11-04 17:36:59 +01:00
parent c4d2d20447
commit bd59dc3bc9
27 changed files with 3162 additions and 3301 deletions
@@ -86,8 +86,7 @@ namespace API::Subsonic
params.setKeywords(keywords);
params.setRange({ albumOffset, albumCount });
RangeResults<Release::pointer> releases{ Release::find(context.dbSession, params) };
for (const Release::pointer& release : releases.results)
for (const Release::pointer& release : Release::find(context.dbSession, params).results)
searchResult2Node.addArrayChild("album", createAlbumNode(context, release, user, id3));
}
@@ -97,12 +96,8 @@ namespace API::Subsonic
params.setKeywords(keywords);
params.setRange({ songOffset, songCount });
RangeResults<TrackId> trackIds{ Track::find(context.dbSession, params) };
for (const TrackId trackId : trackIds.results)
{
const auto track{ Track::find(context.dbSession, trackId) };
for (const Track::pointer& track : Track::find(context.dbSession, params).results)
searchResult2Node.addArrayChild("song", createSongNode(context, track, user));
}
}
return response;