diff options
Diffstat (limited to 'MediaBrowser.Api')
| -rw-r--r-- | MediaBrowser.Api/Images/ImageService.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Api/Images/RemoteImageService.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemRefreshService.cs | 49 | ||||
| -rw-r--r-- | MediaBrowser.Api/Library/LibraryStructureService.cs | 63 |
4 files changed, 99 insertions, 44 deletions
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index d7b59c920..c4981a7fa 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -66,7 +66,7 @@ namespace MediaBrowser.Api.Images [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")] public string Id { get; set; } } - + /// <summary> /// Class UpdateItemImageIndex /// </summary> @@ -799,7 +799,12 @@ namespace MediaBrowser.Api.Images await _providerManager.SaveImage(entity, memoryStream, mimeType, imageType, null, null, CancellationToken.None).ConfigureAwait(false); - await entity.RefreshMetadata(CancellationToken.None, forceRefresh: true, forceSave: true, allowSlowProviders: false).ConfigureAwait(false); + await entity.RefreshMetadata(new MetadataRefreshOptions + { + ImageRefreshMode = MetadataRefreshMode.None, + ForceSave = true + + }, CancellationToken.None).ConfigureAwait(false); } } } diff --git a/MediaBrowser.Api/Images/RemoteImageService.cs b/MediaBrowser.Api/Images/RemoteImageService.cs index c18954e50..b84a8f4f7 100644 --- a/MediaBrowser.Api/Images/RemoteImageService.cs +++ b/MediaBrowser.Api/Images/RemoteImageService.cs @@ -9,13 +9,13 @@ using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Providers; using ServiceStack; +using ServiceStack.Text.Controller; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; -using ServiceStack.Text.Controller; namespace MediaBrowser.Api.Images { @@ -193,12 +193,7 @@ namespace MediaBrowser.Api.Images private List<ImageProviderInfo> GetImageProviders(BaseItem item) { - return _providerManager.GetImageProviders(item).Select(i => new ImageProviderInfo - { - Name = i.Name, - Priority = i.Priority - - }).ToList(); + return _providerManager.GetImageProviderInfo(item).ToList(); } public object Get(GetRemoteImages request) @@ -229,7 +224,9 @@ namespace MediaBrowser.Api.Images var result = new RemoteImageResult { TotalRecordCount = imagesList.Count, - Providers = _providerManager.GetImageProviders(item).Select(i => i.Name).ToList() + Providers = images.Select(i => i.ProviderName) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToList() }; if (request.StartIndex.HasValue) @@ -284,8 +281,13 @@ namespace MediaBrowser.Api.Images { await _providerManager.SaveImage(item, request.ImageUrl, null, request.Type, null, CancellationToken.None).ConfigureAwait(false); - await item.RefreshMetadata(CancellationToken.None, forceSave: true, allowSlowProviders: false) - .ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ForceSave = true, + ImageRefreshMode = MetadataRefreshMode.None, + MetadataRefreshMode = MetadataRefreshMode.None + + }, CancellationToken.None).ConfigureAwait(false); } /// <summary> diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs index 1b8b49f98..a0055f4e6 100644 --- a/MediaBrowser.Api/ItemRefreshService.cs +++ b/MediaBrowser.Api/ItemRefreshService.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Providers; using ServiceStack; using System; using System.Linq; @@ -131,7 +132,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(cancellationToken, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -152,7 +157,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -173,7 +182,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -194,7 +207,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -215,7 +232,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -236,7 +257,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); } catch (Exception ex) { @@ -266,7 +291,11 @@ namespace MediaBrowser.Api try { - await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await item.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); if (item.IsFolder) { @@ -301,7 +330,11 @@ namespace MediaBrowser.Api { foreach (var child in collectionFolder.Children.ToList()) { - await child.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + await child.RefreshMetadata(new MetadataRefreshOptions + { + ReplaceAllMetadata = request.Forced, + + }, CancellationToken.None).ConfigureAwait(false); if (child.IsFolder) { diff --git a/MediaBrowser.Api/Library/LibraryStructureService.cs b/MediaBrowser.Api/Library/LibraryStructureService.cs index 775907379..8ea472da3 100644 --- a/MediaBrowser.Api/Library/LibraryStructureService.cs +++ b/MediaBrowser.Api/Library/LibraryStructureService.cs @@ -167,6 +167,17 @@ namespace MediaBrowser.Api.Library public bool RefreshLibrary { get; set; } } + [Route("/Library/Changes/Path", "POST")] + public class ReportChangedPath : IReturnVoid + { + /// <summary> + /// Gets or sets the name. + /// </summary> + /// <value>The name.</value> + [ApiMember(Name = "Path", Description = "The path that was changed.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")] + public string Path { get; set; } + } + /// <summary> /// Class LibraryStructureService /// </summary> @@ -187,7 +198,7 @@ namespace MediaBrowser.Api.Library /// </summary> private readonly ILibraryManager _libraryManager; - private readonly IDirectoryWatchers _directoryWatchers; + private readonly ILibraryMonitor _libraryMonitor; private readonly IFileSystem _fileSystem; private readonly ILogger _logger; @@ -199,7 +210,7 @@ namespace MediaBrowser.Api.Library /// <param name="userManager">The user manager.</param> /// <param name="libraryManager">The library manager.</param> /// <exception cref="System.ArgumentNullException">appPaths</exception> - public LibraryStructureService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IDirectoryWatchers directoryWatchers, IFileSystem fileSystem, ILogger logger) + public LibraryStructureService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, ILibraryMonitor libraryMonitor, IFileSystem fileSystem, ILogger logger) { if (appPaths == null) { @@ -209,12 +220,27 @@ namespace MediaBrowser.Api.Library _userManager = userManager; _appPaths = appPaths; _libraryManager = libraryManager; - _directoryWatchers = directoryWatchers; + _libraryMonitor = libraryMonitor; _fileSystem = fileSystem; _logger = logger; } /// <summary> + /// Posts the specified request. + /// </summary> + /// <param name="request">The request.</param> + /// <exception cref="System.ArgumentException">Please supply a Path</exception> + public void Post(ReportChangedPath request) + { + if (string.IsNullOrEmpty(request.Path)) + { + throw new ArgumentException("Please supply a Path"); + } + + _libraryMonitor.ReportFileSystemChanged(request.Path); + } + + /// <summary> /// Gets the specified request. /// </summary> /// <param name="request">The request.</param> @@ -270,8 +296,7 @@ namespace MediaBrowser.Api.Library throw new ArgumentException("There is already a media collection with the name " + name + "."); } - _directoryWatchers.Stop(); - _directoryWatchers.TemporarilyIgnore(virtualFolderPath); + _libraryMonitor.Stop(); try { @@ -294,10 +319,8 @@ namespace MediaBrowser.Api.Library // No need to start if scanning the library because it will handle it if (!request.RefreshLibrary) { - _directoryWatchers.Start(); + _libraryMonitor.Start(); } - - _directoryWatchers.RemoveTempIgnore(virtualFolderPath); } if (request.RefreshLibrary) @@ -348,9 +371,7 @@ namespace MediaBrowser.Api.Library throw new ArgumentException("There is already a media collection with the name " + newPath + "."); } - _directoryWatchers.Stop(); - _directoryWatchers.TemporarilyIgnore(currentPath); - _directoryWatchers.TemporarilyIgnore(newPath); + _libraryMonitor.Stop(); try { @@ -376,11 +397,8 @@ namespace MediaBrowser.Api.Library // No need to start if scanning the library because it will handle it if (!request.RefreshLibrary) { - _directoryWatchers.Start(); + _libraryMonitor.Start(); } - - _directoryWatchers.RemoveTempIgnore(currentPath); - _directoryWatchers.RemoveTempIgnore(newPath); } if (request.RefreshLibrary) @@ -420,8 +438,7 @@ namespace MediaBrowser.Api.Library throw new DirectoryNotFoundException("The media folder does not exist"); } - _directoryWatchers.Stop(); - _directoryWatchers.TemporarilyIgnore(path); + _libraryMonitor.Stop(); try { @@ -437,10 +454,8 @@ namespace MediaBrowser.Api.Library // No need to start if scanning the library because it will handle it if (!request.RefreshLibrary) { - _directoryWatchers.Start(); + _libraryMonitor.Start(); } - - _directoryWatchers.RemoveTempIgnore(path); } if (request.RefreshLibrary) @@ -460,7 +475,7 @@ namespace MediaBrowser.Api.Library throw new ArgumentNullException("request"); } - _directoryWatchers.Stop(); + _libraryMonitor.Stop(); try { @@ -485,7 +500,7 @@ namespace MediaBrowser.Api.Library // No need to start if scanning the library because it will handle it if (!request.RefreshLibrary) { - _directoryWatchers.Start(); + _libraryMonitor.Start(); } } @@ -506,7 +521,7 @@ namespace MediaBrowser.Api.Library throw new ArgumentNullException("request"); } - _directoryWatchers.Stop(); + _libraryMonitor.Stop(); try { @@ -531,7 +546,7 @@ namespace MediaBrowser.Api.Library // No need to start if scanning the library because it will handle it if (!request.RefreshLibrary) { - _directoryWatchers.Start(); + _libraryMonitor.Start(); } } |
