aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Resolvers
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Resolvers')
-rw-r--r--MediaBrowser.Controller/Resolvers/AudioResolver.cs2
-rw-r--r--MediaBrowser.Controller/Resolvers/BaseItemResolver.cs19
-rw-r--r--MediaBrowser.Controller/Resolvers/FolderResolver.cs1
-rw-r--r--MediaBrowser.Controller/Resolvers/VideoResolver.cs14
4 files changed, 33 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Resolvers/AudioResolver.cs b/MediaBrowser.Controller/Resolvers/AudioResolver.cs
index f9ce5ecd7..2ca54e71d 100644
--- a/MediaBrowser.Controller/Resolvers/AudioResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/AudioResolver.cs
@@ -8,6 +8,8 @@ namespace MediaBrowser.Controller.Resolvers
{
protected override Audio Resolve(ItemResolveEventArgs args)
{
+ // Return audio if the path is a file and has a matching extension
+
if (!args.IsFolder)
{
if (IsAudioFile(args.Path))
diff --git a/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs b/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs
index e2c49e90c..dccdf57e1 100644
--- a/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs
@@ -15,6 +15,9 @@ namespace MediaBrowser.Controller.Resolvers
return null;
}
+ /// <summary>
+ /// Sets initial values on the newly resolved item
+ /// </summary>
protected virtual void SetItemValues(T item, ItemResolveEventArgs args)
{
// If the subclass didn't specify this
@@ -23,6 +26,7 @@ namespace MediaBrowser.Controller.Resolvers
item.Path = args.Path;
}
+ // If the subclass didn't specify this
if (args.Parent != null)
{
item.Parent = args.Parent;
@@ -40,9 +44,14 @@ namespace MediaBrowser.Controller.Resolvers
if (item != null)
{
+ // Set initial values on the newly resolved item
+
SetItemValues(item, args);
+ // Make sure the item has a name
EnsureName(item);
+
+ // Make sure DateCreated and DateModified have values
EnsureDates(item);
}
@@ -59,6 +68,9 @@ namespace MediaBrowser.Controller.Resolvers
}
+ /// <summary>
+ /// Ensures DateCreated and DateModified have values
+ /// </summary>
private void EnsureDates(T item)
{
// If the subclass didn't supply dates, add them here
@@ -73,6 +85,9 @@ namespace MediaBrowser.Controller.Resolvers
}
}
+ /// <summary>
+ /// Fills in image paths based on files win the folder
+ /// </summary>
protected virtual void PopulateImages(T item, ItemResolveEventArgs args)
{
List<string> backdropFiles = new List<string>();
@@ -88,6 +103,7 @@ namespace MediaBrowser.Controller.Resolvers
string ext = Path.GetExtension(filePath);
+ // Only support png and jpg files
if (!ext.EndsWith("png", StringComparison.OrdinalIgnoreCase) && !ext.EndsWith("jpg", StringComparison.OrdinalIgnoreCase))
{
continue;
@@ -137,6 +153,9 @@ namespace MediaBrowser.Controller.Resolvers
}
}
+ /// <summary>
+ /// Weed this to keep a list of resolvers, since Resolvers are built with generics
+ /// </summary>
public interface IBaseItemResolver
{
BaseItem ResolvePath(ItemResolveEventArgs args);
diff --git a/MediaBrowser.Controller/Resolvers/FolderResolver.cs b/MediaBrowser.Controller/Resolvers/FolderResolver.cs
index 5c57c6bb3..6101a45fd 100644
--- a/MediaBrowser.Controller/Resolvers/FolderResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/FolderResolver.cs
@@ -29,6 +29,7 @@ namespace MediaBrowser.Controller.Resolvers
item.IsRoot = args.Parent == null;
+ // Read data from folder.xml, if it exists
PopulateFolderMetadata(item, args);
}
diff --git a/MediaBrowser.Controller/Resolvers/VideoResolver.cs b/MediaBrowser.Controller/Resolvers/VideoResolver.cs
index ba51dab87..df304c329 100644
--- a/MediaBrowser.Controller/Resolvers/VideoResolver.cs
+++ b/MediaBrowser.Controller/Resolvers/VideoResolver.cs
@@ -1,20 +1,26 @@
-using System.IO;
+using System.Collections.Generic;
+using System.IO;
using MediaBrowser.Controller.Events;
using MediaBrowser.Model.Entities;
-using System.Linq;
-using System.Collections.Generic;
namespace MediaBrowser.Controller.Resolvers
{
+ /// <summary>
+ /// Resolves a Path into a Video
+ /// </summary>
public class VideoResolver : BaseVideoResolver<Video>
{
}
+ /// <summary>
+ /// Resolves a Path into a Video or Video subclass
+ /// </summary>
public abstract class BaseVideoResolver<T> : BaseItemResolver<T>
where T : Video, new()
{
protected override T Resolve(ItemResolveEventArgs args)
{
+ // If the path is a file check for a matching extensions
if (!args.IsFolder)
{
if (IsVideoFile(args.Path))
@@ -29,6 +35,7 @@ namespace MediaBrowser.Controller.Resolvers
else
{
+ // If the path is a folder, check if it's bluray or dvd
T item = ResolveFromFolderName(args.Path);
if (item != null)
@@ -36,6 +43,7 @@ namespace MediaBrowser.Controller.Resolvers
return item;
}
+ // Also check the subfolders for bluray or dvd
foreach (KeyValuePair<string, FileAttributes> folder in args.FileSystemChildren)
{
if (!folder.Value.HasFlag(FileAttributes.Directory))