diff --git a/server/Watcher.js b/server/Watcher.js index 6c17b90e..91171454 100644 --- a/server/Watcher.js +++ b/server/Watcher.js @@ -1,3 +1,4 @@ +const Path = require('path') const EventEmitter = require('events') const Watcher = require('./libs/watcher/watcher') const Logger = require('./Logger') @@ -177,10 +178,16 @@ class FolderWatcher extends EventEmitter { Logger.error(`[Watcher] New file folder not found in library "${libwatcher.name}" with path "${path}"`) return } + const folderFullPath = filePathToPOSIX(folder.fullPath) const relPath = path.replace(folderFullPath, '') + if (Path.extname(relPath).toLowerCase() === '.part') { + Logger.debug(`[Watcher] Ignoring .part file "${relPath}"`) + return + } + // Ignore files/folders starting with "." const hasDotPath = relPath.split('/').find(p => p.startsWith('.')) if (hasDotPath) { diff --git a/server/utils/fileUtils.js b/server/utils/fileUtils.js index b13bb67e..16aae18c 100644 --- a/server/utils/fileUtils.js +++ b/server/utils/fileUtils.js @@ -138,7 +138,7 @@ async function recurseFiles(path, relPathToReplace = null) { realPath: true, normalizePath: true } - var list = await rra.list(path, options) + let list = await rra.list(path, options) if (list.error) { Logger.error('[fileUtils] Recurse files error', list.error) return [] @@ -152,10 +152,10 @@ async function recurseFiles(path, relPathToReplace = null) { return false } - var relpath = item.fullname.replace(relPathToReplace, '') - var reldirname = Path.dirname(relpath) + const relpath = item.fullname.replace(relPathToReplace, '') + let reldirname = Path.dirname(relpath) if (reldirname === '.') reldirname = '' - var dirname = Path.dirname(item.fullname) + const dirname = Path.dirname(item.fullname) // Directory has a file named ".ignore" flag directory and ignore if (item.name === '.ignore' && reldirname && reldirname !== '.' && !directoriesToIgnore.includes(dirname)) { @@ -164,9 +164,13 @@ async function recurseFiles(path, relPathToReplace = null) { return false } + if (item.extension === '.part') { + Logger.debug(`[fileUtils] Ignoring .part file "${relpath}"`) + return false + } + // Ignore any file if a directory or the filename starts with "." - var pathStartsWithPeriod = relpath.split('/').find(p => p.startsWith('.')) - if (pathStartsWithPeriod) { + if (relpath.split('/').find(p => p.startsWith('.'))) { Logger.debug(`[fileUtils] Ignoring path has . "${relpath}"`) return false }