[DB] Better reporting database scan results (errors, grouped duplicates)

This commit is contained in:
emeric
2016-02-02 18:25:05 +01:00
parent b9a7707849
commit 5676ef866c
2 changed files with 8 additions and 3 deletions
+6 -1
View File
@@ -247,7 +247,7 @@ Updater::process(boost::system::error_code err)
checkDuplicatedAudioFiles(stats);
LMS_LOG(DBUPDATER, INFO) << "Scan complete. Changes = " << stats.nbChanges() << "(added = " << stats.nbAdded << ", nbRemoved = " << stats.nbRemoved << ", nbModified = " << stats.nbModified << "), Errors = " << stats.nbScanErrors;
LMS_LOG(DBUPDATER, INFO) << "Scan complete. Changes = " << stats.nbChanges() << " (added = " << stats.nbAdded << ", nbRemoved = " << stats.nbRemoved << ", nbModified = " << stats.nbModified << "), Errors = " << stats.nbScanErrors;
// Update database stats
boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
@@ -395,7 +395,10 @@ Updater::processAudioFile( const boost::filesystem::path& file, Stats& stats)
MetaData::Items items;
if (!_metadataParser.parse(file, items))
{
stats.nbScanErrors++;
return;
}
std::vector<unsigned char> checksum ;
computeCrc(file, checksum);
@@ -418,6 +421,7 @@ Updater::processAudioFile( const boost::filesystem::path& file, Stats& stats)
track.remove();
stats.nbRemoved++;
}
stats.nbScanErrors++;
return;
}
if (items.find(MetaData::Type::Duration) == items.end()
@@ -431,6 +435,7 @@ Updater::processAudioFile( const boost::filesystem::path& file, Stats& stats)
track.remove();
stats.nbRemoved++;
}
stats.nbScanErrors++;
return;
}
+2 -2
View File
@@ -90,14 +90,14 @@ Track::getAllPaths(Wt::Dbo::Session& session)
std::vector<Track::pointer>
Track::getMBIDDuplicates(Wt::Dbo::Session& session)
{
Wt::Dbo::collection<pointer> res = session.query<pointer>( "SELECT track FROM track WHERE mbid in (SELECT mbid FROM track WHERE mbid <> '' GROUP BY mbid HAVING COUNT (*) > 1)").orderBy("track.mbid");
Wt::Dbo::collection<pointer> res = session.query<pointer>( "SELECT track FROM track WHERE mbid in (SELECT mbid FROM track WHERE mbid <> '' GROUP BY mbid HAVING COUNT (*) > 1)").orderBy("track.release_id,track.disc_number,track.track_number,track.mbid");
return std::vector<pointer>(res.begin(), res.end());
}
std::vector<Track::pointer>
Track::getChecksumDuplicates(Wt::Dbo::Session& session)
{
Wt::Dbo::collection<pointer> res = session.query<pointer>( "SELECT track FROM track WHERE checksum in (SELECT checksum FROM track WHERE Length(checksum) > 0 GROUP BY checksum HAVING COUNT(*) > 1)").orderBy("track.checksum");
Wt::Dbo::collection<pointer> res = session.query<pointer>( "SELECT track FROM track WHERE checksum in (SELECT checksum FROM track WHERE Length(checksum) > 0 GROUP BY checksum HAVING COUNT(*) > 1)").orderBy("track.release_id,track.disc_number,track.track_number,track.checksum");
return std::vector<pointer>(res.begin(), res.end());
}