Added support for explcit tags (rtng, ITUNESADVISORY)

This commit is contained in:
emeric
2025-01-17 18:03:16 +01:00
parent dd93a3f6c7
commit c7db5fc61a
15 changed files with 181 additions and 13 deletions
@@ -28,6 +28,7 @@
#include "database/Image.hpp"
#include "database/Release.hpp"
#include "database/Track.hpp"
#include "database/Types.hpp"
#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
@@ -223,6 +224,18 @@ namespace lms::api::subsonic
albumNode.addArrayChild("recordLabels", createRecordLabel(label));
});
auto advisoryToExplicitStatus = [&](const core::EnumSet<db::Advisory> advisories) -> std::string_view {
if (advisories.contains(db::Advisory::Explicit))
return "explicit";
if (advisories.contains(db::Advisory::Clean))
return "clean";
return "";
};
albumNode.setAttribute("explicitStatus", advisoryToExplicitStatus(release->getAdvisories()));
return albumNode;
}
} // namespace lms::api::subsonic
+17
View File
@@ -32,6 +32,7 @@
#include "database/Release.hpp"
#include "database/Track.hpp"
#include "database/TrackArtistLink.hpp"
#include "database/Types.hpp"
#include "database/User.hpp"
#include "services/feedback/IFeedbackService.hpp"
#include "services/scrobbling/IScrobblingService.hpp"
@@ -227,6 +228,22 @@ namespace lms::api::subsonic
for (const auto& genre : genres)
trackResponse.addArrayChild("genres", createItemGenreNode(genre->getName()));
auto advisoryToExplicitStatus = [](db::Advisory advisory) -> std::string_view {
switch (advisory)
{
case db::Advisory::Clean:
return "clean";
case db::Advisory::Explicit:
return "expicit";
case db::Advisory::Unknown:
case db::Advisory::UnSet:
break;
}
return "";
};
trackResponse.setAttribute("explicitStatus", advisoryToExplicitStatus(track->getAdvisory()));
trackResponse.addChild("replayGain", createReplayGainNode(track));
return trackResponse;