aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-08 17:38:02 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-02-08 17:38:02 -0500
commit7f5a4c2d4e3d8e1881dae0403367e35ad5699eaf (patch)
treeb8cd714ee0c027c49001f263be885511954f5787 /MediaBrowser.Controller/Providers
parent3ffd95a6371c40246a8163c17da3626374685271 (diff)
added item type to refresh info
Diffstat (limited to 'MediaBrowser.Controller/Providers')
-rw-r--r--MediaBrowser.Controller/Providers/DirectoryService.cs62
-rw-r--r--MediaBrowser.Controller/Providers/IHasChangeMonitor.cs4
-rw-r--r--MediaBrowser.Controller/Providers/ILocalImageProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/ItemLookupInfo.cs5
-rw-r--r--MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs5
-rw-r--r--MediaBrowser.Controller/Providers/MetadataStatus.cs6
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>