aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-15 13:34:37 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-15 13:34:37 -0400
commitebec1e159c22131bf6fed1c807595894f92427ae (patch)
tree5aba166a6371165d1ef34badeb2a7756fc30a398
parent333f1ea6a4744b304a5c0991b4d4c3796c97ac16 (diff)
update default theme endpoints
-rw-r--r--MediaBrowser.Api/DefaultTheme/ItemStub.cs13
-rw-r--r--MediaBrowser.Api/DefaultTheme/Models.cs50
-rw-r--r--MediaBrowser.Api/DefaultTheme/MoviesView.cs24
-rw-r--r--MediaBrowser.Api/DefaultTheme/TvView.cs11
-rw-r--r--MediaBrowser.Api/MediaBrowser.Api.csproj4
-rw-r--r--MediaBrowser.Api/Playback/Hls/AudioHlsService.cs2
-rw-r--r--MediaBrowser.Api/Playback/Hls/VideoHlsService.cs2
-rw-r--r--MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs4
-rw-r--r--MediaBrowser.Common/Net/IHttpResultFactory.cs3
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs17
10 files changed, 69 insertions, 61 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/ItemStub.cs b/MediaBrowser.Api/DefaultTheme/ItemStub.cs
deleted file mode 100644
index 968154350..000000000
--- a/MediaBrowser.Api/DefaultTheme/ItemStub.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using MediaBrowser.Model.Entities;
-using System;
-
-namespace MediaBrowser.Api.DefaultTheme
-{
- public class ItemStub
- {
- public string Name { get; set; }
- public string Id { get; set; }
- public Guid ImageTag { get; set; }
- public ImageType ImageType { get; set; }
- }
-}
diff --git a/MediaBrowser.Api/DefaultTheme/Models.cs b/MediaBrowser.Api/DefaultTheme/Models.cs
new file mode 100644
index 000000000..a4167bf33
--- /dev/null
+++ b/MediaBrowser.Api/DefaultTheme/Models.cs
@@ -0,0 +1,50 @@
+using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Entities;
+using System;
+
+namespace MediaBrowser.Api.DefaultTheme
+{
+ public class ItemStub
+ {
+ public string Name { get; set; }
+ public string Id { get; set; }
+ public Guid ImageTag { get; set; }
+ public ImageType ImageType { get; set; }
+ }
+
+ public class MoviesView
+ {
+ public BaseItemDto[] SpotlightItems { get; set; }
+ public ItemStub[] MovieItems { get; set; }
+ public ItemStub[] PeopleItems { get; set; }
+
+ public ItemStub[] BoxSetItems { get; set; }
+ public ItemStub[] TrailerItems { get; set; }
+ public ItemStub[] HDItems { get; set; }
+ public ItemStub[] ThreeDItems { get; set; }
+
+ public ItemStub[] FamilyMovies { get; set; }
+
+ public ItemStub[] RomanceItems { get; set; }
+ public ItemStub[] ComedyItems { get; set; }
+
+ public double FamilyMoviePercentage { get; set; }
+
+ public double HDMoviePercentage { get; set; }
+ }
+
+ public class TvView
+ {
+ public BaseItemDto[] SpotlightItems { get; set; }
+ public ItemStub[] ShowsItems { get; set; }
+ public ItemStub[] ActorItems { get; set; }
+
+ public ItemStub[] RomanceItems { get; set; }
+ public ItemStub[] ComedyItems { get; set; }
+ }
+
+ public class HomeView
+ {
+ public BaseItemDto[] SpotlightItems { get; set; }
+ }
+}
diff --git a/MediaBrowser.Api/DefaultTheme/MoviesView.cs b/MediaBrowser.Api/DefaultTheme/MoviesView.cs
deleted file mode 100644
index 11a53a80a..000000000
--- a/MediaBrowser.Api/DefaultTheme/MoviesView.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using MediaBrowser.Model.Dto;
-
-namespace MediaBrowser.Api.DefaultTheme
-{
- public class MoviesView
- {
- public BaseItemDto[] SpotlightItems { get; set; }
- public ItemStub[] MovieItems { get; set; }
- public ItemStub[] PeopleItems { get; set; }
-
- public ItemStub[] BoxSetItems { get; set; }
- public ItemStub[] TrailerItems { get; set; }
- public ItemStub[] HDItems { get; set; }
- public ItemStub[] ThreeDItems { get; set; }
-
- public ItemStub[] FamilyMovies { get; set; }
-
- public ItemStub[] RomanticItems { get; set; }
-
- public double FamilyMoviePercentage { get; set; }
-
- public double HDMoviePercentage { get; set; }
- }
-}
diff --git a/MediaBrowser.Api/DefaultTheme/TvView.cs b/MediaBrowser.Api/DefaultTheme/TvView.cs
deleted file mode 100644
index ba7d120f1..000000000
--- a/MediaBrowser.Api/DefaultTheme/TvView.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using MediaBrowser.Model.Dto;
-
-namespace MediaBrowser.Api.DefaultTheme
-{
- public class TvView
- {
- public BaseItemDto[] SpotlightItems { get; set; }
- public ItemStub[] ShowsItems { get; set; }
- public ItemStub[] ActorItems { get; set; }
- }
-}
diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj
index aa18570e3..70e4e8a9a 100644
--- a/MediaBrowser.Api/MediaBrowser.Api.csproj
+++ b/MediaBrowser.Api/MediaBrowser.Api.csproj
@@ -67,9 +67,7 @@
<Compile Include="AlbumsService.cs" />
<Compile Include="BaseApiService.cs" />
<Compile Include="DefaultTheme\DefaultThemeService.cs" />
- <Compile Include="DefaultTheme\ItemStub.cs" />
- <Compile Include="DefaultTheme\MoviesView.cs" />
- <Compile Include="DefaultTheme\TvView.cs" />
+ <Compile Include="DefaultTheme\Models.cs" />
<Compile Include="DisplayPreferencesService.cs" />
<Compile Include="EnvironmentService.cs" />
<Compile Include="GamesService.cs" />
diff --git a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs
index 68a252d1b..d7ee73a9e 100644
--- a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs
@@ -70,7 +70,7 @@ namespace MediaBrowser.Api.Playback.Hls
file = Path.Combine(ApplicationPaths.EncodedMediaCachePath, file);
- return ResultFactory.GetStaticFileResult(RequestContext, file);
+ return ResultFactory.GetStaticFileResult(RequestContext, file, FileShare.ReadWrite);
}
/// <summary>
diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
index 2066849ae..7674fe7b7 100644
--- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
@@ -103,7 +103,7 @@ namespace MediaBrowser.Api.Playback.Hls
file = Path.Combine(ApplicationPaths.EncodedMediaCachePath, file);
- return ResultFactory.GetStaticFileResult(RequestContext, file);
+ return ResultFactory.GetStaticFileResult(RequestContext, file, FileShare.ReadWrite);
}
/// <summary>
diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
index 21ef2ba0a..806e55024 100644
--- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs
@@ -209,12 +209,12 @@ namespace MediaBrowser.Api.Playback.Progressive
if (request.Static)
{
- return ResultFactory.GetStaticFileResult(RequestContext, state.Item.Path, responseHeaders, isHeadRequest);
+ return ResultFactory.GetStaticFileResult(RequestContext, state.Item.Path, FileShare.Read, responseHeaders, isHeadRequest);
}
if (outputPathExists && !ApiEntryPoint.Instance.HasActiveTranscodingJob(outputPath, TranscodingJobType.Progressive))
{
- return ResultFactory.GetStaticFileResult(RequestContext, outputPath, responseHeaders, isHeadRequest);
+ return ResultFactory.GetStaticFileResult(RequestContext, outputPath, FileShare.Read, responseHeaders, isHeadRequest);
}
return GetStreamResult(state, responseHeaders, isHeadRequest).Result;
diff --git a/MediaBrowser.Common/Net/IHttpResultFactory.cs b/MediaBrowser.Common/Net/IHttpResultFactory.cs
index 55c0e5b9b..9f3d05d91 100644
--- a/MediaBrowser.Common/Net/IHttpResultFactory.cs
+++ b/MediaBrowser.Common/Net/IHttpResultFactory.cs
@@ -89,9 +89,10 @@ namespace MediaBrowser.Common.Net
/// </summary>
/// <param name="requestContext">The request context.</param>
/// <param name="path">The path.</param>
+ /// <param name="fileShare">The file share.</param>
/// <param name="responseHeaders">The response headers.</param>
/// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <returns>System.Object.</returns>
- object GetStaticFileResult(IRequestContext requestContext, string path, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false);
+ object GetStaticFileResult(IRequestContext requestContext, string path, FileShare fileShare = FileShare.Read, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false);
}
}
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
index 115114e3a..356c6fc4d 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/HttpResultFactory.cs
@@ -92,7 +92,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{
AddResponseHeaders(result, responseHeaders);
}
-
+
return result;
}
@@ -271,32 +271,39 @@ namespace MediaBrowser.Server.Implementations.HttpServer
/// </summary>
/// <param name="requestContext">The request context.</param>
/// <param name="path">The path.</param>
+ /// <param name="fileShare">The file share.</param>
/// <param name="responseHeaders">The response headers.</param>
/// <param name="isHeadRequest">if set to <c>true</c> [is head request].</param>
/// <returns>System.Object.</returns>
/// <exception cref="System.ArgumentNullException">path</exception>
- public object GetStaticFileResult(IRequestContext requestContext, string path, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false)
+ public object GetStaticFileResult(IRequestContext requestContext, string path, FileShare fileShare = FileShare.Read, IDictionary<string, string> responseHeaders = null, bool isHeadRequest = false)
{
if (string.IsNullOrEmpty(path))
{
throw new ArgumentNullException("path");
}
+ if (fileShare != FileShare.Read && fileShare != FileShare.ReadWrite)
+ {
+ throw new ArgumentException("FileShare must be either Read or ReadWrite");
+ }
+
var dateModified = File.GetLastWriteTimeUtc(path);
var cacheKey = path + dateModified.Ticks;
- return GetStaticResult(requestContext, cacheKey.GetMD5(), dateModified, null, MimeTypes.GetMimeType(path), () => Task.FromResult(GetFileStream(path)), responseHeaders, isHeadRequest);
+ return GetStaticResult(requestContext, cacheKey.GetMD5(), dateModified, null, MimeTypes.GetMimeType(path), () => Task.FromResult(GetFileStream(path, fileShare)), responseHeaders, isHeadRequest);
}
/// <summary>
/// Gets the file stream.
/// </summary>
/// <param name="path">The path.</param>
+ /// <param name="fileShare">The file share.</param>
/// <returns>Stream.</returns>
- private Stream GetFileStream(string path)
+ private Stream GetFileStream(string path, FileShare fileShare)
{
- return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous);
+ return new FileStream(path, FileMode.Open, FileAccess.Read, fileShare, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous);
}
/// <summary>