aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-29 15:23:22 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-29 15:23:22 -0400
commit497e93aae86de2de615ca3656e7641be6a0f422a (patch)
tree89e02375d26415b2f3c29e55a207f8d8add0a190
parentf641c501a78d6270793ee9c9fa185517be6df008 (diff)
update auto-organize error handling
-rw-r--r--Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs22
1 files changed, 21 insertions, 1 deletions
diff --git a/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs b/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
index 807f1694c..c885f03ac 100644
--- a/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
+++ b/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
@@ -53,9 +53,29 @@ namespace Emby.Server.Implementations.FileOrganization
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)
{
- 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)
.OrderBy(_fileSystem.GetCreationTimeUtc)