diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs | 45 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 16 |
2 files changed, 35 insertions, 26 deletions
diff --git a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs index a9f83dfff..9fc622c21 100644 --- a/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs +++ b/MediaBrowser.Server.Implementations/IO/DirectoryWatchers.cs @@ -358,39 +358,36 @@ namespace MediaBrowser.Server.Implementations.IO var tempIgnorePaths = _tempIgnoredPaths.Keys.ToList(); - if (e.ChangeType == WatcherChangeTypes.Changed) + // If the parent of an ignored path has a change event, ignore that too + if (tempIgnorePaths.Any(i => { - // If the parent of an ignored path has a change event, ignore that too - if (tempIgnorePaths.Any(i => + if (string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase)) { - if (string.Equals(i, e.FullPath, StringComparison.OrdinalIgnoreCase)) - { - return true; - } + return true; + } - // Go up a level - var parent = Path.GetDirectoryName(i); + // Go up a level + var parent = Path.GetDirectoryName(i); + if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + // Go up another level + if (!string.IsNullOrEmpty(parent)) + { + parent = Path.GetDirectoryName(i); if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) { return true; } + } - // Go up another level - if (!string.IsNullOrEmpty(parent)) - { - parent = Path.GetDirectoryName(i); - if (string.Equals(parent, e.FullPath, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - } - - return false; + return false; - })) - { - return; - } + })) + { + return; } if (tempIgnorePaths.Contains(e.FullPath, StringComparer.OrdinalIgnoreCase)) diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 1aa9e5b9c..9197328bd 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -1430,10 +1430,22 @@ namespace MediaBrowser.Server.Implementations.Library .OfType<CollectionFolder>() .Where(i => { + var locationType = i.LocationType; + + if (locationType == LocationType.Remote || locationType == LocationType.Virtual) + { + return false; + } + + if (string.Equals(i.Path, item.Path, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + try { - return i.LocationType != LocationType.Remote && i.LocationType != LocationType.Virtual && - i.ResolveArgs.PhysicalLocations.Contains(item.Path); + + return i.ResolveArgs.PhysicalLocations.Contains(item.Path); } catch (IOException ex) { |
