Merge branch 'develop' for release v3.45.1

This commit is contained in:
emeric
2023-12-01 09:45:33 +01:00
233 changed files with 748 additions and 702 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ RUN \
make distclean
# WT
ARG WT_VERSION=4.10.0
ARG WT_VERSION=4.10.2
RUN \
DIR=/tmp/wt && mkdir -p ${DIR} && cd ${DIR} && \
curl -sLO https://github.com/emweb/wt/archive/${WT_VERSION}.tar.gz && \
+1
View File
@@ -1,4 +1,5 @@
add_subdirectory(av)
add_subdirectory(database)
add_subdirectory(image)
add_subdirectory(metadata)
add_subdirectory(services)
@@ -16,15 +16,15 @@
* You should have received a copy of the GNU General Public License
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Artist.hpp"
#include "database/Artist.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Cluster.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Cluster.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
@@ -17,11 +17,11 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/AuthToken.hpp"
#include "database/AuthToken.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "StringViewTraits.hpp"
#include "IdTypeTraits.hpp"
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Cluster.hpp"
#include "database/Cluster.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Release.hpp"
#include "services/database/ScanSettings.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "database/Artist.hpp"
#include "database/Release.hpp"
#include "database/ScanSettings.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "IdTypeTraits.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Db.hpp"
#include "database/Db.hpp"
#include <Wt/Dbo/FixedSqlConnectionPool.h>
#include <Wt/Dbo/backend/Sqlite3.h>
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/IConfig.hpp"
#include "utils/Service.hpp"
#include "utils/ILogger.hpp"
@@ -22,7 +22,7 @@
#include <type_traits>
#include <Wt/Dbo/StdSqlTraits.h>
#include "services/database/Types.hpp"
#include "database/Types.hpp"
namespace Wt::Dbo
{
@@ -17,10 +17,10 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Listen.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Listen.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "SqlQuery.hpp"
#include "Utils.hpp"
@@ -249,29 +249,31 @@ namespace Database
return Utils::execQuery<TrackId>(query, range);
}
std::size_t Listen::getCount(Session& session, UserId userId, ScrobblingBackend backend, TrackId trackId)
std::size_t Listen::getCount(Session& session, UserId userId, TrackId trackId)
{
session.checkReadTransaction();
return session.getDboSession().query<int>("SELECT COUNT(*) from listen l")
.join("user u ON u.id = l.user_id")
.where("l.track_id = ?").bind(trackId)
.where("l.user_id = ?").bind(userId)
.where("l.backend = ?").bind(backend)
.where("l.backend = u.scrobbling_backend")
.resultValue();
}
std::size_t Listen::getCount(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId releaseId)
std::size_t Listen::getCount(Session& session, UserId userId, ReleaseId releaseId)
{
session.checkReadTransaction();
return session.getDboSession().query<int>("SELECT IFNULL(MIN(count_result), 0)"
return session.getDboSession().query<int>(
"SELECT IFNULL(MIN(count_result), 0)"
" FROM ("
" SELECT COUNT(l.track_id) AS count_result"
" FROM track t"
" LEFT JOIN listen l ON t.id = l.track_id AND l.backend = ? AND l.user_id = ?"
" LEFT JOIN listen l ON t.id = l.track_id AND l.backend = (SELECT scrobbling_backend FROM user WHERE id = ?) AND l.user_id = ?"
" WHERE t.release_id = ?"
" GROUP BY t.id)")
.bind(backend)
.bind(userId)
.bind(userId)
.bind(releaseId)
.resultValue();
@@ -21,10 +21,10 @@
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Db.hpp"
#include "services/database/ScanSettings.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Db.hpp"
#include "database/ScanSettings.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
@@ -17,15 +17,15 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Release.hpp"
#include "database/Release.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Artist.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "SqlQuery.hpp"
#include "EnumSetTraits.hpp"
@@ -17,7 +17,7 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/ScanSettings.hpp"
#include "database/ScanSettings.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
@@ -25,11 +25,21 @@
#include "utils/ILogger.hpp"
#include "utils/String.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Session.hpp"
#include "database/Cluster.hpp"
#include "database/Session.hpp"
namespace Database
{
void ScanSettings::init(Session& session)
{
session.checkWriteTransaction();
if (pointer settings{ get(session) })
return;
session.getDboSession().add(std::make_unique<ScanSettings>());
}
ScanSettings::pointer ScanSettings::get(Session& session)
{
session.checkReadTransaction();
@@ -17,30 +17,30 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Session.hpp"
#include "database/Session.hpp"
#include <cassert>
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
#include "services/database/Artist.hpp"
#include "services/database/AuthToken.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Db.hpp"
#include "services/database/Listen.hpp"
#include "services/database/Release.hpp"
#include "services/database/ScanSettings.hpp"
#include "services/database/StarredArtist.hpp"
#include "services/database/StarredRelease.hpp"
#include "services/database/StarredTrack.hpp"
#include "services/database/Track.hpp"
#include "services/database/TrackBookmark.hpp"
#include "services/database/TrackArtistLink.hpp"
#include "services/database/TrackList.hpp"
#include "services/database/TrackFeatures.hpp"
#include "services/database/TransactionChecker.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/AuthToken.hpp"
#include "database/Cluster.hpp"
#include "database/Db.hpp"
#include "database/Listen.hpp"
#include "database/Release.hpp"
#include "database/ScanSettings.hpp"
#include "database/StarredArtist.hpp"
#include "database/StarredRelease.hpp"
#include "database/StarredTrack.hpp"
#include "database/Track.hpp"
#include "database/TrackBookmark.hpp"
#include "database/TrackArtistLink.hpp"
#include "database/TrackList.hpp"
#include "database/TrackFeatures.hpp"
#include "database/TransactionChecker.hpp"
#include "database/User.hpp"
#include "EnumSetTraits.hpp"
#include "Migration.hpp"
@@ -171,6 +171,12 @@ namespace Database
_session.execute("CREATE INDEX IF NOT EXISTS starred_track_user_backend_idx ON starred_track(user_id,backend)");
_session.execute("CREATE INDEX IF NOT EXISTS starred_track_track_user_backend_idx ON starred_track(track_id,user_id,backend)");
}
// Singletons
{
auto uniqueTransaction{ createWriteTransaction() };
ScanSettings::init(*this);
}
}
void Session::analyze()
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/StarredArtist.hpp"
#include "database/StarredArtist.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Artist.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/StarredRelease.hpp"
#include "database/StarredRelease.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/StarredTrack.hpp"
#include "database/StarredTrack.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Track.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Track.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -17,17 +17,17 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Track.hpp"
#include "database/Track.hpp"
#include <Wt/Dbo/WtSqlTraits.h>
#include "services/database/Artist.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Release.hpp"
#include "services/database/TrackArtistLink.hpp"
#include "services/database/TrackFeatures.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Release.hpp"
#include "database/TrackArtistLink.hpp"
#include "database/TrackFeatures.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
@@ -17,11 +17,11 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/TrackArtistLink.hpp"
#include "database/TrackArtistLink.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "database/Artist.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -17,11 +17,11 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/TrackBookmark.hpp"
#include "database/TrackBookmark.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -17,13 +17,13 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/TrackFeatures.hpp"
#include "database/TrackFeatures.hpp"
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
#include "Utils.hpp"
@@ -16,18 +16,18 @@
* You should have received a copy of the GNU General Public License
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/TrackList.hpp"
#include "database/TrackList.hpp"
#include <cassert>
#include "utils/ILogger.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "services/database/Track.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "database/Track.hpp"
#include "SqlQuery.hpp"
#include "StringViewTraits.hpp"
#include "IdTypeTraits.hpp"
@@ -17,11 +17,11 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/TransactionChecker.hpp"
#include "database/TransactionChecker.hpp"
#include <cassert>
#include "services/database/Session.hpp"
#include "database/Session.hpp"
#if !defined(NDEBUG)
#define LMS_CHECK_TRANSACTION_ACCESSES 1
@@ -17,7 +17,7 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/Types.hpp"
#include "database/Types.hpp"
#include <set>
@@ -17,12 +17,12 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/
#include "services/database/User.hpp"
#include "database/User.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "database/Artist.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "utils/ILogger.hpp"
#include "IdTypeTraits.hpp"
#include "StringViewTraits.hpp"
@@ -26,7 +26,7 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/Types.hpp"
#include "database/Types.hpp"
namespace Database::Utils
{
@@ -27,13 +27,13 @@
#include <Wt/WDateTime.h>
#include <Wt/Dbo/Dbo.h>
#include "services/database/ArtistId.hpp"
#include "services/database/ClusterId.hpp"
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "services/database/TrackId.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
#include "database/TrackId.hpp"
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ArtistId)
@@ -24,8 +24,8 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/AuthTokenId.hpp"
#include "services/database/Object.hpp"
#include "database/AuthTokenId.hpp"
#include "database/Object.hpp"
namespace Database
{
@@ -19,6 +19,6 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(AuthTokenId)
@@ -28,11 +28,11 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/ClusterId.hpp"
#include "services/database/Object.hpp"
#include "services/database/Release.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/Types.hpp"
#include "database/ClusterId.hpp"
#include "database/Object.hpp"
#include "database/Release.hpp"
#include "database/TrackId.hpp"
#include "database/Types.hpp"
namespace Database {
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ClusterId)
LMS_DECLARE_IDTYPE(ClusterTypeId)
@@ -24,14 +24,14 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/ArtistId.hpp"
#include "services/database/ClusterId.hpp"
#include "services/database/ListenId.hpp"
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/ListenId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/TrackId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -73,8 +73,8 @@ namespace Database
static RangeResults<ReleaseId> getRecentReleases(Session& session, UserId userId, ScrobblingBackend backend, const std::vector<ClusterId>& clusterIds, std::optional<Range> range = std::nullopt);
static RangeResults<TrackId> getRecentTracks(Session& session, UserId userId, ScrobblingBackend backend, const std::vector<ClusterId>& clusterIds, std::optional<Range> range = std::nullopt);
static std::size_t getCount(Session& session, UserId userId, ScrobblingBackend backend, TrackId trackId);
static std::size_t getCount(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId trackId);
static std::size_t getCount(Session& session, UserId userId, TrackId trackId); // for the current backend
static std::size_t getCount(Session& session, UserId userId, ReleaseId trackId); // for the current backend
static pointer getMostRecentListen(Session& session, UserId userId, ScrobblingBackend backend, ReleaseId releaseId);
static pointer getMostRecentListen(Session& session, UserId userId, ScrobblingBackend backend, TrackId releaseId);
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ListenId)
@@ -21,8 +21,8 @@
#include <Wt/WSignal.h>
#include <Wt/Dbo/ptr.h>
#include "services/database/IdType.hpp"
#include "services/database/TransactionChecker.hpp"
#include "database/IdType.hpp"
#include "database/TransactionChecker.hpp"
namespace Database
{
@@ -26,12 +26,12 @@
#include <Wt/WDateTime.h>
#include <Wt/Dbo/Dbo.h>
#include "services/database/ArtistId.hpp"
#include "services/database/ClusterId.hpp"
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(ReleaseId)
@@ -27,8 +27,8 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WTime.h>
#include "services/database/IdType.hpp"
#include "services/database/Object.hpp"
#include "database/IdType.hpp"
#include "database/Object.hpp"
LMS_DECLARE_IDTYPE(ScanSettingsId)
@@ -23,8 +23,8 @@
#include <Wt/Dbo/SqlConnectionPool.h>
#include "utils/RecursiveSharedMutex.hpp"
#include "services/database/Object.hpp"
#include "services/database/TransactionChecker.hpp"
#include "database/Object.hpp"
#include "database/TransactionChecker.hpp"
namespace Database
{
@@ -22,11 +22,11 @@
#include <Wt/WDateTime.h>
#include <Wt/Dbo/Dbo.h>
#include "services/database/ArtistId.hpp"
#include "services/database/Object.hpp"
#include "services/database/StarredArtistId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/ArtistId.hpp"
#include "database/Object.hpp"
#include "database/StarredArtistId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredArtistId)
@@ -22,11 +22,11 @@
#include <Wt/WDateTime.h>
#include <Wt/Dbo/Dbo.h>
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/StarredReleaseId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/StarredReleaseId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredReleaseId)
@@ -22,11 +22,11 @@
#include <Wt/WDateTime.h>
#include <Wt/Dbo/Dbo.h>
#include "services/database/TrackId.hpp"
#include "services/database/Object.hpp"
#include "services/database/StarredTrackId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/TrackId.hpp"
#include "database/Object.hpp"
#include "database/StarredTrackId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
#include "utils/EnumSet.hpp"
namespace Database
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(StarredTrackId)
@@ -35,14 +35,14 @@
#include "utils/EnumSet.hpp"
#include "utils/UUID.hpp"
#include "services/database/ArtistId.hpp"
#include "services/database/ClusterId.hpp"
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/TrackListId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/ArtistId.hpp"
#include "database/ClusterId.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/TrackId.hpp"
#include "database/TrackListId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
namespace Database {
@@ -25,12 +25,12 @@
#include <Wt/Dbo/Dbo.h>
#include "services/database/ArtistId.hpp"
#include "services/database/IdType.hpp"
#include "services/database/Object.hpp"
#include "services/database/ReleaseId.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/Types.hpp"
#include "database/ArtistId.hpp"
#include "database/IdType.hpp"
#include "database/Object.hpp"
#include "database/ReleaseId.hpp"
#include "database/TrackId.hpp"
#include "database/Types.hpp"
#include "utils/EnumSet.hpp"
LMS_DECLARE_IDTYPE(TrackArtistLinkId)
@@ -24,11 +24,11 @@
#include <Wt/Dbo/Dbo.h>
#include "services/database/IdType.hpp"
#include "services/database/Object.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/IdType.hpp"
#include "database/Object.hpp"
#include "database/TrackId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
LMS_DECLARE_IDTYPE(TrackBookmarkId)
@@ -27,10 +27,10 @@
#include <Wt/Dbo/Dbo.h>
#include "services/database/IdType.hpp"
#include "services/database/Object.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/Types.hpp"
#include "database/IdType.hpp"
#include "database/Object.hpp"
#include "database/TrackId.hpp"
#include "database/Types.hpp"
LMS_DECLARE_IDTYPE(TrackFeaturesId)
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(TrackId)
@@ -27,12 +27,12 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/ClusterId.hpp"
#include "services/database/Object.hpp"
#include "services/database/TrackId.hpp"
#include "services/database/TrackListId.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/ClusterId.hpp"
#include "database/Object.hpp"
#include "database/TrackId.hpp"
#include "database/TrackListId.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
namespace Database {
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(TrackListId)
LMS_DECLARE_IDTYPE(TrackListEntryId)
@@ -26,9 +26,9 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/WDateTime.h>
#include "services/database/Object.hpp"
#include "services/database/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/Object.hpp"
#include "database/Types.hpp"
#include "database/UserId.hpp"
#include "utils/UUID.hpp"
namespace Database {
@@ -19,7 +19,7 @@
#pragma once
#include "services/database/IdType.hpp"
#include "database/IdType.hpp"
LMS_DECLARE_IDTYPE(UserId)
@@ -19,21 +19,21 @@
#include "Common.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Db.hpp"
#include "services/database/Listen.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/StarredArtist.hpp"
#include "services/database/StarredRelease.hpp"
#include "services/database/StarredTrack.hpp"
#include "services/database/Track.hpp"
#include "services/database/TrackArtistLink.hpp"
#include "services/database/TrackBookmark.hpp"
#include "services/database/TrackList.hpp"
#include "services/database/Types.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Db.hpp"
#include "database/Listen.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/StarredArtist.hpp"
#include "database/StarredRelease.hpp"
#include "database/StarredTrack.hpp"
#include "database/Track.hpp"
#include "database/TrackArtistLink.hpp"
#include "database/TrackBookmark.hpp"
#include "database/TrackList.hpp"
#include "database/Types.hpp"
#include "database/User.hpp"
TmpDatabase::TmpDatabase()
: _tmpFile{ std::tmpnam(nullptr) }
@@ -24,20 +24,20 @@
#include <gtest/gtest.h>
#include "services/database/Artist.hpp"
#include "services/database/Cluster.hpp"
#include "services/database/Db.hpp"
#include "services/database/Listen.hpp"
#include "services/database/Release.hpp"
#include "services/database/ScanSettings.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "services/database/TrackArtistLink.hpp"
#include "services/database/TrackBookmark.hpp"
#include "services/database/TrackFeatures.hpp"
#include "services/database/TrackList.hpp"
#include "services/database/Types.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Db.hpp"
#include "database/Listen.hpp"
#include "database/Release.hpp"
#include "database/ScanSettings.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "database/TrackArtistLink.hpp"
#include "database/TrackBookmark.hpp"
#include "database/TrackFeatures.hpp"
#include "database/TrackList.hpp"
#include "database/Types.hpp"
#include "database/User.hpp"
template <typename T>
class ScopedEntity
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
#include "services/database/Listen.hpp"
#include "database/Listen.hpp"
using namespace Database;
@@ -881,7 +881,7 @@ TEST_F(DatabaseFixture, Listen_getCount_track)
{
auto transaction{ session.createReadTransaction() };
const std::size_t count{ Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, track.getId()) };
const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
EXPECT_EQ(count, 0);
}
@@ -891,9 +891,20 @@ TEST_F(DatabaseFixture, Listen_getCount_track)
{
auto transaction{ session.createReadTransaction() };
const std::size_t count{ Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, track.getId()) };
const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
EXPECT_EQ(count, 1);
}
{
auto transaction{ session.createWriteTransaction() };
user.get().modify()->setScrobblingBackend(ScrobblingBackend::ListenBrainz);
}
{
auto transaction{ session.createReadTransaction() };
const std::size_t count{ Listen::getCount(session, user->getId(), track.getId()) };
EXPECT_EQ(count, 0);
}
}
TEST_F(DatabaseFixture, Listen_getCount_release)
@@ -906,7 +917,7 @@ TEST_F(DatabaseFixture, Listen_getCount_release)
auto getReleaseListenCount{ [&]
{
auto transaction{ session.createReadTransaction() };
return Listen::getCount(session, user->getId(), ScrobblingBackend::Internal, release.getId());
return Listen::getCount(session, user->getId(), release.getId());
} };
EXPECT_EQ(getReleaseListenCount(), 0);
@@ -936,6 +947,12 @@ TEST_F(DatabaseFixture, Listen_getCount_release)
ScopedListen listen4{ session, user.lockAndGet(), track1.lockAndGet(), ScrobblingBackend::Internal, dateTime1 };
EXPECT_EQ(getReleaseListenCount(), 2);
{
auto transaction{ session.createWriteTransaction() };
user.get().modify()->setScrobblingBackend(ScrobblingBackend::ListenBrainz);
}
EXPECT_EQ(getReleaseListenCount(), 0);
}
TEST_F(DatabaseFixture, Listen_getMostRecentTrack)
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
#include "services/database/StarredArtist.hpp"
#include "database/StarredArtist.hpp"
using namespace Database;
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
#include "services/database/StarredRelease.hpp"
#include "database/StarredRelease.hpp"
using namespace Database;
@@ -18,7 +18,7 @@
*/
#include "Common.hpp"
#include "services/database/StarredTrack.hpp"
#include "database/StarredTrack.hpp"
using namespace Database;
@@ -19,7 +19,7 @@
#include "Common.hpp"
#include "services/database/TrackBookmark.hpp"
#include "database/TrackBookmark.hpp"
using ScopedTrackBookmark = ScopedEntity<Database::TrackBookmark>;
@@ -19,7 +19,7 @@
#include "Common.hpp"
#include "services/database/TrackFeatures.hpp"
#include "database/TrackFeatures.hpp"
using ScopedTrackFeatures = ScopedEntity<Database::TrackFeatures>;
-1
View File
@@ -1,6 +1,5 @@
add_subdirectory(auth)
add_subdirectory(cover)
add_subdirectory(database)
add_subdirectory(feedback)
add_subdirectory(recommendation)
add_subdirectory(scanner)
@@ -19,9 +19,9 @@
#include "AuthServiceBase.hpp"
#include "services/database/Db.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/ILogger.hpp"
namespace Auth
@@ -20,7 +20,7 @@
#pragma once
#include <string_view>
#include "services/database/UserId.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -24,9 +24,9 @@
#include <Wt/WRandom.h>
#include "services/auth/Types.hpp"
#include "services/database/AuthToken.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/AuthToken.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
@@ -28,8 +28,8 @@
#endif // LMS_SUPPORT_PAM
#include "services/auth/Types.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
@@ -22,8 +22,8 @@
#include "services/auth/IAuthTokenService.hpp"
#include "services/auth/Types.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
#include "utils/Exception.hpp"
#include "utils/ILogger.hpp"
@@ -22,7 +22,7 @@
#include <Wt/Auth/HashFunction.h>
#include <Wt/Auth/PasswordStrengthValidator.h>
#include "services/database/User.hpp"
#include "database/User.hpp"
#include "PasswordServiceBase.hpp"
#include "LoginThrottler.hpp"
@@ -27,7 +27,7 @@
#include <security/pam_appl.h>
#include "services/auth/Types.hpp"
#include "services/database/Session.hpp"
#include "database/Session.hpp"
#include "utils/ILogger.hpp"
namespace Auth
@@ -27,7 +27,7 @@
#include <boost/asio/ip/address.hpp>
#include <Wt/WDateTime.h>
#include "services/database/UserId.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -22,7 +22,7 @@
#include <optional>
#include <string>
#include "services/database/UserId.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -27,7 +27,7 @@
#include <Wt/Dbo/ptr.h>
#include "services/auth/Types.hpp"
#include "services/database/UserId.hpp"
#include "database/UserId.hpp"
namespace Database
{
@@ -20,7 +20,7 @@
#pragma once
#include <string>
#include "services/database/Types.hpp"
#include "database/Types.hpp"
#include "utils/Exception.hpp"
namespace Auth
@@ -21,10 +21,10 @@
#include "av/IAudioFile.hpp"
#include "services/database/Db.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
#include "database/Db.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/Track.hpp"
#include "image/Exception.hpp"
#include "image/IRawImage.hpp"
@@ -31,7 +31,7 @@
#include "services/cover/ICoverService.hpp"
#include "image/IEncodedImage.hpp"
#include "services/database/Types.hpp"
#include "database/Types.hpp"
namespace Database
{
@@ -22,8 +22,8 @@
#include <filesystem>
#include <memory>
#include "services/database/ReleaseId.hpp"
#include "services/database/TrackId.hpp"
#include "database/ReleaseId.hpp"
#include "database/TrackId.hpp"
#include "image/IEncodedImage.hpp"
namespace Database
@@ -20,15 +20,15 @@
#include "FeedbackService.hpp"
#include "FeedbackService.impl.hpp"
#include "services/database/Artist.hpp"
#include "services/database/Db.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/StarredArtist.hpp"
#include "services/database/StarredRelease.hpp"
#include "services/database/StarredTrack.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Artist.hpp"
#include "database/Db.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
#include "database/StarredArtist.hpp"
#include "database/StarredRelease.hpp"
#include "database/StarredTrack.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "utils/ILogger.hpp"
#include "internal/InternalBackend.hpp"
@@ -19,9 +19,9 @@
#pragma once
#include "services/database/Db.hpp"
#include "services/database/Session.hpp"
#include "services/database/User.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "database/User.hpp"
namespace Feedback
{
@@ -19,9 +19,9 @@
#pragma once
#include "services/database/StarredArtistId.hpp"
#include "services/database/StarredReleaseId.hpp"
#include "services/database/StarredTrackId.hpp"
#include "database/StarredArtistId.hpp"
#include "database/StarredReleaseId.hpp"
#include "database/StarredTrackId.hpp"
namespace Feedback
{
@@ -19,11 +19,11 @@
#include "InternalBackend.hpp"
#include "services/database/Db.hpp"
#include "services/database/Session.hpp"
#include "services/database/StarredArtist.hpp"
#include "services/database/StarredRelease.hpp"
#include "services/database/StarredTrack.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "database/StarredArtist.hpp"
#include "database/StarredRelease.hpp"
#include "database/StarredTrack.hpp"
namespace Feedback
{
@@ -25,11 +25,11 @@
#include <Wt/Json/Value.h>
#include <Wt/Json/Serializer.h>
#include "services/database/Db.hpp"
#include "services/database/Session.hpp"
#include "services/database/StarredTrack.hpp"
#include "services/database/Track.hpp"
#include "services/database/User.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "database/StarredTrack.hpp"
#include "database/Track.hpp"
#include "database/User.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
#include "utils/Service.hpp"
@@ -25,9 +25,9 @@
#include <boost/asio/io_context_strand.hpp>
#include <boost/asio/steady_timer.hpp>
#include "services/database/Types.hpp"
#include "services/database/StarredTrackId.hpp"
#include "services/database/UserId.hpp"
#include "database/Types.hpp"
#include "database/StarredTrackId.hpp"
#include "database/UserId.hpp"
#include "FeedbackTypes.hpp"
@@ -19,11 +19,11 @@
#include "ListenBrainzBackend.hpp"
#include "services/database/Db.hpp"
#include "services/database/Session.hpp"
#include "services/database/StarredArtist.hpp"
#include "services/database/StarredRelease.hpp"
#include "services/database/Track.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "database/StarredArtist.hpp"
#include "database/StarredRelease.hpp"
#include "database/Track.hpp"
#include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp"
#include "utils/ILogger.hpp"

Some files were not shown because too many files have changed in this diff Show More