Subsonic API: fixed extensions + genres

This commit is contained in:
emeric
2023-10-10 23:30:40 +02:00
parent 042cd54171
commit 0e5249868c
9 changed files with 114 additions and 9 deletions
+21 -1
View File
@@ -29,6 +29,7 @@
#include "responses/Artist.hpp"
#include "responses/DiscTitle.hpp"
#include "responses/ItemGenre.hpp"
#include "SubsonicId.hpp"
namespace API::Subsonic
@@ -160,9 +161,28 @@ namespace API::Subsonic
}
} };
addClusters("genres", "GENRE");
addClusters("moods", "MOOD");
// Genres
{
albumNode.createEmptyArrayChild("genres");
ClusterType::pointer clusterType{ ClusterType::find(dbSession, "GENRE") };
if (clusterType)
{
Cluster::FindParameters params;
params.setRelease(release->getId());
params.setClusterType(clusterType->getId());
for (const ClusterId clusterId : Cluster::find(dbSession, params).results)
{
Cluster::pointer cluster{ Cluster::find(dbSession, clusterId) };
if (cluster)
albumNode.addArrayChild("genres", createItemGenreNode(cluster));
}
}
}
albumNode.createEmptyArrayChild("artists");
for (const Artist::pointer& artist : release->getReleaseArtists())
albumNode.addArrayChild("artists", createArtistNode(artist));