aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs86
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs28
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs4
3 files changed, 50 insertions, 68 deletions
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs
index 91d79bda0e..082a55ea06 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs
@@ -154,7 +154,13 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{ typeof(DirectoryNotFoundException), 404 }
},
- DebugMode = true
+ DebugMode = true,
+
+ ServiceName = ServerName,
+
+ LogFactory = LogManager.LogFactory,
+
+ EnableFeatures = Feature.Csv | Feature.Html | Feature.Json | Feature.Jsv | Feature.Metadata | Feature.Xml
});
container.Adapter = _containerAdapter;
@@ -162,56 +168,64 @@ namespace MediaBrowser.Server.Implementations.HttpServer
Plugins.Add(new SwaggerFeature());
Plugins.Add(new CorsFeature());
- ResponseFilters.Add((req, res, dto) =>
+ ResponseFilters.Add(FilterResponse);
+ }
+
+ /// <summary>
+ /// Filters the response.
+ /// </summary>
+ /// <param name="req">The req.</param>
+ /// <param name="res">The res.</param>
+ /// <param name="dto">The dto.</param>
+ private void FilterResponse(IHttpRequest req, IHttpResponse res, object dto)
+ {
+ var exception = dto as Exception;
+
+ if (exception != null)
{
- var exception = dto as Exception;
+ _logger.ErrorException("Error processing request for {0}", exception, req.RawUrl);
- if (exception != null)
+ if (!string.IsNullOrEmpty(exception.Message))
{
- _logger.ErrorException("Error processing request for {0}", exception, req.RawUrl);
-
- if (!string.IsNullOrEmpty(exception.Message))
- {
- var error = exception.Message.Replace(Environment.NewLine, " ");
- error = RemoveControlCharacters(error);
+ var error = exception.Message.Replace(Environment.NewLine, " ");
+ error = RemoveControlCharacters(error);
- res.AddHeader("X-Application-Error-Code", error);
- }
+ res.AddHeader("X-Application-Error-Code", error);
}
+ }
- if (dto is CompressedResult)
- {
- // Per Google PageSpeed
- // This instructs the proxies to cache two versions of the resource: one compressed, and one uncompressed.
- // The correct version of the resource is delivered based on the client request header.
- // This is a good choice for applications that are singly homed and depend on public proxies for user locality.
- res.AddHeader("Vary", "Accept-Encoding");
- }
+ if (dto is CompressedResult)
+ {
+ // Per Google PageSpeed
+ // This instructs the proxies to cache two versions of the resource: one compressed, and one uncompressed.
+ // The correct version of the resource is delivered based on the client request header.
+ // This is a good choice for applications that are singly homed and depend on public proxies for user locality.
+ res.AddHeader("Vary", "Accept-Encoding");
+ }
- var hasOptions = dto as IHasOptions;
+ var hasOptions = dto as IHasOptions;
- if (hasOptions != null)
+ if (hasOptions != null)
+ {
+ // Content length has to be explicitly set on on HttpListenerResponse or it won't be happy
+ string contentLength;
+
+ if (hasOptions.Options.TryGetValue("Content-Length", out contentLength) && !string.IsNullOrEmpty(contentLength))
{
- // Content length has to be explicitly set on on HttpListenerResponse or it won't be happy
- string contentLength;
+ var length = long.Parse(contentLength, UsCulture);
- if (hasOptions.Options.TryGetValue("Content-Length", out contentLength) && !string.IsNullOrEmpty(contentLength))
+ if (length > 0)
{
- var length = long.Parse(contentLength, UsCulture);
-
- if (length > 0)
- {
- var response = (HttpListenerResponse)res.OriginalResponse;
+ var response = (HttpListenerResponse)res.OriginalResponse;
- response.ContentLength64 = length;
+ response.ContentLength64 = length;
- // Disable chunked encoding. Technically this is only needed when using Content-Range, but
- // anytime we know the content length there's no need for it
- response.SendChunked = false;
- }
+ // Disable chunked encoding. Technically this is only needed when using Content-Range, but
+ // anytime we know the content length there's no need for it
+ response.SendChunked = false;
}
}
- });
+ }
}
/// <summary>
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
index cc9016190e..3969acac78 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/EpisodeResolver.cs
@@ -2,7 +2,6 @@
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities;
-using System;
namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
{
@@ -71,32 +70,5 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
return null;
}
-
- /// <summary>
- /// Sets the initial item values.
- /// </summary>
- /// <param name="item">The item.</param>
- /// <param name="args">The args.</param>
- protected override void SetInitialItemValues(Episode item, ItemResolveArgs args)
- {
- base.SetInitialItemValues(item, args);
-
- //fill in our season and series ids
- var season = args.Parent as Season;
- if (season != null)
- {
- item.SeasonItemId = season.Id;
- var series = season.Parent as Series;
- if (series != null)
- {
- item.SeriesItemId = series.Id;
- }
- }
- else
- {
- var series = args.Parent as Series;
- item.SeriesItemId = series != null ? series.Id : Guid.Empty;
- }
- }
}
}
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
index 7ad5d08db6..c426fed25e 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeasonResolver.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
-using System;
namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
{
@@ -58,9 +57,6 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
{
base.SetInitialItemValues(item, args);
- var series = args.Parent as Series;
- item.SeriesItemId = series != null ? series.Id : Guid.Empty;
-
Season.AddMetadataFiles(args);
}
}