diff --git a/approot/admin-database.xml b/approot/admin-database.xml index 8b6a1173..d455b4fc 100644 --- a/approot/admin-database.xml +++ b/approot/admin-database.xml @@ -16,6 +16,7 @@
${media-directory} ${media-directory-info class="help-block"} + ${tr:Lms.Admin.Database.path-help}
diff --git a/approot/messages.xml b/approot/messages.xml index ee2a721c..06e52b7d 100644 --- a/approot/messages.xml +++ b/approot/messages.xml @@ -42,6 +42,7 @@ Music collection Never Media root directory +Directories containing a .lmsignore file are skipped Recommendation engine Tags based Audio analysis based diff --git a/approot/messages_fr.xml b/approot/messages_fr.xml index 4e4c9af7..c8dbaeb6 100644 --- a/approot/messages_fr.xml +++ b/approot/messages_fr.xml @@ -42,6 +42,7 @@ Collection de musiques Jamais Dossier racine des fichiers de musique +Les dossiers contenant un fichier .lmsignore sont ignorés Moteur de recommandation Basé sur les tags Basé sur l'analyse audio diff --git a/src/libs/scanner/impl/Scanner.cpp b/src/libs/scanner/impl/Scanner.cpp index 064b5a4c..3a95b646 100644 --- a/src/libs/scanner/impl/Scanner.cpp +++ b/src/libs/scanner/impl/Scanner.cpp @@ -43,6 +43,8 @@ using namespace Database; namespace { +const std::filesystem::path excludeDirFileName {".lmsignore"}; + Wt::WDate getNextMonday(Wt::WDate current) { @@ -74,7 +76,7 @@ isFileSupported(const std::filesystem::path& file, const std::unordered_set cb) +exploreFilesRecursive(const std::filesystem::path& directory, std::function cb, const std::filesystem::path& excludeDirFileName) { std::error_code ec; std::filesystem::directory_iterator itPath {directory, std::filesystem::directory_options::follow_directory_symlink, ec}; @@ -90,6 +90,17 @@ exploreFilesRecursive(const std::filesystem::path& directory, std::function cb); +bool exploreFilesRecursive(const std::filesystem::path& directory, std::function cb, const std::filesystem::path& excludeDirFileName = {}); namespace std {