Minor cleanup
This commit is contained in:
@@ -453,7 +453,12 @@ Artist::getSimilarArtists(std::optional<std::size_t> offset, std::optional<std::
|
|||||||
" INNER JOIN track t ON t.id = t_a_l.track_id"
|
" INNER JOIN track t ON t.id = t_a_l.track_id"
|
||||||
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id"
|
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id"
|
||||||
" WHERE "
|
" WHERE "
|
||||||
" t_c.cluster_id IN (SELECT c.id from cluster c INNER JOIN track t ON c.id = t_c.cluster_id INNER JOIN track_cluster t_c ON t_c.track_id = t.id INNER JOIN artist a ON a.id = t_a_l.artist_id INNER JOIN track_artist_link t_a_l ON t_a_l.track_id = t.id WHERE a.id = ?)"
|
" t_c.cluster_id IN (SELECT c.id from cluster c"
|
||||||
|
" INNER JOIN track t ON c.id = t_c.cluster_id"
|
||||||
|
" INNER JOIN track_cluster t_c ON t_c.track_id = t.id"
|
||||||
|
" INNER JOIN artist a ON a.id = t_a_l.artist_id"
|
||||||
|
" INNER JOIN track_artist_link t_a_l ON t_a_l.track_id = t.id"
|
||||||
|
" WHERE a.id = ?)"
|
||||||
" AND a.id <> ?"
|
" AND a.id <> ?"
|
||||||
)
|
)
|
||||||
.bind(self()->id())
|
.bind(self()->id())
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
|
|
||||||
static
|
static
|
||||||
void
|
void
|
||||||
dumpRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
dumpTracksRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
||||||
{
|
{
|
||||||
const std::vector<Database::IdType> trackIds {[&]()
|
const std::vector<Database::IdType> trackIds {[&]()
|
||||||
{
|
{
|
||||||
@@ -69,7 +69,12 @@ dumpRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
|||||||
for (Database::IdType similarTrackId : engine.getSimilarTracks(session, {trackId}, 3))
|
for (Database::IdType similarTrackId : engine.getSimilarTracks(session, {trackId}, 3))
|
||||||
std::cout << "\t- Similar track '" << trackToString(similarTrackId) << std::endl;
|
std::cout << "\t- Similar track '" << trackToString(similarTrackId) << std::endl;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void
|
||||||
|
dumpReleasesRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
||||||
|
{
|
||||||
const std::vector<Database::IdType> releaseIds = std::invoke([&]()
|
const std::vector<Database::IdType> releaseIds = std::invoke([&]()
|
||||||
{
|
{
|
||||||
auto transaction {session.createSharedTransaction()};
|
auto transaction {session.createSharedTransaction()};
|
||||||
@@ -91,7 +96,12 @@ dumpRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
|||||||
for (Database::IdType similarReleaseId : engine.getSimilarReleases(session, releaseId, 3))
|
for (Database::IdType similarReleaseId : engine.getSimilarReleases(session, releaseId, 3))
|
||||||
std::cout << "\t- Similar release '" << releaseToString(similarReleaseId) << "'" << std::endl;
|
std::cout << "\t- Similar release '" << releaseToString(similarReleaseId) << "'" << std::endl;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
void
|
||||||
|
dumpArtistsRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
||||||
|
{
|
||||||
const std::vector<Database::IdType> artistIds = std::invoke([&]()
|
const std::vector<Database::IdType> artistIds = std::invoke([&]()
|
||||||
{
|
{
|
||||||
auto transaction {session.createSharedTransaction()};
|
auto transaction {session.createSharedTransaction()};
|
||||||
@@ -113,10 +123,6 @@ dumpRecommendation(Database::Session session, Recommendation::IEngine& engine)
|
|||||||
for (Database::IdType similarArtistId : engine.getSimilarArtists(session, artistId, 3))
|
for (Database::IdType similarArtistId : engine.getSimilarArtists(session, artistId, 3))
|
||||||
std::cout << "\t- Similar artist '" << artistToString(similarArtistId) << "'" << std::endl;
|
std::cout << "\t- Similar artist '" << artistToString(similarArtistId) << "'" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -153,7 +159,9 @@ int main(int argc, char *argv[])
|
|||||||
sem.wait();
|
sem.wait();
|
||||||
std::cout << "Recommendation engine loaded!" << std::endl;
|
std::cout << "Recommendation engine loaded!" << std::endl;
|
||||||
|
|
||||||
dumpRecommendation(db, *engine);
|
dumpTracksRecommendation(db, *engine);
|
||||||
|
dumpReleasesRecommendation(db, *engine);
|
||||||
|
dumpArtistsRecommendation(db, *engine);
|
||||||
|
|
||||||
engine->stop();
|
engine->stop();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user