diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index e644f1f313..0c95f61120 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -76,6 +76,16 @@ namespace MediaBrowser.Api
{
return ResultFactory.GetCachedResult(RequestContext, cacheKey, lastDateModified, cacheDuration, factoryFn, contentType);
}
+
+ ///
+ /// To the static file result.
+ ///
+ /// The path.
+ /// System.Object.
+ protected object ToStaticFileResult(string path)
+ {
+ return ResultFactory.GetStaticFileResult(RequestContext, path);
+ }
}
///
diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj
index 579a8d2411..1d0777bd59 100644
--- a/MediaBrowser.Api/MediaBrowser.Api.csproj
+++ b/MediaBrowser.Api/MediaBrowser.Api.csproj
@@ -64,6 +64,7 @@
+
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 3e5da5b533..04b6a656d5 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -635,7 +635,7 @@ namespace MediaBrowser.Api.Playback
///
/// The process.
/// The state.
- protected void OnFfMpegProcessExited(Process process, StreamState state)
+ protected async void OnFfMpegProcessExited(Process process, StreamState state)
{
if (state.IsoMount != null)
{
@@ -667,6 +667,8 @@ namespace MediaBrowser.Api.Playback
{
Logger.Info("Deleting partial stream file(s) {0}", outputFilePath);
+ await Task.Delay(1000).ConfigureAwait(false);
+
try
{
DeletePartialStreamFiles(outputFilePath);
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs
index 840b88af56..84b9a66b62 100644
--- a/MediaBrowser.Api/TvShowsService.cs
+++ b/MediaBrowser.Api/TvShowsService.cs
@@ -171,7 +171,8 @@ namespace MediaBrowser.Api
{
var allEpisodes = series.GetRecursiveChildren(user)
.OfType()
- .OrderByDescending(i => i.PremiereDate)
+ .OrderByDescending(i => i.PremiereDate ?? DateTime.MinValue)
+ .ThenByDescending(i => i.IndexNumber ?? 0)
.ToList();
Episode lastWatched = null;
diff --git a/MediaBrowser.Controller/IServerApplicationPaths.cs b/MediaBrowser.Controller/IServerApplicationPaths.cs
index 09f2f5e8e6..9325d20545 100644
--- a/MediaBrowser.Controller/IServerApplicationPaths.cs
+++ b/MediaBrowser.Controller/IServerApplicationPaths.cs
@@ -70,6 +70,12 @@ namespace MediaBrowser.Controller
/// The ratings path.
string RatingsPath { get; }
+ ///
+ /// Gets the media info images path.
+ ///
+ /// The media info images path.
+ string MediaInfoImagesPath { get; }
+
///
/// Gets the path to the user configuration directory
///
diff --git a/MediaBrowser.Controller/Providers/Music/FanArtArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/FanArtArtistProvider.cs
index ba07da2c12..86c7a22f49 100644
--- a/MediaBrowser.Controller/Providers/Music/FanArtArtistProvider.cs
+++ b/MediaBrowser.Controller/Providers/Music/FanArtArtistProvider.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Net;
@@ -49,7 +50,7 @@ namespace MediaBrowser.Controller.Providers.Music
/// true if XXXX, false otherwise
public override bool Supports(BaseItem item)
{
- return false;
+ return item is MusicArtist;
}
protected virtual bool SaveLocalMeta
diff --git a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
index 8fabf2368d..c846fcd97a 100644
--- a/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
+++ b/MediaBrowser.Controller/Providers/Music/LastfmArtistProvider.cs
@@ -90,7 +90,7 @@ namespace MediaBrowser.Controller.Providers.Music
public override bool Supports(BaseItem item)
{
- return false;
+ return item is MusicArtist;
}
}
}
diff --git a/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs b/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs
index 6d345a99c5..c30c1b9db2 100644
--- a/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs
+++ b/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs
@@ -132,6 +132,7 @@ namespace MediaBrowser.Server.Implementations
_musicArtistsPath = null;
_generalPath = null;
_ratingsPath = null;
+ _mediaInfoImagesPath = null;
}
}
@@ -285,6 +286,31 @@ namespace MediaBrowser.Server.Implementations
}
}
+ ///
+ /// The _media info images path
+ ///
+ private string _mediaInfoImagesPath;
+ ///
+ /// Gets the media info images path.
+ ///
+ /// The media info images path.
+ public string MediaInfoImagesPath
+ {
+ get
+ {
+ if (_mediaInfoImagesPath == null)
+ {
+ _mediaInfoImagesPath = Path.Combine(ItemsByNamePath, "MediaInfo");
+ if (!Directory.Exists(_mediaInfoImagesPath))
+ {
+ Directory.CreateDirectory(_mediaInfoImagesPath);
+ }
+ }
+
+ return _mediaInfoImagesPath;
+ }
+ }
+
///
/// The _user configuration directory path
///