Migrated scrobbling stuff

This commit is contained in:
emeric
2021-10-18 20:39:47 +02:00
parent fe298e10d9
commit a0489b2d94
106 changed files with 54 additions and 57 deletions
-8
View File
@@ -1,15 +1,7 @@
add_subdirectory(auth)
add_subdirectory(av) add_subdirectory(av)
add_subdirectory(database)
add_subdirectory(image) add_subdirectory(image)
add_subdirectory(metadata) add_subdirectory(metadata)
add_subdirectory(recommendation)
add_subdirectory(scanner)
add_subdirectory(scrobbling)
add_subdirectory(services) add_subdirectory(services)
add_subdirectory(som) add_subdirectory(som)
add_subdirectory(subsonic) add_subdirectory(subsonic)
add_subdirectory(utils) add_subdirectory(utils)
+5
View File
@@ -1 +1,6 @@
add_subdirectory(auth)
add_subdirectory(cover) add_subdirectory(cover)
add_subdirectory(database)
add_subdirectory(recommendation)
add_subdirectory(scanner)
add_subdirectory(scrobbling)
@@ -4,7 +4,7 @@ add_library(lmsscrobbling SHARED
impl/listenbrainz/ListenBrainzScrobbler.cpp impl/listenbrainz/ListenBrainzScrobbler.cpp
impl/listenbrainz/ListensSynchronizer.cpp impl/listenbrainz/ListensSynchronizer.cpp
impl/listenbrainz/Utils.cpp impl/listenbrainz/Utils.cpp
impl/Scrobbling.cpp impl/ScrobblingService.cpp
) )
target_include_directories(lmsscrobbling INTERFACE target_include_directories(lmsscrobbling INTERFACE
@@ -25,7 +25,7 @@
#include <Wt/WDateTime.h> #include <Wt/WDateTime.h>
#include "scrobbling/Listen.hpp" #include "services/scrobbling/Listen.hpp"
namespace Database namespace Database
{ {
@@ -17,7 +17,7 @@
* along with LMS. If not, see <http://www.gnu.org/licenses/>. * along with LMS. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "Scrobbling.hpp" #include "ScrobblingService.hpp"
#include "database/Artist.hpp" #include "database/Artist.hpp"
#include "database/Db.hpp" #include "database/Db.hpp"
@@ -34,13 +34,13 @@ namespace Scrobbling
{ {
using namespace Database; using namespace Database;
std::unique_ptr<IScrobbling> std::unique_ptr<IScrobblingService>
createScrobbling(boost::asio::io_context& ioContext, Db& db) createScrobblingService(boost::asio::io_context& ioContext, Db& db)
{ {
return std::make_unique<Scrobbling>(ioContext, db); return std::make_unique<ScrobblingService>(ioContext, db);
} }
Scrobbling::Scrobbling(boost::asio::io_context& ioContext, Db& db) ScrobblingService::ScrobblingService(boost::asio::io_context& ioContext, Db& db)
: _db {db} : _db {db}
{ {
_scrobblers.emplace(Database::Scrobbler::Internal, std::make_unique<InternalScrobbler>(_db)); _scrobblers.emplace(Database::Scrobbler::Internal, std::make_unique<InternalScrobbler>(_db));
@@ -48,28 +48,28 @@ namespace Scrobbling
} }
void void
Scrobbling::listenStarted(const Listen& listen) ScrobblingService::listenStarted(const Listen& listen)
{ {
if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)}) if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)})
_scrobblers[*scrobbler]->listenStarted(listen); _scrobblers[*scrobbler]->listenStarted(listen);
} }
void void
Scrobbling::listenFinished(const Listen& listen, std::optional<std::chrono::seconds> duration) ScrobblingService::listenFinished(const Listen& listen, std::optional<std::chrono::seconds> duration)
{ {
if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)}) if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)})
_scrobblers[*scrobbler]->listenFinished(listen, duration); _scrobblers[*scrobbler]->listenFinished(listen, duration);
} }
void void
Scrobbling::addTimedListen(const TimedListen& listen) ScrobblingService::addTimedListen(const TimedListen& listen)
{ {
if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)}) if (std::optional<Database::Scrobbler> scrobbler {getUserScrobbler(listen.userId)})
_scrobblers[*scrobbler]->addTimedListen(listen); _scrobblers[*scrobbler]->addTimedListen(listen);
} }
std::optional<Database::Scrobbler> std::optional<Database::Scrobbler>
Scrobbling::getUserScrobbler(Database::UserId userId) ScrobblingService::getUserScrobbler(Database::UserId userId)
{ {
std::optional<Database::Scrobbler> scrobbler; std::optional<Database::Scrobbler> scrobbler;
@@ -81,8 +81,8 @@ namespace Scrobbling
return scrobbler; return scrobbler;
} }
Scrobbling::ArtistContainer ScrobblingService::ArtistContainer
Scrobbling::getRecentArtists(UserId userId, ScrobblingService::getRecentArtists(UserId userId,
const std::vector<ClusterId>& clusterIds, const std::vector<ClusterId>& clusterIds,
std::optional<TrackArtistLinkType> linkType, std::optional<TrackArtistLinkType> linkType,
std::optional<Range> range, std::optional<Range> range,
@@ -107,8 +107,8 @@ namespace Scrobbling
return res; return res;
} }
Scrobbling::ReleaseContainer ScrobblingService::ReleaseContainer
Scrobbling::getRecentReleases(Database::UserId userId, ScrobblingService::getRecentReleases(Database::UserId userId,
const std::vector<Database::ClusterId>& clusterIds, const std::vector<Database::ClusterId>& clusterIds,
std::optional<Database::Range> range, std::optional<Database::Range> range,
bool& moreResults) bool& moreResults)
@@ -132,8 +132,8 @@ namespace Scrobbling
return res; return res;
} }
Scrobbling::TrackContainer ScrobblingService::TrackContainer
Scrobbling::getRecentTracks(Database::UserId userId, ScrobblingService::getRecentTracks(Database::UserId userId,
const std::vector<Database::ClusterId>& clusterIds, const std::vector<Database::ClusterId>& clusterIds,
std::optional<Database::Range> range, std::optional<Database::Range> range,
bool& moreResults) bool& moreResults)
@@ -159,8 +159,8 @@ namespace Scrobbling
// Top // Top
Scrobbling::ArtistContainer ScrobblingService::ArtistContainer
Scrobbling::getTopArtists(UserId userId, ScrobblingService::getTopArtists(UserId userId,
const std::vector<Database::ClusterId>& clusterIds, const std::vector<Database::ClusterId>& clusterIds,
std::optional<Database::TrackArtistLinkType> linkType, std::optional<Database::TrackArtistLinkType> linkType,
std::optional<Database::Range> range, std::optional<Database::Range> range,
@@ -185,8 +185,8 @@ namespace Scrobbling
return res; return res;
} }
Scrobbling::ReleaseContainer ScrobblingService::ReleaseContainer
Scrobbling::getTopReleases(Database::UserId userId, ScrobblingService::getTopReleases(Database::UserId userId,
const std::vector<Database::ClusterId>& clusterIds, const std::vector<Database::ClusterId>& clusterIds,
std::optional<Database::Range> range, std::optional<Database::Range> range,
bool& moreResults) bool& moreResults)
@@ -210,8 +210,8 @@ namespace Scrobbling
return res; return res;
} }
Scrobbling::TrackContainer ScrobblingService::TrackContainer
Scrobbling::getTopTracks(Database::UserId userId, ScrobblingService::getTopTracks(Database::UserId userId,
const std::vector<Database::ClusterId>& clusterIds, const std::vector<Database::ClusterId>& clusterIds,
std::optional<Database::Range> range, std::optional<Database::Range> range,
bool& moreResults) bool& moreResults)
@@ -235,7 +235,7 @@ namespace Scrobbling
} }
Database::ObjectPtr<Database::TrackList> Database::ObjectPtr<Database::TrackList>
Scrobbling::getListensTrackList(Session& session, Database::ObjectPtr<Database::User> user) ScrobblingService::getListensTrackList(Session& session, Database::ObjectPtr<Database::User> user)
{ {
return _scrobblers[user->getScrobbler()]->getListensTrackList(session, user); return _scrobblers[user->getScrobbler()]->getListensTrackList(session, user);
} }
@@ -23,15 +23,15 @@
#include <optional> #include <optional>
#include <unordered_map> #include <unordered_map>
#include "scrobbling/IScrobbling.hpp" #include "services/scrobbling/IScrobblingService.hpp"
#include "IScrobbler.hpp" #include "IScrobbler.hpp"
namespace Scrobbling namespace Scrobbling
{ {
class Scrobbling : public IScrobbling class ScrobblingService : public IScrobblingService
{ {
public: public:
Scrobbling(boost::asio::io_context& ioContext, Database::Db& db); ScrobblingService(boost::asio::io_context& ioContext, Database::Db& db);
private: private:
void listenStarted(const Listen& listen) override; void listenStarted(const Listen& listen) override;
@@ -32,7 +32,7 @@
#include "database/Track.hpp" #include "database/Track.hpp"
#include "database/TrackList.hpp" #include "database/TrackList.hpp"
#include "database/User.hpp" #include "database/User.hpp"
#include "scrobbling/Exception.hpp" #include "services/scrobbling/Exception.hpp"
#include "utils/IConfig.hpp" #include "utils/IConfig.hpp"
#include "utils/http/IClient.hpp" #include "utils/http/IClient.hpp"
#include "utils/Logger.hpp" #include "utils/Logger.hpp"
@@ -27,7 +27,7 @@
#include <Wt/Dbo/Dbo.h> #include <Wt/Dbo/Dbo.h>
#include "database/Types.hpp" #include "database/Types.hpp"
#include "scrobbling/Listen.hpp" #include "services/scrobbling/Listen.hpp"
namespace Database namespace Database
{ {
@@ -28,7 +28,7 @@
#include <Wt/WDateTime.h> #include <Wt/WDateTime.h>
#include "scrobbling/Listen.hpp" #include "services/scrobbling/Listen.hpp"
#include "database/Types.hpp" #include "database/Types.hpp"
namespace Database namespace Database
@@ -44,10 +44,10 @@ namespace Database
namespace Scrobbling namespace Scrobbling
{ {
class IScrobbling class IScrobblingService
{ {
public: public:
virtual ~IScrobbling() = default; virtual ~IScrobblingService() = default;
// Scrobbling // Scrobbling
virtual void listenStarted(const Listen& listen) = 0; virtual void listenStarted(const Listen& listen) = 0;
@@ -97,7 +97,7 @@ namespace Scrobbling
bool& moreResults) = 0; bool& moreResults) = 0;
}; };
std::unique_ptr<IScrobbling> createScrobbling(boost::asio::io_service& ioService, Database::Db& db); std::unique_ptr<IScrobblingService> createScrobblingService(boost::asio::io_service& ioService, Database::Db& db);
} // ns Scrobbling } // ns Scrobbling

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