diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-08 17:38:02 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-08 17:38:02 -0500 |
| commit | 7f5a4c2d4e3d8e1881dae0403367e35ad5699eaf (patch) | |
| tree | b8cd714ee0c027c49001f263be885511954f5787 /MediaBrowser.Controller/Providers | |
| parent | 3ffd95a6371c40246a8163c17da3626374685271 (diff) | |
added item type to refresh info
Diffstat (limited to 'MediaBrowser.Controller/Providers')
6 files changed, 80 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs new file mode 100644 index 0000000000..961f3acc76 --- /dev/null +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using MediaBrowser.Model.Logging; + +namespace MediaBrowser.Controller.Providers +{ + public class DirectoryService + { + private readonly ILogger _logger; + + private readonly Dictionary<string, List<FileSystemInfo>> _cache = new Dictionary<string, List<FileSystemInfo>>(StringComparer.OrdinalIgnoreCase); + + public DirectoryService(ILogger logger) + { + _logger = logger; + } + + public List<FileSystemInfo> GetFileSystemEntries(string path) + { + List<FileSystemInfo> entries; + + if (!_cache.TryGetValue(path, out entries)) + { + //_logger.Debug("Getting files for " + path); + + entries = new DirectoryInfo(path).EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly).ToList(); + _cache.Add(path, entries); + } + + return entries; + } + + public IEnumerable<FileInfo> GetFiles(string path) + { + return GetFileSystemEntries(path).OfType<FileInfo>(); + } + + public IEnumerable<DirectoryInfo> GetDirectories(string path) + { + return GetFileSystemEntries(path).OfType<DirectoryInfo>(); + } + + public FileInfo GetFile(string path) + { + var directory = Path.GetDirectoryName(path); + var filename = Path.GetFileName(path); + + return GetFiles(directory).FirstOrDefault(i => string.Equals(i.Name, filename, StringComparison.OrdinalIgnoreCase)); + } + + + public DirectoryInfo GetDirectory(string path) + { + var directory = Path.GetDirectoryName(path); + var name = Path.GetFileName(path); + + return GetDirectories(directory).FirstOrDefault(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase)); + } + } +} diff --git a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs index 6428bfd3dc..ada2cbc6c4 100644 --- a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs +++ b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs @@ -1,5 +1,5 @@ -using System; -using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities; +using System; namespace MediaBrowser.Controller.Providers { diff --git a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs index 6b97a552d1..cd139bb14f 100644 --- a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs +++ b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs @@ -17,7 +17,7 @@ namespace MediaBrowser.Controller.Providers public interface ILocalImageFileProvider : ILocalImageProvider { - List<LocalImageInfo> GetImages(IHasImages item); + List<LocalImageInfo> GetImages(IHasImages item, DirectoryService directoryService); } public class LocalImageInfo diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index d8dd038478..e8321d0b17 100644 --- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -149,4 +149,9 @@ namespace MediaBrowser.Controller.Providers { } + + public class SeasonInfo : ItemLookupInfo + { + + } } diff --git a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs index 83f1a12d91..3ab26ad668 100644 --- a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs @@ -1,4 +1,5 @@ -using System; +using MediaBrowser.Model.Logging; +using System; namespace MediaBrowser.Controller.Providers { @@ -16,6 +17,8 @@ namespace MediaBrowser.Controller.Providers /// </summary> [Obsolete] public bool ForceSave { get; set; } + + public DirectoryService DirectoryService { get; set; } } public class ImageRefreshOptions diff --git a/MediaBrowser.Controller/Providers/MetadataStatus.cs b/MediaBrowser.Controller/Providers/MetadataStatus.cs index adfae54f50..1e84e58802 100644 --- a/MediaBrowser.Controller/Providers/MetadataStatus.cs +++ b/MediaBrowser.Controller/Providers/MetadataStatus.cs @@ -19,6 +19,12 @@ namespace MediaBrowser.Controller.Providers public string ItemName { get; set; } /// <summary> + /// Gets or sets the type of the item. + /// </summary> + /// <value>The type of the item.</value> + public string ItemType { get; set; } + + /// <summary> /// Gets or sets the name of the series. /// </summary> /// <value>The name of the series.</value> |
