Fixed bad json musicBrainzId field in getArtistInfo2, fixes #497
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
#include "services/feedback/IFeedbackService.hpp"
|
||||
#include "services/scrobbling/IScrobblingService.hpp"
|
||||
|
||||
#include "RequestContext.hpp"
|
||||
#include "SubsonicId.hpp"
|
||||
#include "responses/Artist.hpp"
|
||||
#include "responses/DiscTitle.hpp"
|
||||
|
||||
@@ -33,5 +33,7 @@ namespace lms::db
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
class RequestContext;
|
||||
|
||||
Response::Node createAlbumNode(RequestContext& context, const db::ObjectPtr<db::Release>& release, bool id3, const db::ObjectPtr<db::Directory>& directory = {});
|
||||
}
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "database/User.hpp"
|
||||
#include "services/feedback/IFeedbackService.hpp"
|
||||
|
||||
#include "RequestContext.hpp"
|
||||
#include "SubsonicId.hpp"
|
||||
|
||||
namespace lms::api::subsonic
|
||||
|
||||
@@ -36,6 +36,8 @@ namespace lms::db
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
class RequestContext;
|
||||
|
||||
namespace utils
|
||||
{
|
||||
std::string joinArtistNames(const std::vector<db::ObjectPtr<db::Artist>>& artists);
|
||||
|
||||
@@ -21,13 +21,23 @@
|
||||
|
||||
#include "database/Cluster.hpp"
|
||||
|
||||
#include "RequestContext.hpp"
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
Response::Node createGenreNode(const db::Cluster::pointer& cluster)
|
||||
Response::Node createGenreNode(RequestContext& context, const db::Cluster::pointer& cluster)
|
||||
{
|
||||
Response::Node clusterNode;
|
||||
|
||||
clusterNode.setValue(cluster->getName());
|
||||
switch (context.responseFormat)
|
||||
{
|
||||
case ResponseFormat::json:
|
||||
clusterNode.setAttribute("value", cluster->getName());
|
||||
break;
|
||||
case ResponseFormat::xml:
|
||||
clusterNode.setValue(cluster->getName());
|
||||
break;
|
||||
}
|
||||
clusterNode.setAttribute("songCount", cluster->getTrackCount());
|
||||
clusterNode.setAttribute("albumCount", cluster->getReleasesCount());
|
||||
|
||||
|
||||
@@ -30,5 +30,7 @@ namespace lms::db
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
Response::Node createGenreNode(const db::ObjectPtr<db::Cluster>& cluster);
|
||||
}
|
||||
class RequestContext;
|
||||
|
||||
Response::Node createGenreNode(RequestContext& context, const db::ObjectPtr<db::Cluster>& cluster);
|
||||
} // namespace lms::api::subsonic
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "services/feedback/IFeedbackService.hpp"
|
||||
#include "services/scrobbling/IScrobblingService.hpp"
|
||||
|
||||
#include "RequestContext.hpp"
|
||||
#include "SubsonicId.hpp"
|
||||
#include "Utils.hpp"
|
||||
#include "responses/Artist.hpp"
|
||||
|
||||
@@ -32,5 +32,7 @@ namespace lms::db
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
class RequestContext;
|
||||
|
||||
Response::Node createSongNode(RequestContext& context, const db::ObjectPtr<db::Track>& track, bool id3);
|
||||
}
|
||||
} // namespace lms::api::subsonic
|
||||
@@ -19,13 +19,15 @@
|
||||
|
||||
#include "responses/User.hpp"
|
||||
|
||||
#include "database/MediaLibrary.hpp"
|
||||
#include "database/User.hpp"
|
||||
|
||||
#include "RequestContext.hpp"
|
||||
#include "SubsonicId.hpp"
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
using namespace db;
|
||||
|
||||
Response::Node createUserNode(const User::pointer& user)
|
||||
Response::Node createUserNode(RequestContext& context, const db::User::pointer& user)
|
||||
{
|
||||
Response::Node userNode;
|
||||
|
||||
@@ -38,14 +40,15 @@ namespace lms::api::subsonic
|
||||
userNode.setAttribute("playlistRole", true);
|
||||
userNode.setAttribute("coverArtRole", false);
|
||||
userNode.setAttribute("commentRole", false);
|
||||
userNode.setAttribute("podcastRole", false);
|
||||
userNode.setAttribute("podcastRole", false); // not supported
|
||||
userNode.setAttribute("streamRole", true);
|
||||
userNode.setAttribute("jukeboxRole", false);
|
||||
userNode.setAttribute("shareRole", false);
|
||||
userNode.setAttribute("jukeboxRole", false); // not supported
|
||||
userNode.setAttribute("shareRole", false); // not supported
|
||||
|
||||
Response::Node folder;
|
||||
folder.setValue("0");
|
||||
userNode.addArrayChild("folder", std::move(folder));
|
||||
// users can access all libraries
|
||||
db::MediaLibrary::find(context.dbSession, [&](const db::MediaLibrary::pointer& library) {
|
||||
userNode.addArrayValue("folder", idToString(library->getId()));
|
||||
});
|
||||
|
||||
return userNode;
|
||||
}
|
||||
|
||||
@@ -30,5 +30,7 @@ namespace lms::db
|
||||
|
||||
namespace lms::api::subsonic
|
||||
{
|
||||
Response::Node createUserNode(const db::ObjectPtr<db::User>& user);
|
||||
class RequestContext;
|
||||
|
||||
Response::Node createUserNode(RequestContext& context, const db::ObjectPtr<db::User>& user);
|
||||
}
|
||||
Reference in New Issue
Block a user