Added MBID in the scanner's report list to make duplicate spotting easier. fixes #103
This commit is contained in:
@@ -1012,7 +1012,7 @@ MediaScanner::checkDuplicatedAudioFiles(ScanStats& stats)
|
|||||||
if (track->getMBID())
|
if (track->getMBID())
|
||||||
{
|
{
|
||||||
LMS_LOG(DBUPDATER, INFO) << "Found duplicated MBID [" << track->getMBID()->getAsString() << "], file: " << track->getPath().string() << " - " << track->getName();
|
LMS_LOG(DBUPDATER, INFO) << "Found duplicated MBID [" << track->getMBID()->getAsString() << "], file: " << track->getPath().string() << " - " << track->getName();
|
||||||
stats.duplicates.emplace_back(ScanDuplicate {track->getPath(), DuplicateReason::SameMBID});
|
stats.duplicates.emplace_back(ScanDuplicate {track.id(), DuplicateReason::SameMBID});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "database/Types.hpp"
|
||||||
|
|
||||||
namespace Scanner {
|
namespace Scanner {
|
||||||
|
|
||||||
enum class ScanErrorType
|
enum class ScanErrorType
|
||||||
@@ -51,9 +53,8 @@ namespace Scanner {
|
|||||||
|
|
||||||
struct ScanDuplicate
|
struct ScanDuplicate
|
||||||
{
|
{
|
||||||
std::filesystem::path file;
|
Database::IdType trackId;
|
||||||
DuplicateReason reason;
|
DuplicateReason reason;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class ScanProgressStep : unsigned
|
enum class ScanProgressStep : unsigned
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include <Wt/WResource.h>
|
#include <Wt/WResource.h>
|
||||||
#include <Wt/WSplitButton.h>
|
#include <Wt/WSplitButton.h>
|
||||||
|
|
||||||
|
#include "database/Session.hpp"
|
||||||
|
#include "database/Track.hpp"
|
||||||
#include "utils/Service.hpp"
|
#include "utils/Service.hpp"
|
||||||
#include "LmsApplication.hpp"
|
#include "LmsApplication.hpp"
|
||||||
|
|
||||||
@@ -82,8 +84,22 @@ class ReportResource : public Wt::WResource
|
|||||||
|
|
||||||
response.out() << Wt::WString::tr("Lms.Admin.ScannerController.duplicates-header").arg(_stats.duplicates.size()).toUTF8() << std::endl;
|
response.out() << Wt::WString::tr("Lms.Admin.ScannerController.duplicates-header").arg(_stats.duplicates.size()).toUTF8() << std::endl;
|
||||||
|
|
||||||
for (const auto& duplicate : _stats.duplicates)
|
{
|
||||||
response.out() << duplicate.file.string() << " - " << duplicateReasonToWString(duplicate.reason).toUTF8() << std::endl;
|
auto transaction {LmsApp->getDbSession().createSharedTransaction()};
|
||||||
|
|
||||||
|
for (const auto& duplicate : _stats.duplicates)
|
||||||
|
{
|
||||||
|
const auto& track {Database::Track::getById(LmsApp->getDbSession(), duplicate.trackId)};
|
||||||
|
if (!track)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
response.out() << track->getPath().string();
|
||||||
|
if (auto mbid {track->getMBID()})
|
||||||
|
response.out() << " (MBID " << mbid->getAsString() << ")";
|
||||||
|
|
||||||
|
response.out() << " - " << duplicateReasonToWString(duplicate.reason).toUTF8() << '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user