Subsonic API: added 'contributor' in song entries

This commit is contained in:
emeric
2023-10-04 18:51:38 +02:00
parent 8f29410670
commit 4f25331e1d
8 changed files with 122 additions and 17 deletions
+10
View File
@@ -25,11 +25,13 @@
#include "services/database/Cluster.hpp"
#include "services/database/Release.hpp"
#include "services/database/Track.hpp"
#include "services/database/TrackArtistLink.hpp"
#include "services/database/User.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
#include "utils/Service.hpp"
#include "utils/String.hpp"
#include "responses/Artist.hpp"
#include "responses/Contributor.hpp"
#include "SubsonicId.hpp"
#include "Utils.hpp"
@@ -159,6 +161,14 @@ namespace API::Subsonic
trackResponse.setAttribute("musicBrainzId", mbid ? mbid->getAsString() : "");
}
trackResponse.createEmptyArrayChild("contributors");
for (const TrackArtistLinkId linkId : TrackArtistLink::find(dbSession, TrackArtistLink::FindParameters{}.setTrack(track->getId())).results)
{
TrackArtistLink::pointer link{ TrackArtistLink::find(dbSession, linkId) };
if (link)
trackResponse.addArrayChild("contributors", createContributorNode(link));
}
return trackResponse;
}
}