update offline detection

pull/702/head
Luke Pulverenti 9 years ago
parent f2689c4a5a
commit e90072b75f

@ -702,7 +702,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary> /// </summary>
/// <param name="path">The path.</param> /// <param name="path">The path.</param>
/// <returns><c>true</c> if the specified path is offline; otherwise, <c>false</c>.</returns> /// <returns><c>true</c> if the specified path is offline; otherwise, <c>false</c>.</returns>
private bool IsPathOffline(string path) public static bool IsPathOffline(string path)
{ {
if (FileSystem.FileExists(path)) if (FileSystem.FileExists(path))
{ {
@ -736,12 +736,12 @@ namespace MediaBrowser.Controller.Entities
/// <param name="folders">The folders.</param> /// <param name="folders">The folders.</param>
/// <param name="path">The path.</param> /// <param name="path">The path.</param>
/// <returns><c>true</c> if the specified folders contains path; otherwise, <c>false</c>.</returns> /// <returns><c>true</c> if the specified folders contains path; otherwise, <c>false</c>.</returns>
private bool ContainsPath(IEnumerable<VirtualFolderInfo> folders, string path) private static bool ContainsPath(IEnumerable<VirtualFolderInfo> folders, string path)
{ {
return folders.SelectMany(i => i.Locations).Any(i => ContainsPath(i, path)); return folders.SelectMany(i => i.Locations).Any(i => ContainsPath(i, path));
} }
private bool ContainsPath(string parent, string path) private static bool ContainsPath(string parent, string path)
{ {
return string.Equals(parent, path, StringComparison.OrdinalIgnoreCase) || FileSystem.ContainsSubPath(parent, path); return string.Equals(parent, path, StringComparison.OrdinalIgnoreCase) || FileSystem.ContainsSubPath(parent, path);
} }

@ -184,15 +184,24 @@ namespace MediaBrowser.Server.Implementations.Persistence
try try
{ {
if (!_fileSystem.FileExists(path) && !_fileSystem.DirectoryExists(path)) if (_fileSystem.FileExists(path) || _fileSystem.DirectoryExists(path))
{ {
var libraryItem = _libraryManager.GetItemById(item.Item1); continue;
}
var libraryItem = _libraryManager.GetItemById(item.Item1);
await _libraryManager.DeleteItem(libraryItem, new DeleteOptions if (Folder.IsPathOffline(path))
{ {
DeleteFileLocation = false libraryItem.IsOffline = true;
}); await libraryItem.UpdateToRepository(ItemUpdateType.None, cancellationToken).ConfigureAwait(false);
continue;
} }
await _libraryManager.DeleteItem(libraryItem, new DeleteOptions
{
DeleteFileLocation = false
});
} }
catch (OperationCanceledException) catch (OperationCanceledException)
{ {

Loading…
Cancel
Save