diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-20 08:59:21 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-20 08:59:21 -0400 |
| commit | 1187222842d880aa8c6dcd2f4ca13ad5ccd31381 (patch) | |
| tree | e4f793b04adf3739946bc150231fb26929290700 | |
| parent | ab01b49f6430fddb6eae4c29d4591f698a8405b2 (diff) | |
Update IBN types to use providers
| -rw-r--r-- | MediaBrowser.Controller/Library/ItemController.cs | 19 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs | 44 |
2 files changed, 47 insertions, 16 deletions
diff --git a/MediaBrowser.Controller/Library/ItemController.cs b/MediaBrowser.Controller/Library/ItemController.cs index bc5cea79b9..eb767d9a14 100644 --- a/MediaBrowser.Controller/Library/ItemController.cs +++ b/MediaBrowser.Controller/Library/ItemController.cs @@ -295,21 +295,12 @@ namespace MediaBrowser.Controller.Library item.DateCreated = Directory.GetCreationTime(path);
item.DateModified = Directory.GetLastAccessTime(path);
- if (File.Exists(Path.Combine(path, "folder.jpg")))
- {
- item.PrimaryImagePath = Path.Combine(path, "folder.jpg");
- }
- else if (File.Exists(Path.Combine(path, "folder.png")))
- {
- item.PrimaryImagePath = Path.Combine(path, "folder.png");
- }
+ ItemResolveEventArgs args = new ItemResolveEventArgs();
+ args.Path = path;
+ args.FileAttributes = File.GetAttributes(path);
+ args.FileSystemChildren = Directory.GetFileSystemEntries(path, "*", SearchOption.TopDirectoryOnly).Select(f => new KeyValuePair<string, FileAttributes>(f, File.GetAttributes(f)));
- var b = false;
-
- if (b)
- {
- await Kernel.Instance.ExecuteMetadataProviders(item, null);
- }
+ await Kernel.Instance.ExecuteMetadataProviders(item, args);
return item;
}
diff --git a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs index 5b086f795a..06b573ed0e 100644 --- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Providers {
public override bool Supports(BaseEntity item)
{
- return item is BaseItem;
+ return true;
}
public override Task Fetch(BaseEntity item, ItemResolveEventArgs args)
@@ -23,7 +23,16 @@ namespace MediaBrowser.Controller.Providers {
if (args.IsFolder)
{
- PopulateImages(item as BaseItem, args);
+ var baseItem = item as BaseItem;
+
+ if (baseItem != null)
+ {
+ PopulateImages(baseItem, args);
+ }
+ else
+ {
+ PopulateImages(item, args);
+ }
}
});
}
@@ -31,6 +40,37 @@ namespace MediaBrowser.Controller.Providers /// <summary>
/// Fills in image paths based on files win the folder
/// </summary>
+ private void PopulateImages(BaseEntity item, ItemResolveEventArgs args)
+ {
+ foreach (KeyValuePair<string, FileAttributes> file in args.FileSystemChildren)
+ {
+ if (file.Value.HasFlag(FileAttributes.Directory))
+ {
+ continue;
+ }
+
+ string filePath = file.Key;
+
+ string ext = Path.GetExtension(filePath);
+
+ // Only support png and jpg files
+ if (!ext.EndsWith("png", StringComparison.OrdinalIgnoreCase) && !ext.EndsWith("jpg", StringComparison.OrdinalIgnoreCase))
+ {
+ continue;
+ }
+
+ string name = Path.GetFileNameWithoutExtension(filePath);
+
+ if (name.Equals("folder", StringComparison.OrdinalIgnoreCase))
+ {
+ item.PrimaryImagePath = filePath;
+ }
+ }
+ }
+
+ /// <summary>
+ /// Fills in image paths based on files win the folder
+ /// </summary>
private void PopulateImages(BaseItem item, ItemResolveEventArgs args)
{
List<string> backdropFiles = new List<string>();
|
