diff options
| -rw-r--r-- | MediaBrowser.Api/HttpHandlers/ImageHandler.cs | 30 | ||||
| -rw-r--r-- | MediaBrowser.Api/HttpHandlers/StudiosHandler.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Common/Kernel/BaseKernel.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Kernel.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Logging/StreamLogger.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/ApiBaseItem.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/CategoryInfo.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/ImageType.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Model/MediaBrowser.Model.csproj | 1 |
9 files changed, 77 insertions, 30 deletions
diff --git a/MediaBrowser.Api/HttpHandlers/ImageHandler.cs b/MediaBrowser.Api/HttpHandlers/ImageHandler.cs index 33beb2901..c61768a6d 100644 --- a/MediaBrowser.Api/HttpHandlers/ImageHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/ImageHandler.cs @@ -136,6 +136,21 @@ namespace MediaBrowser.Api.HttpHandlers }
}
+ private ImageType ImageType
+ {
+ get
+ {
+ string imageType = QueryString["type"];
+
+ if (string.IsNullOrEmpty(imageType))
+ {
+ return Model.Entities.ImageType.Primary;
+ }
+
+ return (ImageType)Enum.Parse(typeof(ImageType), imageType, true);
+ }
+ }
+
protected override void WriteResponseToOutputStream(Stream stream)
{
ImageProcessor.ProcessImage(ImagePath, stream, Width, Height, MaxWidth, MaxHeight, Quality);
@@ -152,7 +167,6 @@ namespace MediaBrowser.Api.HttpHandlers string id = QueryString["id"];
string personName = QueryString["personname"];
- string imageType = QueryString["type"] ?? string.Empty;
string imageIndex = QueryString["index"];
BaseItem item;
@@ -168,28 +182,28 @@ namespace MediaBrowser.Api.HttpHandlers int index = string.IsNullOrEmpty(imageIndex) ? 0 : int.Parse(imageIndex);
- return GetImagePathFromTypes(item, imageType, index);
+ return GetImagePathFromTypes(item, ImageType, index);
}
- private string GetImagePathFromTypes(BaseItem item, string imageType, int imageIndex)
+ private string GetImagePathFromTypes(BaseItem item, ImageType imageType, int imageIndex)
{
- if (imageType.Equals("logo", StringComparison.OrdinalIgnoreCase))
+ if (imageType == ImageType.Logo)
{
return item.LogoImagePath;
}
- else if (imageType.Equals("backdrop", StringComparison.OrdinalIgnoreCase))
+ else if (imageType == ImageType.Backdrop)
{
return item.BackdropImagePaths.ElementAt(imageIndex);
}
- else if (imageType.Equals("banner", StringComparison.OrdinalIgnoreCase))
+ else if (imageType == ImageType.Banner)
{
return item.BannerImagePath;
}
- else if (imageType.Equals("art", StringComparison.OrdinalIgnoreCase))
+ else if (imageType == ImageType.Art)
{
return item.ArtImagePath;
}
- else if (imageType.Equals("thumbnail", StringComparison.OrdinalIgnoreCase))
+ else if (imageType == ImageType.Thumbnail)
{
return item.ThumbnailImagePath;
}
diff --git a/MediaBrowser.Api/HttpHandlers/StudiosHandler.cs b/MediaBrowser.Api/HttpHandlers/StudiosHandler.cs index d2898104f..ff48ae6e3 100644 --- a/MediaBrowser.Api/HttpHandlers/StudiosHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/StudiosHandler.cs @@ -6,7 +6,7 @@ namespace MediaBrowser.Api.HttpHandlers {
public class StudiosHandler : JsonHandler
{
- protected sealed override object ObjectToSerialize
+ protected override object ObjectToSerialize
{
get
{
diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index f997aea5d..820d94831 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -6,12 +6,12 @@ using System.Configuration; using System.IO;
using System.Linq;
using System.Reflection;
-using MediaBrowser.Model.Configuration;
using MediaBrowser.Common.Json;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.Plugins;
-using MediaBrowser.Model.Progress;
using MediaBrowser.Logging;
+using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Progress;
namespace MediaBrowser.Common.Kernel
{
@@ -267,12 +267,18 @@ namespace MediaBrowser.Common.Kernel return null;
}
+ /// <summary>
+ /// Disposes all resources currently in use.
+ /// </summary>
public void Dispose()
{
DisposeHttpServer();
DisposeLogger();
}
+ /// <summary>
+ /// Disposes the current HttpServer
+ /// </summary>
private void DisposeHttpServer()
{
if (HttpServer != null)
@@ -281,6 +287,9 @@ namespace MediaBrowser.Common.Kernel }
}
+ /// <summary>
+ /// Disposes the current Logger instance
+ /// </summary>
private void DisposeLogger()
{
if (Logger.LoggerInstance != null)
diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index 025add7c5..a6a059496 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -318,7 +318,7 @@ namespace MediaBrowser.Controller /// Gets all studios from all recursive children of a folder
/// The CategoryInfo class is used to keep track of the number of times each studio appears
/// </summary>
- public IEnumerable<CategoryInfo> GetAllStudios(Folder parent, Guid userId)
+ public IEnumerable<CategoryInfo<Studio>> GetAllStudios(Folder parent, Guid userId)
{
Dictionary<string, int> data = new Dictionary<string, int>();
@@ -348,7 +348,7 @@ namespace MediaBrowser.Controller }
// Now go through the dictionary and create a Category for each studio
- List<CategoryInfo> list = new List<CategoryInfo>();
+ List<CategoryInfo<Studio>> list = new List<CategoryInfo<Studio>>();
foreach (string key in data.Keys)
{
@@ -357,11 +357,10 @@ namespace MediaBrowser.Controller if (entity != null)
{
- list.Add(new CategoryInfo()
+ list.Add(new CategoryInfo<Studio>()
{
- Name = entity.Name,
- ItemCount = data[key],
- PrimaryImagePath = entity.PrimaryImagePath
+ Item = entity,
+ ItemCount = data[key]
});
}
}
@@ -373,7 +372,7 @@ namespace MediaBrowser.Controller /// Gets all genres from all recursive children of a folder
/// The CategoryInfo class is used to keep track of the number of times each genres appears
/// </summary>
- public IEnumerable<CategoryInfo> GetAllGenres(Folder parent, Guid userId)
+ public IEnumerable<CategoryInfo<Genre>> GetAllGenres(Folder parent, Guid userId)
{
Dictionary<string, int> data = new Dictionary<string, int>();
@@ -403,7 +402,7 @@ namespace MediaBrowser.Controller }
// Now go through the dictionary and create a Category for each genre
- List<CategoryInfo> list = new List<CategoryInfo>();
+ List<CategoryInfo<Genre>> list = new List<CategoryInfo<Genre>>();
foreach (string key in data.Keys)
{
@@ -412,11 +411,10 @@ namespace MediaBrowser.Controller if (entity != null)
{
- list.Add(new CategoryInfo()
+ list.Add(new CategoryInfo<Genre>()
{
- Name = entity.Name,
- ItemCount = data[key],
- PrimaryImagePath = entity.PrimaryImagePath
+ Item = entity,
+ ItemCount = data[key]
});
}
}
diff --git a/MediaBrowser.Logging/StreamLogger.cs b/MediaBrowser.Logging/StreamLogger.cs index f1a16c7ad..c4ad7b80f 100644 --- a/MediaBrowser.Logging/StreamLogger.cs +++ b/MediaBrowser.Logging/StreamLogger.cs @@ -4,6 +4,9 @@ using System.Text; namespace MediaBrowser.Logging
{
+ /// <summary>
+ /// Provides a Logger that can write to any Stream
+ /// </summary>
public class StreamLogger : BaseLogger
{
private Stream Stream { get; set; }
diff --git a/MediaBrowser.Model/Entities/ApiBaseItem.cs b/MediaBrowser.Model/Entities/ApiBaseItem.cs index 665a2f6c6..b3fbbbcde 100644 --- a/MediaBrowser.Model/Entities/ApiBaseItem.cs +++ b/MediaBrowser.Model/Entities/ApiBaseItem.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using MediaBrowser.Model.Users;
namespace MediaBrowser.Model.Entities
@@ -26,5 +27,15 @@ namespace MediaBrowser.Model.Entities public bool IsFolder { get; set; }
public string Type { get; set; }
+
+ public bool IsType(Type type)
+ {
+ return IsType(type.Name);
+ }
+
+ public bool IsType(string type)
+ {
+ return Type.Equals(type, StringComparison.OrdinalIgnoreCase);
+ }
}
}
diff --git a/MediaBrowser.Model/Entities/CategoryInfo.cs b/MediaBrowser.Model/Entities/CategoryInfo.cs index adf8ac7d9..934a0ae1d 100644 --- a/MediaBrowser.Model/Entities/CategoryInfo.cs +++ b/MediaBrowser.Model/Entities/CategoryInfo.cs @@ -2,16 +2,14 @@ namespace MediaBrowser.Model.Entities
{
/// <summary>
- /// This is a stub class used by the api to get IBN types in a compact format
+ /// This is a stub class used by the api to get IBN types along with their item counts
/// </summary>
- public class CategoryInfo
+ public class CategoryInfo<T>
{
/// <summary>
- /// The name of the genre, year, studio, etc
+ /// The actual genre, year, studio, etc
/// </summary>
- public string Name { get; set; }
-
- public string PrimaryImagePath { get; set; }
+ public T Item { get; set; }
/// <summary>
/// The number of items that have the genre, year, studio, etc
diff --git a/MediaBrowser.Model/Entities/ImageType.cs b/MediaBrowser.Model/Entities/ImageType.cs new file mode 100644 index 000000000..d9bb06cbc --- /dev/null +++ b/MediaBrowser.Model/Entities/ImageType.cs @@ -0,0 +1,13 @@ +
+namespace MediaBrowser.Model.Entities
+{
+ public enum ImageType
+ {
+ Primary,
+ Art,
+ Backdrop,
+ Banner,
+ Logo,
+ Thumbnail
+ }
+}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 9338b3884..0157fcbf8 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -47,6 +47,7 @@ <Compile Include="Entities\CategoryInfo.cs" />
<Compile Include="Entities\Folder.cs" />
<Compile Include="Entities\Genre.cs" />
+ <Compile Include="Entities\ImageType.cs" />
<Compile Include="Entities\Person.cs" />
<Compile Include="Entities\Studio.cs" />
<Compile Include="Entities\Video.cs" />
|
