瀏覽代碼

update auto-organize error handling

Luke Pulverenti 8 年之前
父節點
當前提交
497e93aae8
共有 1 個文件被更改,包括 21 次插入1 次删除
  1. 21 1
      Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs

+ 21 - 1
Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs

@@ -53,9 +53,29 @@ namespace Emby.Server.Implementations.FileOrganization
             return false;
             return false;
         }
         }
 
 
+        private bool IsValidWatchLocation(string path, List<string> libraryFolderPaths)
+        {
+            if (IsPathAlreadyInMediaLibrary(path, libraryFolderPaths))
+            {
+                _logger.Info("Folder {0} is not eligible for auto-organize because it is also part of an Emby library", path);
+                return false;
+            }
+
+            return true;
+        }
+
+        private bool IsPathAlreadyInMediaLibrary(string path, List<string> libraryFolderPaths)
+        {
+            return libraryFolderPaths.Any(i => string.Equals(i, path, StringComparison.Ordinal) || _fileSystem.ContainsSubPath(i, path));
+        }
+
         public async Task Organize(AutoOrganizeOptions options, CancellationToken cancellationToken, IProgress<double> progress)
         public async Task Organize(AutoOrganizeOptions options, CancellationToken cancellationToken, IProgress<double> progress)
         {
         {
-            var watchLocations = options.TvOptions.WatchLocations.ToList();
+            var libraryFolderPaths = _libraryManager.GetVirtualFolders().SelectMany(i => i.Locations).ToList();
+
+            var watchLocations = options.TvOptions.WatchLocations
+                .Where(i => IsValidWatchLocation(i, libraryFolderPaths))
+                .ToList();
 
 
             var eligibleFiles = watchLocations.SelectMany(GetFilesToOrganize)
             var eligibleFiles = watchLocations.SelectMany(GetFilesToOrganize)
                 .OrderBy(_fileSystem.GetCreationTimeUtc)
                 .OrderBy(_fileSystem.GetCreationTimeUtc)