Better handle badly tagged multi-discs releases

This commit is contained in:
emeric
2022-09-04 21:14:48 +02:00
parent a6e2818a38
commit 56e9b4f787
8 changed files with 72 additions and 16 deletions
+14 -2
View File
@@ -264,7 +264,7 @@ Release::find(Session& session, const FindParameters& params)
}
std::optional<std::size_t>
Release::getTotalTrack(void) const
Release::getTotalTrack() const
{
assert(session());
@@ -276,7 +276,7 @@ Release::getTotalTrack(void) const
}
std::optional<std::size_t>
Release::getTotalDisc(void) const
Release::getTotalDisc() const
{
assert(session());
@@ -287,6 +287,18 @@ Release::getTotalDisc(void) const
return (res > 0) ? std::make_optional<std::size_t>(res) : std::nullopt;
}
std::size_t
Release::getDiscCount() const
{
assert(session());
int res {session()->query<int>("SELECT COUNT(DISTINCT disc_number) FROM track t")
.join("release r ON r.id = t.release_id")
.where("r.id = ?")
.bind(getId())};
return res;
}
std::optional<int>
Release::getReleaseYear(bool original) const
{