Distinguish initial scan to import last time write as added time, ref #601
This commit is contained in:
@@ -29,6 +29,7 @@ namespace lms::scanner
|
||||
{
|
||||
db::MediaLibraryId id;
|
||||
std::filesystem::path rootDirectory;
|
||||
bool firstScan{};
|
||||
|
||||
auto operator<=>(const MediaLibraryInfo& other) const = default;
|
||||
};
|
||||
|
||||
@@ -395,7 +395,12 @@ namespace lms::scanner
|
||||
newSettings.updatePeriod = scanSettings->getUpdatePeriod();
|
||||
|
||||
MediaLibrary::find(_db.getTLSSession(), [&](const MediaLibrary::pointer& mediaLibrary) {
|
||||
newSettings.mediaLibraries.push_back(MediaLibraryInfo{ .id = mediaLibrary->getId(), .rootDirectory = mediaLibrary->getPath().lexically_normal() });
|
||||
MediaLibraryInfo info;
|
||||
info.firstScan = mediaLibrary->isEmpty();
|
||||
info.id = mediaLibrary->getId();
|
||||
info.rootDirectory = mediaLibrary->getPath().lexically_normal();
|
||||
|
||||
newSettings.mediaLibraries.push_back(info);
|
||||
});
|
||||
|
||||
{
|
||||
|
||||
@@ -479,19 +479,14 @@ namespace lms::scanner
|
||||
if (!track)
|
||||
{
|
||||
track = dbSession.create<db::Track>();
|
||||
track.modify()->setAbsoluteFilePath(_file);
|
||||
|
||||
const core::PartialDateTime addedTime{
|
||||
fileInfo->lastWriteTime.date().year(),
|
||||
static_cast<unsigned>(fileInfo->lastWriteTime.date().month()),
|
||||
static_cast<unsigned>(fileInfo->lastWriteTime.date().day()),
|
||||
static_cast<unsigned>(fileInfo->lastWriteTime.time().hour()),
|
||||
static_cast<unsigned>(fileInfo->lastWriteTime.time().minute()),
|
||||
static_cast<unsigned>(fileInfo->lastWriteTime.time().second())
|
||||
};
|
||||
|
||||
track.modify()->setAddedTime(addedTime); // may be erased by encodingTime
|
||||
added = true;
|
||||
|
||||
track.modify()->setAbsoluteFilePath(_file);
|
||||
if (!_parsedTrack->encodingTime.isValid())
|
||||
{
|
||||
const core::PartialDateTime addedTime{ core::PartialDateTime::fromWtDateTime(_mediaLibrary.firstScan ? fileInfo->lastWriteTime : Wt::WDateTime::currentDateTime()) };
|
||||
track.modify()->setAddedTime(addedTime); // may be erased by encodingTime
|
||||
}
|
||||
}
|
||||
|
||||
// Track related data
|
||||
|
||||
Reference in New Issue
Block a user