From b2863e927c4a0c973df70fb5e7b3c5082466c98f Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 3 Jul 2020 10:03:26 +0200 Subject: [PATCH] Scan files which extensions is not lowercase --- src/libs/scanner/impl/MediaScanner.cpp | 11 +++++++++-- src/libs/utils/impl/String.cpp | 8 +++++++- src/libs/utils/include/utils/String.hpp | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/libs/scanner/impl/MediaScanner.cpp b/src/libs/scanner/impl/MediaScanner.cpp index f2b5a70a..0529ff4a 100644 --- a/src/libs/scanner/impl/MediaScanner.cpp +++ b/src/libs/scanner/impl/MediaScanner.cpp @@ -65,7 +65,9 @@ getNextFirstOfMonth(Wt::WDate current) bool isFileSupported(const std::filesystem::path& file, const std::unordered_set& extensions) { - return (extensions.find(file.extension()) != extensions.end()); + const std::filesystem::path extension {StringUtils::stringToLower(file.extension().string())}; + + return (extensions.find(extension) != extensions.end()); } bool @@ -568,7 +570,12 @@ MediaScanner::refreshScanSettings() _startTime = scanSettings->getUpdateStartTime(); _updatePeriod = scanSettings->getUpdatePeriod(); - _fileExtensions = scanSettings->getAudioFileExtensions(); + { + const auto fileExtensions {scanSettings->getAudioFileExtensions()}; + _fileExtensions.clear(); + std::transform(std::cbegin(fileExtensions), std::end(fileExtensions), std::inserter(_fileExtensions, std::begin(_fileExtensions)), + [](const std::filesystem::path& extension) { return std::filesystem::path{ StringUtils::stringToLower(extension.string()) }; }); + } _mediaDirectory = scanSettings->getMediaDirectory(); _recommendationEngineType = scanSettings->getRecommendationEngineType(); diff --git a/src/libs/utils/impl/String.cpp b/src/libs/utils/impl/String.cpp index dbcb82d2..edef6744 100644 --- a/src/libs/utils/impl/String.cpp +++ b/src/libs/utils/impl/String.cpp @@ -104,11 +104,17 @@ stringToLower(std::string_view str) std::string res; res.reserve(str.size()); - std::transform(std::cbegin(str), std::cend(str), std::back_inserter(res), [](char c) { return std::tolower(c);}); + std::transform(std::cbegin(str), std::cend(str), std::back_inserter(res), [](unsigned char c) { return std::tolower(c);}); return res; } +void +stringToLower(std::string& str) +{ + std::transform(std::cbegin(str), std::cend(str), std::begin(str), [](unsigned char c) { return std::tolower(c);}); +} + std::string stringToUpper(const std::string& str) { diff --git a/src/libs/utils/include/utils/String.hpp b/src/libs/utils/include/utils/String.hpp index 62d6fba4..2c4e6724 100644 --- a/src/libs/utils/include/utils/String.hpp +++ b/src/libs/utils/include/utils/String.hpp @@ -43,6 +43,9 @@ stringTrimEnd(const std::string& str, const std::string& whitespaces = " \t"); std::string stringToLower(std::string_view str); +void +stringToLower(std::string& str); + std::string stringToUpper(const std::string& str);