diff --git a/Emby.Server.Implementations/Browser/BrowserLauncher.cs b/Emby.Server.Implementations/Browser/BrowserLauncher.cs
index 8677ce9aaa..945231bd78 100644
--- a/Emby.Server.Implementations/Browser/BrowserLauncher.cs
+++ b/Emby.Server.Implementations/Browser/BrowserLauncher.cs
@@ -26,7 +26,7 @@ private static void OpenDashboardPage(string page, IServerApplicationHost appHos
/// The app host.
public static void OpenWizard(IServerApplicationHost appHost)
{
- OpenDashboardPage("index.html?start=wizard", appHost);
+ OpenDashboardPage("index.html#!/wizardstart.html", appHost);
}
///
diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
index 0693d918a4..03effeba50 100644
--- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
+++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
@@ -628,6 +628,16 @@ await Write(httpRes,
return;
}
+ if (localPath.EndsWith("web/dashboard.html", StringComparison.OrdinalIgnoreCase) && httpReq.UrlReferrer == null)
+ {
+ RedirectToUrl(httpRes, "index.html#!/dashboard.html");
+ }
+
+ if (localPath.EndsWith("web/home.html", StringComparison.OrdinalIgnoreCase) && httpReq.UrlReferrer == null)
+ {
+ RedirectToUrl(httpRes, "index.html");
+ }
+
if (!string.IsNullOrEmpty(GlobalResponse))
{
// We don't want the address pings in ApplicationHost to fail
diff --git a/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs b/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs
index 5e616426ba..9930b7496d 100644
--- a/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs
+++ b/Emby.Server.Implementations/HttpServer/HttpResultFactory.cs
@@ -248,8 +248,8 @@ private string GetCompressionType(IRequest request)
if (acceptEncoding != null)
{
- if (_brotliCompressor != null && acceptEncoding.IndexOf("br", StringComparison.OrdinalIgnoreCase) != -1)
- return "br";
+ //if (_brotliCompressor != null && acceptEncoding.IndexOf("br", StringComparison.OrdinalIgnoreCase) != -1)
+ // return "br";
if (acceptEncoding.IndexOf("deflate", StringComparison.OrdinalIgnoreCase) != -1)
return "deflate";
diff --git a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
index a8cbc08fd4..d21abb74e8 100644
--- a/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
+++ b/Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs
@@ -1174,7 +1174,7 @@ async void _timerProvider_TimerFired(object sender, GenericEventArgs
{
var timer = e.Argument;
- _logger.Info("Recording timer fired.");
+ _logger.Info("Recording timer fired for {0}.", timer.Name);
try
{
diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
index b1b324fcf2..7365e7312d 100644
--- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
@@ -208,13 +208,17 @@ private async Task> FetchMovieData(string tmdbId, string
result.Item = new Series();
result.ResultLanguage = seriesInfo.ResultLanguage;
- ProcessMainInfo(result.Item, seriesInfo, preferredCountryCode);
+ var settings = await MovieDbProvider.Current.GetTmdbSettings(cancellationToken).ConfigureAwait(false);
+
+ ProcessMainInfo(result, seriesInfo, preferredCountryCode, settings);
return result;
}
- private void ProcessMainInfo(Series series, RootObject seriesInfo, string preferredCountryCode)
+ private void ProcessMainInfo(MetadataResult seriesResult, RootObject seriesInfo, string preferredCountryCode, TmdbSettingsResult settings)
{
+ var series = seriesResult.Item;
+
series.Name = seriesInfo.name;
series.SetProviderId(MetadataProviders.Tmdb, seriesInfo.id.ToString(_usCulture));
@@ -307,6 +311,35 @@ private void ProcessMainInfo(Series series, RootObject seriesInfo, string prefer
}
}
}
+
+ seriesResult.ResetPeople();
+ var tmdbImageUrl = settings.images.GetImageUrl("original");
+
+ if (seriesInfo.credits != null && seriesInfo.credits.cast != null)
+ {
+ foreach (var actor in seriesInfo.credits.cast.OrderBy(a => a.order))
+ {
+ var personInfo = new PersonInfo
+ {
+ Name = actor.name.Trim(),
+ Role = actor.character,
+ Type = PersonType.Actor,
+ SortOrder = actor.order
+ };
+
+ if (!string.IsNullOrWhiteSpace(actor.profile_path))
+ {
+ personInfo.ImageUrl = tmdbImageUrl + actor.profile_path;
+ }
+
+ if (actor.id > 0)
+ {
+ personInfo.SetProviderId(MetadataProviders.Tmdb, actor.id.ToString(CultureInfo.InvariantCulture));
+ }
+
+ seriesResult.AddPerson(personInfo);
+ }
+ }
}
internal static string GetSeriesDataPath(IApplicationPaths appPaths, string tmdbId)
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 03427e89d7..b7c63f9449 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -316,7 +316,7 @@ public async Task