Added copyright info each track, fixes #793

This commit is contained in:
emeric
2026-02-26 23:00:19 +01:00
parent 74cd9e827c
commit 543dd64d20
16 changed files with 88 additions and 29 deletions
+9 -2
View File
@@ -642,13 +642,20 @@ namespace lms::db
return *year;
}
bool Release::hasVariousCopyrights() const
{
assert(session());
return utils::fetchQuerySingleResult(session()->query<int>("SELECT COUNT(DISTINCT copyright) FROM track t").where("t.release_id = ?").bind(getId())) > 1;
}
std::optional<std::string> Release::getCopyright() const
{
assert(session());
auto query{ session()->query<std::string>("SELECT copyright FROM track t INNER JOIN release r ON r.id = t.release_id").where("r.id = ?").groupBy("copyright").bind(getId()) };
const auto copyrights{ utils::fetchQueryResults(query) };
auto copyrights{ utils::fetchQueryResults(query) };
// various copyrights => no copyright
if (copyrights.empty() || copyrights.size() > 1 || copyrights.front().empty())
@@ -663,7 +670,7 @@ namespace lms::db
const auto query{ session()->query<std::string>("SELECT copyright_url FROM track t INNER JOIN release r ON r.id = t.release_id").where("r.id = ?").bind(getId()).groupBy("copyright_url") };
const auto copyrights{ utils::fetchQueryResults(query) };
auto copyrights{ utils::fetchQueryResults(query) };
// various copyright URLs => no copyright URL
if (copyrights.empty() || copyrights.size() > 1 || copyrights.front().empty())
+4 -4
View File
@@ -643,14 +643,14 @@ namespace lms::db
return !_trackLyrics.empty();
}
std::optional<std::string> Track::getCopyright() const
std::string_view Track::getCopyright() const
{
return _copyright != "" ? std::make_optional<std::string>(_copyright) : std::nullopt;
return _copyright;
}
std::optional<std::string> Track::getCopyrightURL() const
std::string_view Track::getCopyrightURL() const
{
return _copyrightURL != "" ? std::make_optional<std::string>(_copyrightURL) : std::nullopt;
return _copyrightURL;
}
std::vector<Artist::pointer> Track::getArtists(core::EnumSet<TrackArtistLinkType> linkTypes) const
@@ -289,6 +289,7 @@ namespace lms::db
std::optional<int> getYear() const;
core::PartialDateTime getOriginalDate() const;
std::optional<int> getOriginalYear() const;
bool hasVariousCopyrights() const;
std::optional<std::string> getCopyright() const;
std::optional<std::string> getCopyrightURL() const;
std::size_t getMeanBitrate() const;
@@ -297,8 +297,8 @@ namespace lms::db
bool hasLyrics() const;
std::optional<core::UUID> getTrackMBID() const { return core::UUID::fromString(_trackMBID); }
std::optional<core::UUID> getRecordingMBID() const { return core::UUID::fromString(_recordingMBID); }
std::optional<std::string> getCopyright() const;
std::optional<std::string> getCopyrightURL() const;
std::string_view getCopyright() const;
std::string_view getCopyrightURL() const;
std::string_view getArtistDisplayName() const { return _artistDisplayName; }
std::string_view getComment() const { return _comment; }
Advisory getAdvisory() const { return _advisory; }