Migrated recommendation stuff
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
#include "database/TrackArtistLink.hpp"
|
||||
#include "database/TrackFeatures.hpp"
|
||||
#include "metadata/TagLibParser.hpp"
|
||||
#include "recommendation/IEngine.hpp"
|
||||
#include "services/recommendation/IRecommendationService.hpp"
|
||||
#include "utils/Exception.hpp"
|
||||
#include "utils/Logger.hpp"
|
||||
#include "utils/Path.hpp"
|
||||
@@ -249,13 +249,13 @@ getOrCreateClusters(Session& session, const MetaData::Clusters& clustersNames)
|
||||
namespace Scanner {
|
||||
|
||||
std::unique_ptr<IScanner>
|
||||
createScanner(Database::Db& db, Recommendation::IEngine& recommendationEngine)
|
||||
createScanner(Database::Db& db, Recommendation::IRecommendationService& recommendationService)
|
||||
{
|
||||
return std::make_unique<Scanner>(db, recommendationEngine);
|
||||
return std::make_unique<Scanner>(db, recommendationService);
|
||||
}
|
||||
|
||||
Scanner::Scanner(Database::Db& db, Recommendation::IEngine& recommendationEngine)
|
||||
: _recommendationEngine {recommendationEngine}
|
||||
Scanner::Scanner(Database::Db& db, Recommendation::IRecommendationService& recommendationService)
|
||||
: _recommendationService {recommendationService}
|
||||
, _dbSession {db}
|
||||
{
|
||||
// For now, always use TagLib
|
||||
@@ -284,8 +284,8 @@ Scanner::start()
|
||||
if (_abortScan)
|
||||
return;
|
||||
|
||||
_recommendationEngine.load(false,
|
||||
[](const Recommendation::IEngine::Progress& progress)
|
||||
_recommendationService.load(false,
|
||||
[](const Recommendation::Progress& progress)
|
||||
{
|
||||
LMS_LOG(DBUPDATER, DEBUG) << "Reloading recommendation : " << progress.processedElems << "/" << progress.totalElems;
|
||||
});
|
||||
@@ -302,7 +302,7 @@ Scanner::stop()
|
||||
|
||||
_abortScan = true;
|
||||
_scheduleTimer.cancel();
|
||||
_recommendationEngine.cancelLoad();
|
||||
_recommendationService.cancelLoad();
|
||||
_ioService.stop();
|
||||
}
|
||||
|
||||
@@ -316,7 +316,7 @@ Scanner::abortScan()
|
||||
|
||||
_abortScan = true;
|
||||
_scheduleTimer.cancel();
|
||||
_recommendationEngine.cancelLoad();
|
||||
_recommendationService.cancelLoad();
|
||||
_ioService.stop();
|
||||
LMS_LOG(DBUPDATER, DEBUG) << "Scan abort done!";
|
||||
|
||||
@@ -571,7 +571,7 @@ Scanner::fetchTrackFeatures(Database::TrackId trackId, const UUID& recordingMBID
|
||||
void
|
||||
Scanner::fetchTrackFeatures(ScanStats& stats)
|
||||
{
|
||||
if (_recommendationEngineType != ScanSettings::RecommendationEngineType::Features)
|
||||
if (_recommendationServiceType != ScanSettings::RecommendationEngineType::Features)
|
||||
return;
|
||||
|
||||
ScanStepStats stepStats{stats.startTime, ScanProgressStep::FetchingTrackFeatures};
|
||||
@@ -638,7 +638,7 @@ Scanner::refreshScanSettings()
|
||||
[](const std::filesystem::path& extension) { return std::filesystem::path{ StringUtils::stringToLower(extension.string()) }; });
|
||||
}
|
||||
_mediaDirectory = scanSettings->getMediaDirectory();
|
||||
_recommendationEngineType = scanSettings->getRecommendationEngineType();
|
||||
_recommendationServiceType = scanSettings->getRecommendationEngineType();
|
||||
|
||||
const auto clusterTypes = scanSettings->getClusterTypes();
|
||||
std::set<std::string> clusterTypeNames;
|
||||
@@ -1037,7 +1037,7 @@ Scanner::reloadSimilarityEngine(ScanStats& stats)
|
||||
{
|
||||
ScanStepStats stepStats {stats.startTime, ScanProgressStep::ReloadingSimilarityEngine};
|
||||
|
||||
auto progressCallback {[&](const Recommendation::IEngine::Progress& progress)
|
||||
auto progressCallback {[&](const Recommendation::Progress& progress)
|
||||
{
|
||||
stepStats.totalElems = progress.totalElems;
|
||||
stepStats.processedElems = progress.processedElems;
|
||||
@@ -1045,7 +1045,7 @@ Scanner::reloadSimilarityEngine(ScanStats& stats)
|
||||
}};
|
||||
|
||||
notifyInProgress(stepStats);
|
||||
_recommendationEngine.load(stats.nbChanges() > 0, progressCallback);
|
||||
_recommendationService.load(stats.nbChanges() > 0, progressCallback);
|
||||
notifyInProgress(stepStats);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class UUID;
|
||||
|
||||
namespace Recommendation
|
||||
{
|
||||
class IEngine;
|
||||
class IRecommendationService;
|
||||
}
|
||||
|
||||
namespace Scanner {
|
||||
@@ -49,7 +49,7 @@ namespace Scanner {
|
||||
class Scanner : public IScanner
|
||||
{
|
||||
public:
|
||||
Scanner(Database::Db& db, Recommendation::IEngine& recommendationEngine);
|
||||
Scanner(Database::Db& db, Recommendation::IRecommendationService& recommendationService);
|
||||
~Scanner();
|
||||
|
||||
Scanner(const Scanner&) = delete;
|
||||
@@ -92,7 +92,7 @@ class Scanner : public IScanner
|
||||
void notifyInProgress(const ScanStepStats& stats);
|
||||
void reloadSimilarityEngine(ScanStats& stats);
|
||||
|
||||
Recommendation::IEngine& _recommendationEngine;
|
||||
Recommendation::IRecommendationService& _recommendationService;
|
||||
|
||||
std::mutex _controlMutex;
|
||||
std::atomic<bool> _abortScan {};
|
||||
@@ -115,7 +115,7 @@ class Scanner : public IScanner
|
||||
Database::ScanSettings::UpdatePeriod _updatePeriod {Database::ScanSettings::UpdatePeriod::Never};
|
||||
std::unordered_set<std::filesystem::path> _fileExtensions;
|
||||
std::filesystem::path _mediaDirectory;
|
||||
Database::ScanSettings::RecommendationEngineType _recommendationEngineType;
|
||||
Database::ScanSettings::RecommendationEngineType _recommendationServiceType;
|
||||
};
|
||||
|
||||
} // Scanner
|
||||
|
||||
Reference in New Issue
Block a user