diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-08-13 16:21:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-08-13 16:21:10 -0400 |
| commit | dc578f3742b474bd85d556299a6b2763f4d9acda (patch) | |
| tree | cc4a8d1de140ece77160349e51a64857656ab373 /MediaBrowser.Controller/Providers | |
| parent | f6ed934a7e32bf10c3a141773d713bf3b19e784f (diff) | |
| parent | 7f200f057d33e3ef52b1b1b1bf1767577295317e (diff) | |
Merge pull request #2815 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Controller/Providers')
13 files changed, 34 insertions, 74 deletions
diff --git a/MediaBrowser.Controller/Providers/AlbumInfo.cs b/MediaBrowser.Controller/Providers/AlbumInfo.cs index b884774094..74feb4ea21 100644 --- a/MediaBrowser.Controller/Providers/AlbumInfo.cs +++ b/MediaBrowser.Controller/Providers/AlbumInfo.cs @@ -9,7 +9,7 @@ namespace MediaBrowser.Controller.Providers /// Gets or sets the album artist. /// </summary> /// <value>The album artist.</value> - public List<string> AlbumArtists { get; set; } + public string[] AlbumArtists { get; set; } /// <summary> /// Gets or sets the artist provider ids. @@ -22,7 +22,7 @@ namespace MediaBrowser.Controller.Providers { ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); SongInfos = new List<SongInfo>(); - AlbumArtists = new List<string>(); + AlbumArtists = EmptyStringArray; } } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs index 6d220f3a36..337bb23a48 100644 --- a/MediaBrowser.Controller/Providers/DirectoryService.cs +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -13,10 +13,10 @@ namespace MediaBrowser.Controller.Providers public class DirectoryService : IDirectoryService { private readonly ILogger _logger; - private readonly IFileSystem _fileSystem; + private readonly IFileSystem _fileSystem; - private readonly ConcurrentDictionary<string, Dictionary<string, FileSystemMetadata>> _cache = - new ConcurrentDictionary<string, Dictionary<string, FileSystemMetadata>>(StringComparer.OrdinalIgnoreCase); + private readonly ConcurrentDictionary<string, FileSystemMetadata[]> _cache = + new ConcurrentDictionary<string, FileSystemMetadata[]>(StringComparer.OrdinalIgnoreCase); private readonly ConcurrentDictionary<string, FileSystemMetadata> _fileCache = new ConcurrentDictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase); @@ -24,7 +24,7 @@ namespace MediaBrowser.Controller.Providers public DirectoryService(ILogger logger, IFileSystem fileSystem) { _logger = logger; - _fileSystem = fileSystem; + _fileSystem = fileSystem; } public DirectoryService(IFileSystem fileSystem) @@ -32,28 +32,23 @@ namespace MediaBrowser.Controller.Providers { } - public IEnumerable<FileSystemMetadata> GetFileSystemEntries(string path) + public FileSystemMetadata[] GetFileSystemEntries(string path) { return GetFileSystemEntries(path, false); } - public Dictionary<string, FileSystemMetadata> GetFileSystemDictionary(string path) - { - return GetFileSystemDictionary(path, false); - } - - private Dictionary<string, FileSystemMetadata> GetFileSystemDictionary(string path, bool clearCache) + private FileSystemMetadata[] GetFileSystemEntries(string path, bool clearCache) { if (string.IsNullOrWhiteSpace(path)) { throw new ArgumentNullException("path"); } - Dictionary<string, FileSystemMetadata> entries; + FileSystemMetadata[] entries; if (clearCache) { - Dictionary<string, FileSystemMetadata> removed; + FileSystemMetadata[] removed; _cache.TryRemove(path, out removed); } @@ -62,37 +57,22 @@ namespace MediaBrowser.Controller.Providers { //_logger.Debug("Getting files for " + path); - entries = new Dictionary<string, FileSystemMetadata>(StringComparer.OrdinalIgnoreCase); - try { // using EnumerateFileSystemInfos doesn't handle reparse points (symlinks) - var list = _fileSystem.GetFileSystemEntries(path) - .ToList(); - - // Seeing dupes on some users file system for some reason - foreach (var item in list) - { - entries[item.FullName] = item; - } + entries = _fileSystem.GetFileSystemEntries(path).ToArray(); } catch (IOException) { + entries = new FileSystemMetadata[] { }; } - //var group = entries.ToLookup(i => _fileSystem.GetDirectoryName(i.FullName)).ToList(); - _cache.TryAdd(path, entries); } return entries; } - private IEnumerable<FileSystemMetadata> GetFileSystemEntries(string path, bool clearCache) - { - return GetFileSystemDictionary(path, clearCache).Values; - } - public IEnumerable<FileSystemMetadata> GetFiles(string path) { return GetFiles(path, false); @@ -103,16 +83,6 @@ namespace MediaBrowser.Controller.Providers return GetFileSystemEntries(path, clearCache).Where(i => !i.IsDirectory); } - public IEnumerable<string> GetFilePaths(string path) - { - return _fileSystem.GetFilePaths(path); - } - - public IEnumerable<string> GetFilePaths(string path, bool clearCache) - { - return _fileSystem.GetFilePaths(path); - } - public FileSystemMetadata GetFile(string path) { FileSystemMetadata file; @@ -133,10 +103,5 @@ namespace MediaBrowser.Controller.Providers return file; //return _fileSystem.GetFileInfo(path); } - - public IEnumerable<FileSystemMetadata> GetDirectories(string path) - { - return GetFileSystemEntries(path, false).Where(i => i.IsDirectory); - } } } diff --git a/MediaBrowser.Controller/Providers/EpisodeInfo.cs b/MediaBrowser.Controller/Providers/EpisodeInfo.cs index b8e88ea53a..5df999ab05 100644 --- a/MediaBrowser.Controller/Providers/EpisodeInfo.cs +++ b/MediaBrowser.Controller/Providers/EpisodeInfo.cs @@ -10,7 +10,6 @@ namespace MediaBrowser.Controller.Providers public int? IndexNumberEnd { get; set; } public bool IsMissingEpisode { get; set; } - public bool IsVirtualUnaired { get; set; } public EpisodeInfo() { diff --git a/MediaBrowser.Controller/Providers/IDirectoryService.cs b/MediaBrowser.Controller/Providers/IDirectoryService.cs index 1b203f32c6..3747039482 100644 --- a/MediaBrowser.Controller/Providers/IDirectoryService.cs +++ b/MediaBrowser.Controller/Providers/IDirectoryService.cs @@ -1,18 +1,12 @@ using System.Collections.Generic; - -using MediaBrowser.Controller.IO; using MediaBrowser.Model.IO; namespace MediaBrowser.Controller.Providers { public interface IDirectoryService { - IEnumerable<FileSystemMetadata> GetFileSystemEntries(string path); - IEnumerable<FileSystemMetadata> GetDirectories(string path); + FileSystemMetadata[] GetFileSystemEntries(string path); IEnumerable<FileSystemMetadata> GetFiles(string path); - IEnumerable<string> GetFilePaths(string path); - IEnumerable<string> GetFilePaths(string path, bool clearCache); FileSystemMetadata GetFile(string path); - Dictionary<string, FileSystemMetadata> GetFileSystemDictionary(string path); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs b/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs index 9c3f947637..e96a2d65e8 100644 --- a/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IDynamicImageProvider.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="item">The item.</param> /// <returns>IEnumerable{ImageType}.</returns> - IEnumerable<ImageType> GetSupportedImages(IHasImages item); + IEnumerable<ImageType> GetSupportedImages(IHasMetadata item); /// <summary> /// Gets the image. @@ -22,6 +22,6 @@ namespace MediaBrowser.Controller.Providers /// <param name="type">The type.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{DynamicImageResponse}.</returns> - Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken); + Task<DynamicImageResponse> GetImage(IHasMetadata item, ImageType type, CancellationToken cancellationToken); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IImageEnhancer.cs b/MediaBrowser.Controller/Providers/IImageEnhancer.cs index a43941607e..a993f536d9 100644 --- a/MediaBrowser.Controller/Providers/IImageEnhancer.cs +++ b/MediaBrowser.Controller/Providers/IImageEnhancer.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="item">The item.</param> /// <param name="imageType">Type of the image.</param> /// <returns><c>true</c> if this enhancer will enhance the supplied image for the supplied item, <c>false</c> otherwise</returns> - bool Supports(IHasImages item, ImageType imageType); + bool Supports(IHasMetadata item, ImageType imageType); /// <summary> /// Gets the priority or order in which this enhancer should be run. @@ -27,7 +27,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="item">The item.</param> /// <param name="imageType">Type of the image.</param> /// <returns>Cache key relating to the current state of this item and configuration</returns> - string GetConfigurationCacheKey(IHasImages item, ImageType imageType); + string GetConfigurationCacheKey(IHasMetadata item, ImageType imageType); /// <summary> /// Gets the size of the enhanced image. @@ -37,7 +37,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="imageIndex">Index of the image.</param> /// <param name="originalImageSize">Size of the original image.</param> /// <returns>ImageSize.</returns> - ImageSize GetEnhancedImageSize(IHasImages item, ImageType imageType, int imageIndex, ImageSize originalImageSize); + ImageSize GetEnhancedImageSize(IHasMetadata item, ImageType imageType, int imageIndex, ImageSize originalImageSize); /// <summary> /// Enhances the image async. @@ -49,6 +49,6 @@ namespace MediaBrowser.Controller.Providers /// <param name="imageIndex">Index of the image.</param> /// <returns>Task{Image}.</returns> /// <exception cref="System.ArgumentNullException"></exception> - Task EnhanceImageAsync(IHasImages item, string inputFile, string outputFile, ImageType imageType, int imageIndex); + Task EnhanceImageAsync(IHasMetadata item, string inputFile, string outputFile, ImageType imageType, int imageIndex); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IImageProvider.cs b/MediaBrowser.Controller/Providers/IImageProvider.cs index 1e5bdfeafc..2b43c9cb8f 100644 --- a/MediaBrowser.Controller/Providers/IImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IImageProvider.cs @@ -18,6 +18,6 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="item">The item.</param> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns> - bool Supports(IHasImages item); + bool Supports(IHasMetadata item); } } diff --git a/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs b/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs index 7e5d828437..e93c73a523 100644 --- a/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs +++ b/MediaBrowser.Controller/Providers/ILocalImageFileProvider.cs @@ -5,6 +5,6 @@ namespace MediaBrowser.Controller.Providers { public interface ILocalImageFileProvider : ILocalImageProvider { - List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService); + List<LocalImageInfo> GetImages(IHasMetadata item, IDirectoryService directoryService); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 0ba573da8b..703666d668 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -50,7 +50,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="imageIndex">Index of the image.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - Task SaveImage(IHasImages item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, string url, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// <summary> /// Saves the image. @@ -62,13 +62,13 @@ namespace MediaBrowser.Controller.Providers /// <param name="imageIndex">Index of the image.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - Task SaveImage(IHasImages item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// <summary> /// Saves the image. /// </summary> /// <returns>Task.</returns> - Task SaveImage(IHasImages item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken); + Task SaveImage(IHasMetadata item, string source, string mimeType, ImageType type, int? imageIndex, bool? saveLocallyWithMedia, CancellationToken cancellationToken); /// <summary> /// Adds the metadata providers. @@ -84,14 +84,14 @@ namespace MediaBrowser.Controller.Providers /// <param name="query">The query.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns> - Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken); + Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasMetadata item, RemoteImageQuery query, CancellationToken cancellationToken); /// <summary> /// Gets the image providers. /// </summary> /// <param name="item">The item.</param> /// <returns>IEnumerable{ImageProviderInfo}.</returns> - IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(IHasImages item); + IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(IHasMetadata item); /// <summary> /// Gets all metadata plugins. @@ -135,7 +135,7 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="item">The item.</param> /// <returns>MetadataOptions.</returns> - MetadataOptions GetMetadataOptions(IHasImages item); + MetadataOptions GetMetadataOptions(IHasMetadata item); /// <summary> /// Gets the remote search results. diff --git a/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs b/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs index 6b94547bba..86a7939e60 100644 --- a/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs +++ b/MediaBrowser.Controller/Providers/IRemoteImageProvider.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="item">The item.</param> /// <returns>IEnumerable{ImageType}.</returns> - IEnumerable<ImageType> GetSupportedImages(IHasImages item); + IEnumerable<ImageType> GetSupportedImages(IHasMetadata item); /// <summary> /// Gets the images. @@ -26,7 +26,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="item">The item.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns> - Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken); + Task<IEnumerable<RemoteImageInfo>> GetImages(IHasMetadata item, CancellationToken cancellationToken); /// <summary> /// Gets the image response. diff --git a/MediaBrowser.Controller/Providers/ItemInfo.cs b/MediaBrowser.Controller/Providers/ItemInfo.cs index 8de11b7439..63cc48058f 100644 --- a/MediaBrowser.Controller/Providers/ItemInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemInfo.cs @@ -10,7 +10,7 @@ namespace MediaBrowser.Controller.Providers { Path = item.Path; ContainingFolderPath = item.ContainingFolderPath; - IsInMixedFolder = item.DetectIsInMixedFolder(); + IsInMixedFolder = item.IsInMixedFolder; var video = item as Video; if (video != null) diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index dc7a04135a..98122e7767 100644 --- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -6,6 +6,8 @@ namespace MediaBrowser.Controller.Providers { public class ItemLookupInfo : IHasProviderIds { + protected static string[] EmptyStringArray = new string[] { }; + /// <summary> /// Gets or sets the name. /// </summary> diff --git a/MediaBrowser.Controller/Providers/SongInfo.cs b/MediaBrowser.Controller/Providers/SongInfo.cs index b83912a002..988e931cd3 100644 --- a/MediaBrowser.Controller/Providers/SongInfo.cs +++ b/MediaBrowser.Controller/Providers/SongInfo.cs @@ -4,14 +4,14 @@ namespace MediaBrowser.Controller.Providers { public class SongInfo : ItemLookupInfo { - public List<string> AlbumArtists { get; set; } + public string[] AlbumArtists { get; set; } public string Album { get; set; } public List<string> Artists { get; set; } public SongInfo() { Artists = new List<string>(); - AlbumArtists = new List<string>(); + AlbumArtists = EmptyStringArray; } } }
\ No newline at end of file |
